CPC G06F 16/2255 (2019.01) [G06F 16/221 (2019.01); G06F 16/27 (2019.01)] | 16 Claims |
1. A method of operating a key-value storage device comprising a memory comprising a first area and a second area, the method comprising:
assigning, to the first area, a hash table comprising a plurality of groups each comprising a plurality of hash entries;
assigning, to the second area, a bucket table comprising a plurality of buckets respectively corresponding to the plurality of groups and each comprising at least one bucket entry;
when a number of hash entries corresponding to a first hash index and assigned to a first group among the plurality of groups is not greater than a threshold number, storing a new hash entry, corresponding to the first hash index and assigned to the first group, in a first hash entry which is selected from among the plurality of hash entries of the first group; and
when the number of hash entries corresponding to the first hash index and assigned to the first group is greater than the threshold number, storing the new hash entry in a first bucket corresponding to the first group, wherein the first bucket is selected from among the plurality of buckets,
wherein a number of the plurality of groups is the same as a number of the plurality of buckets, and
wherein the new hash entry includes mapping information corresponding to the first hash index;
wherein each of the plurality of hash entries corresponding to the hash indices in the first group comprises a physical address corresponding to the hash index,
wherein each of the plurality of hash entries further comprises at least one of a hashtag and a bitmap, wherein the hashtag indicates whether the plurality of buckets are used, and the bitmap indicates storage locations of the plurality of hash entries corresponding to the hash indices.
|