IP Library › Granted Patent US 11,727,057
Granted Patent B2
US 11,727,057 · App. 16/820,356 · Granted Aug 15, 2023

Network key value indexing design

Inventors: Somnath Roy (San Jose, CA); Ronald Lee (San Jose, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F16/9014G06F9/30185G06F16/134G06F16/90344H04L9/0825H04L9/0861G06F8/427G06F2207/025
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,727,057
App. No.
16/820,356
Granted
Aug 15, 2023
Kind
B2
Abstract

Provided is a method of indexing in a network key value indexing system. The method includes retrieving a first key name from a storage device of the network key value indexing system, the first key name identifying a first prefix, a first bucket, and a first key, the first prefix indicating the first bucket, parsing the first key name into the first prefix, the first bucket, and the first key, determining the first prefix, the first bucket, and the first key based on a first delimiter, and generating a hash table in a memory cache of the network key value indexing system to associate the first prefix with the first key.

Claims (65)

1. A method of indexing, the method comprising:

retrieving, by a network key value indexing system, a first key name from a storage device of the network key value indexing system, the first key name comprising a hierarchical data structure identifying a first prefix, a first bucket, and a first key, the first prefix indicating the first bucket;

parsing, by a processing circuit of the network key value indexing system, the first key name into the first prefix, the first bucket, and the first key;

determining, by the processing circuit, the first prefix, the first bucket, and the first key based on a first delimiter of the hierarchical data structure; and

generating, by the processing circuit, a hash table in a memory cache of the network key value indexing system, based on the hierarchical data structure, to associate the first prefix with the first key,

wherein the network key value indexing system is configured to recreate the hash table in the memory cache, based on the first key name, in response to a system crash or power-cycle.

2. The method of claim 1 , the method further comprising:

retrieving, by the network key value indexing system, a second key name from the storage device, the second key name comprising a hierarchical data structure identifying the first prefix, the first bucket, a second prefix, a second bucket, and a second key, the second prefix indicating the first bucket and the second bucket;

parsing, by the processing circuit, the second key name into the first prefix, the first bucket, a second prefix, a second bucket, and a second key; and

determining, by the processing circuit, the second prefix, the second bucket, and the second key based on the first delimiter and a second delimiter,

wherein generating the hash table in the memory cache comprises associating the second prefix with the second key.

3. The method of claim 1 , the method further comprising:

retrieving, by the network key value indexing system, a third key name from the storage device, the third key name comprising a hierarchical data structure identifying the first prefix, the first bucket, and a third key;

parsing, by the processing circuit, the third key name into the first prefix, the first bucket, and the third key; and

determining, by the processing circuit, the third key based on a third delimiter,

wherein generating the hash table in the memory cache comprises associating the first prefix with the third key.

4. The method of claim 1 , wherein the memory cache is volatile memory.

5. The method of claim 1 , the method further comprising searching, by the network key value indexing system, for keys and buckets associated with the first prefix, wherein the searching for the keys and the buckets associated with the first prefix is associated with a performance of O(N) where N is a number of the keys and the buckets associated with the first prefix.

6. The method of claim 1 , the method further comprising repeating the retrieving, the parsing, the determining, and the generating during a startup of the network key value indexing system in response to a system crash or power-cycle.

7. The method of claim 1 , wherein the storage device comprises one or more storage device buckets, and

wherein the retrieving the first key name from the storage device comprises:

applying an iterator to a single storage device bucket from among the one or more storage device buckets based on an iterator prefix; and

retrieving the first key name iterated by the iterator from the single storage device bucket.

8. A non-transitory computer readable medium implemented on a system for indexing, the non-transitory computer readable medium having computer code that implements a method of indexing, the method comprising:

retrieving, by a processing circuit of a network key value indexing system, a first key name comprising a hierarchical data structure from a storage device;

parsing, by the processing circuit, the first key name comprising a first prefix, a first bucket, and a first key, the first prefix indicating the first bucket;

determining, by the processing circuit, the first prefix, the first bucket, and the first key based on a first delimiter of the hierarchical data structure; and

generating, by the processing circuit, a hash table in a memory cache, based on the hierarchical data structure, by associating the first prefix with the first key,

wherein the processing circuit is configured to recreate the hash table in the memory cache, based on the first key name, in response to a system crash or power-cycle.

9. The non-transitory computer readable medium of claim 8 , wherein the computer code further implements the method of indexing by:

retrieving, by the processing circuit, a second key name from the storage device, the second key name comprising a hierarchical data structure identifying the first prefix, the first bucket, a second prefix, a second bucket, and a second key, the second prefix indicating the first bucket and the second bucket;

parsing, by the processing circuit, the second key name into the first prefix, the first bucket, a second prefix, a second bucket, and a second key; and

determining, by the processing circuit, the second prefix, the second bucket, and the second key based on the first delimiter and a second delimiter,

wherein generating the hash table in the memory cache comprises associating the second prefix with the second key.

10. The non-transitory computer readable medium of claim 8 , wherein the computer code further implements the method of indexing by:

retrieving, by the processing circuit, a third key name from the storage device, the third key name comprising a hierarchical data structure identifying the first prefix, the first bucket, and a third key;

parsing, by the processing circuit, the third key name into the first prefix, the first bucket, and the third key; and

determining, by the processing circuit, the third key based on a third delimiter,

wherein generating the hash table in the memory cache comprises associating the first prefix with the third key.

11. The non-transitory computer readable medium of claim 8 , wherein the memory cache is volatile memory.

12. The non-transitory computer readable medium of claim 8 , wherein the computer code further implements the method of indexing by searching, by the processing circuit, for keys and buckets associated with the first prefix, wherein the searching for the keys and the buckets associated with the first prefix is associated with a performance of O(N) where N is a number of the keys and the buckets associated with the first prefix.

13. The non-transitory computer readable medium of claim 8 , wherein the computer code further implements the method of indexing by repeating the retrieving, the parsing, the determining, and the generating in response to a system crash or power-cycle.

14. The non-transitory computer readable medium of claim 8 , wherein the storage device comprises a one or more storage device buckets, and

wherein the computer code implements the retrieving the first key name from the storage device by:

applying an iterator to a single storage device bucket from among the one or more storage device buckets based on an iterator prefix; and

retrieving the first key name iterated by the iterator from the single storage device bucket.

15. A system for indexing, the system comprising a storage device, a processing circuit, and a memory cache, wherein the processing circuit is configured to:

retrieve a first key name comprising a hierarchical data structure from the storage device;

parse the first key name comprising a first prefix, a first bucket, and a first key, the first prefix indicating the first bucket;

determine the first prefix, the first bucket, and the first key based on a first delimiter of the hierarchical data structure; and

generate a hash table in the memory cache, based on the hierarchical data structure, by associating the first prefix with the first key,

wherein the processing circuit is configured to recreate the hash table in the memory cache, based on the first key name, in response to a system crash or power-cycle.

16. The system of claim 15 , wherein the processing circuit is further configured to:

retrieve a second key name from the storage device, the second key name comprising a hierarchical data structure identifying the first prefix, the first bucket, a second prefix, a second bucket, and a second key, the second prefix indicating the first bucket and the second bucket;

parse the second key name into the first prefix, the first bucket, a second prefix, a second bucket, and a second key; and

determine the second prefix, the second bucket, and the second key based on the first delimiter and a second delimiter,

wherein the processing circuit is configured to generate the hash table in the memory cache by associating the second prefix with the second key.

17. The system of claim 15 , wherein the processing circuit is further configured to:

retrieve a third key name from the storage device, the third key name comprising a hierarchical data structure identifying the first prefix, the first bucket, and a third key;

parse the third key name into the first prefix, the first bucket, and the third key; and

determine the third key based on a third delimiter,

wherein the processing circuit is configured to generate the hash table in the memory cache by associating the first prefix with the third key.

18. The system of claim 15 , wherein the memory cache is volatile memory.

19. The system of claim 15 , wherein the processing circuit is further configured to search for keys and buckets associated with the first prefix, wherein the searching for the keys and the buckets associated with the first prefix is associated with a performance of O(N) where N is a number of the keys and the buckets associated with the first prefix.

20. The system of claim 15 , wherein the processing circuit is further configured to repeat retrieving the first key name, parsing the first key name, determining the first prefix, the first bucket, and the first key, and generating the hash table in response to a system crash or power-cycle.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2020
From: ROY, SOMNATH; LEE, RONALD
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 053656/0297 →
Continuity (2)
Provisional Application 62895948 · Sep 4, 2019
Related Publication 20210067332A1 · Mar 4, 2021