Patentable/Patents/US-8825666
US-8825666

Space-efficient, durable key-value map

PublishedSeptember 2, 2014
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A system and method for creating and managing a space-efficient, durable key-value map is disclosed. A key management engine initializes a key-value map by associating a plurality of keys with a first slot of the slots in the key-value map. A first key-value pair is then assigned to the first slot of the key-value map. The key management engine subsequently receives an indication that the first key is to be invalidated; and responsively reuses the first slot of the key-value map by assigning a second key-value pair to the first slot. The first key is then recycled in response to the first key becoming valid. The first and second key-value pairs include respective first and second values and respective first and second keys of the plurality of keys associated with the first slot. The first key becomes valid when it is no longer referenced by a data buffer.

Patent Claims
36 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method comprising: associating, by a key management engine of a data processing system, a slot of a key-value map with a plurality of keys; assigning, by the key management engine, a first key-value pair to the slot of the key-value map, the first key-value pair including a first value and a first valid key of the plurality of keys associated with the slot; receiving, by the key management engine, an indication that a first key is to be invalidated and, in response, setting a status of the first key to invalid; in response to the first key becoming invalid, reusing, by the key management engine, the slot of the key-value map by assigning to the slot a second key-value pair including a second value and a second valid key of the plurality of keys associated with the slot, wherein the first key is referenced by one or more entries of a circular buffer, each of the one or more entries of the circular buffer including a reference to the first key and buffered data; in response to setting the status of the first key to invalid, tracking, by the key management engine, progress of the circular buffer; and setting, by the key management engine, the status of the first key to valid when the first key is no longer referenced by the one or more entries of the circular buffer, wherein the first key is no longer referenced by the one or more entries of the circular buffer after a full rotation of the circular buffer.

2

2. The method as recited in claim 1 , wherein the indication that the first key is to be invalidated comprises a request to delete the first key-value pair.

3

3. The method as recited in claim 1 , wherein the one or more entries of the circular buffer use the first key to identify the slot of the key-value map containing the first value of the first key-value pair.

4

4. The method as recited in claim 1 , further comprising: reusing, by the key management engine subsequent to said setting the status of the first key to valid, the first key by assigning to the slot a third key-value pair, the third key-value pair including a third value and the first key of the subset of the plurality of keys.

5

5. The method as recited in claim 1 , further comprising: receiving, by the key management engine, a key-value request including the first key; and determining, by the key management engine, whether the first key is valid.

6

6. The method as recited in claim 5 , further comprising transferring, by the key management engine, an error message if the first key is invalid.

7

7. The method as recited in claim 5 , further comprising transferring, by the key management engine, the value of the key-value pair associated with the first key if the first key is valid.

8

8. The method as recited in claim 1 , wherein the method is embodied in a non-transitory machine-readable data processing medium as a set of instructions which, when executed by a processor, cause the processor to perform the method.

9

9. A method comprising: associating, by the key management engine of a data processing system, each slot of a plurality of slots of a key-value map with a plurality of keys; assigning, by the key management engine, to each slot of the key-value map an initial key of each subset of the plurality of keys; assigning, by the key management engine, to a first slot of the plurality of slots in the key-value map an initial value; receiving, by the key management engine, subsequent to said assigning, an indication that one of the initial keys associated with the first slot is to be invalidated; receiving, by the key management engine subsequent to said reusing, an indication that the previously presented key is to be invalidated; in response to receiving the indication that the previously presented key is to be invalidated, determining that the key is associated with the first slot and setting a status of the previously presented key to invalid; transferring, by the key management engine, a request to receive a notification when the previously presented key is no longer referenced by one or more entries of a circular buffer; reusing, by the key management engine, the first slot in the key-value map by assigning to the first slot a previously presented value; and recycling, by the key management engine, subsequent to receiving the indication that the one of the initial keys associated with the first slot is to be invalidated, the first slot in the key-value map by assigning the first slot a previously presented key of the subset of keys associated with the first slot.

10

10. The method as recited in claim 9 , wherein receiving the indication that the one of the initial keys associated with the first slot is to be invalidated further comprises determining that the one of the initial keys is associated with the first slot.

11

11. The method as recited in claim 9 , further comprising: in response to receiving the indication that the one of the initial keys associated with the first slot is to be invalidated, setting, by the key management engine, a status of a first key to invalid.

12

12. The method as recited in claim 9 , further comprising: creating, by a key management engine, the key-value map of the data processing system by allocating the plurality of slots in a memory of the data processing system.

13

13. The method as recited in claim 9 , further comprising: receiving, by the key management engine, the notification that the previously presented key is no longer referenced by the one or more entries of the circular buffer after a full rotation of the entries of the circular buffer; and reusing, by the key management engine subsequent to said receiving the notification, the previously presented key by assigning to the first slot the previously presented key.

14

14. The method as recited in claim 9 , further comprising creating, by a buffer management engine of a data processing system, the circular buffer of the data processing system by allocating the plurality of entries in the memory of the data processing system for the circular buffer.

15

15. The method as recited in claim 9 , wherein the keys are mutually exclusive.

16

16. A system comprising: a processor; a memory unit having instructions stored thereon that, when executed by the processor, cause the system to: associate a slot of a key-value map with a plurality of keys; assign a first key-value pair to the slot of the key-value map, the first key-value pair including a first value and a first valid key of the plurality of keys associated with the slot; set a status of the first key to invalid in response to receiving an indication that the first key is to be invalidated; in response to the first key becoming invalid, reuse the slot of the key-value map by assigning to the slot a second key-value pair including a second value and a second valid key of the plurality of keys associated with the slot, wherein the first key is referenced by one or more entries of a circular buffer, each of the one or more entries of the circular buffer including a reference to the first key and buffered data; track progress of the circular buffer in response to setting the status of the first key to invalid; and set the status of the first key to valid when the first key is no longer referenced by the one or more entries of the circular buffer, wherein the first key is no longer referenced by the one or more entries of the circular buffer after a full rotation of the circular buffer.

17

17. The system recited in claim 16 , wherein the indication that the first key is to be invalidated comprises a request to delete the first key-value pair.

18

18. The system recited in claim 16 , wherein the one or more entries of the circular buffer use the first key to identify the slot of the key-value map containing the first value of the first key-value pair.

19

19. The system recited in claim 16 , wherein the instructions, when executed by the processor, further cause the system to reuse the first key by assigning to the slot a third key-value pair, the third key-value pair including a third value and the first key of the subset of the plurality of keys.

20

20. The system recited in claim 16 , wherein the instructions, when executed by the processor, further cause the system to determine if a first key received with a first key-value request is valid.

21

21. The system recited in claim 20 , wherein the instructions, when executed by the processor, further cause the system to transfer an error message if the first key is invalid.

22

22. The system recited in claim 20 , wherein the instructions, when executed by the processor, further cause the system to transfer the value of the key-value pair associated with the first key if the first key is valid.

23

23. A method comprising: associating, by a key management engine of a data processing system, a slot of a key-value map with a plurality of keys; assigning, by the key management engine, a first key-value pair to the slot of the key-value map, the first key-value pair including a first value and a first valid key of the plurality of keys associated with the slot; in response to the first key becoming invalid, reusing, by the key management engine, the slot of the key-value map by assigning to the slot a second key-value pair including a second value and a second valid key of the plurality of keys associated with the slot, wherein the first key is referenced by one or more entries of a circular buffer, each of the one or more entries of the circular buffer including a reference to the first key and buffered data; in response to setting the status of the first key to invalid, tracking, by the key management engine, progress of the circular buffer; and setting, by the key management engine, the status of the first key to valid when the first key is no longer referenced by the one or more entries of the circular buffer, wherein the one or more entries of the circular buffer use the first key to identify the slot of the key-value map containing the first value of the first key-value pair.

24

24. The method recited in claim 23 , wherein the indication that the first key is to be invalidated comprises a request to delete the first key-value pair.

25

25. The method recited in claim 23 , wherein the first key is no longer referenced by the one or more entries of the circular buffer after a full rotation of the circular buffer.

26

26. The method recited in claim 23 , wherein the instructions, when executed by the processor, further cause the system to reuse the first key by assigning to the slot a third key-value pair, the third key-value pair including a third value and the first key of the subset of the plurality of keys.

27

27. The method recited in claim 23 , wherein the instructions, when executed by the processor, further cause the system to determine if a first key received with a first key-value request is valid.

28

28. The method recited in claim 27 , wherein the instructions, when executed by the processor, further cause the system to transfer an error message if the first key is invalid.

29

29. The method recited in claim 27 , wherein the instructions, when executed by the processor, further cause the system to transfer the value of the key-value pair associated with the first key if the first key is valid.

30

30. A method comprising: associating, by a key management engine of a data processing system, a slot of a key-value map with a plurality of keys; assigning, by the key management engine, a first key-value pair to the slot of the key-value map, the first key-value pair including a first value and a first valid key of the plurality of keys associated with the slot; in response to the first key becoming invalid, reusing, by the key management engine, the slot of the key-value map by assigning to the slot a second key-value pair including a second value and a second valid key of the plurality of keys associated with the slot, wherein the first key is referenced by one or more entries of a circular buffer, each of the one or more entries of the circular buffer including a reference to the first key and buffered data; in response to setting the status of the first key to invalid, tracking, by the key management engine, progress of the circular buffer; and setting, by the key management engine, the status of the first key to valid when the first key is no longer referenced by the one or more entries of the circular buffer; reusing, by the key management engine, subsequent to said setting the status of the first key to valid, the first key by assigning to the slot a third key-value pair, the third key-value pair including a third value and the first key of the subset of the plurality of keys.

31

31. The method recited in claim 30 , wherein the indication that the first key is to be invalidated comprises a request to delete the first key-value pair.

32

32. The method recited in claim 30 , wherein the first key is no longer referenced by the one or more entries of the circular buffer after a full rotation of the circular buffer.

33

33. The method recited in claim 30 , wherein the instructions, when executed by the processor, further cause the system to reuse the first key by assigning to the slot a third key-value pair, the third key-value pair including a third value and the first key of the subset of the plurality of keys.

34

34. The method recited in claim 30 , wherein the instructions, when executed by the processor, further cause the system to determine if a first key received with a first key-value request is valid.

35

35. The method recited in claim 34 , wherein the instructions, when executed by the processor, further cause the system to transfer an error message if the first key is invalid.

36

36. The method recited in claim 34 , wherein the instructions, when executed by the processor, further cause the system to transfer the value of the key-value pair associated with the first key if the first key is valid.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

January 17, 2012

Publication Date

September 2, 2014

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Space-efficient, durable key-value map” (US-8825666). https://patentable.app/patents/US-8825666

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.