IP Library Granted Patent US 10,783,186
Granted Patent B2
US 10,783,186 · App. 15/691,888 · Granted Sep 22, 2020

Heterogenous key-value sets in tree database

Inventors: David Boles (Austin, TX); John M. Groves (Austin, TX); Steven Moyer (Round Rock, TX); Alexander Tomlinson (Austin, TX)
Assignee: Micron Technology, Inc.
G06F16/9027G06F16/22G06F16/2365
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 10,783,186
App. No.
15/691,888
Granted
Sep 22, 2020
Kind
B2
Abstract

A KVS tree database and operations thereon are described herein. A KVS tree database is a multilevel tree that includes a base level and subsequent levels. The base level includes a heterogeneous kvset in a node, The heterogeneous kvset including entries for multiple KVS trees, such as a first entry for a first KVS tree and a second entry for a second KVS tree, The subsequent level includes a first node including a first homogeneous kvset for the first KVS tree and a second node including a second homogeneous kvset for the second KVS tree. Here, a homogeneous kvset includes nodes from only one KVS tree. The KVS tree database also includes a first determinative mapping of entries between the base level and the subsequent level and a second determinative mapping of entries between subsequent levels.

Claims (65)

1. A method to implement a key-value store tree database comprising a multi-level tree, the multi-level tree comprising a base level and at least one subsequent level, the method comprising:

receiving a first entry that comprises a first key and a first tree identifier corresponding to a first key-value store tree;

receiving a second entry that includes a second key and a second tree identifier corresponding to a second key-value store tree; and

writing the first entry and the second entry to a heterogeneous key-value set in a single base level node of the base level of the multi-level tree, the base level comprising at least one base level node, the at least one subsequent level comprising at least one subsequent level node, each subsequent level node corresponding to a single key-value store tree and comprising homogeneous key-value sets for the single key-value store tree, the multi-level tree having a first determinative mapping of entries between the at least one base level node and the at least one subsequent level node and a second determinative mapping of entries between subsequent level nodes.

2. The method of claim 1 , comprising compacting a node of the multi-level tree.

3. The method of claim 2 , wherein compacting the node of the multi-level tree comprises performing a spill compaction the spill compaction comprising:

calculating a determinative mapping from an entry in the node, the determinative mapping specifying a single child node of the node; and

writing the entry to the single child node.

4. The method of claim 3 , wherein the node and the single child node are subsequent level nodes, and wherein the determinative mapping is based only on a key for the entry.

5. The method of claim 2 , wherein compacting the node of the multi-level tree comprises performing a hoist compaction, the hoist compaction comprising writing a tree identifier to an entry written to a parent node in response to the parent node is a base level node and the entry does not have the tree identifier.

6. The method of claim 1 , comprising searching a node of the multi-level tree for an entry.

7. The method of claim 6 , wherein the node is a base level node, and wherein an entry is identified by a tree identifier and key tuple of the entry.

8. The method of claim 6 , wherein a determinative mapping from a query entry is used to move from a first node to a second node in a search.

9. The method of claim 8 , wherein the first determinative mapping is applied when the first node and the second node are base levels nodes, wherein the second determinative mapping is applied when the first node is a base level node and the second node is a subsequent level node, and wherein a third determinative mapping is applied when the first node and the second node are subsequent level nodes.

10. The method of claim 9 , wherein the second determinative mapping uses a tree identifier of the entry.

11. The method of claim 9 , wherein the first determinative mapping and the second determinative mapping do not use a tree identifier of the entry.

12. A machine readable medium including instructions that, when executed by processing circuitry, cause the processing circuitry to perform operations for implementing a key-value store tree database, the key-value store tree database comprising a multi-level tree that comprises a base level and at least one subsequent level, the operations comprising:

receiving a first entry that comprises a first key and a first tree identifier corresponding to a first key-value store tree;

receiving a second entry that comprises a second key and a second tree identifier corresponding to a second key-value store tree; and

writing the first entry and the second entry to a heterogeneous key-value set in a single base level node of the base level of the multi-level tree, the base level comprising at least one base level node, the at least one subsequent level comprising at least one subsequent level node, each subsequent level node corresponding to a single key-value store tree and comprising homogeneous key-value sets for the single key-value store tree, the multi-level tree having a first determinative mapping of entries between the at least one base level node and the at least one subsequent level node and a second determinative mapping of entries between subsequent level nodes.

13. The machine readable medium of claim 12 , wherein the operations comprise compacting a node of the multi-level tree.

14. The machine readable medium of claim 13 , wherein compacting the node of the multi-level tree comprises performing a key compaction.

15. The machine readable medium of claim 14 , wherein performing the key compaction comprises:

locating a set of entries with matching identifiers across multiple key-value sets of the node;

writing a newest entry of the set of entries to a new key-value set in the node; and

removing the multiple key-value sets from the node.

16. The machine readable medium of claim 15 , wherein the node is a base level node, and wherein the identifiers are based on a tree identifier and key tuple for an entry.

17. The machine readable medium of claim 15 , wherein the key compaction is performed on a subsequent level node, and wherein the identifiers are based only on a key for an entry.

18. The machine readable medium of claim 15 , wherein removing the multiple key-value sets from the node comprises includes removing values corresponding to the multiple key-value sets from the node.

19. The machine readable medium of claim 18 , wherein compacting the node of the multi-level tree comprises performing a spill compaction, the spill compaction comprising:

calculating a determinative mapping from an entry in the node, the determinative mapping specifying a single child node of the node; and

writing the entry to the single child node.

20. The machine readable medium of claim 19 , wherein the node is a base level node and the single child node is a subsequent level node, and wherein the determinative mapping is based on a tree identifier and key tuple for the entry.

21. The machine readable medium of claim 19 , wherein the node and the single child node are subsequent level nodes, and wherein the determinative mapping is based only on a key for the entry.

22. The machine readable medium of claim 21 , wherein the determinative mapping varies based on a tree level of the node.

23. The machine readable medium of claim 22 , wherein the determinative mapping is a portion of a hash of the key, the portion specified by the tree level and a pre-set apportionment of the hash.

24. The machine readable medium of claim 23 , wherein the pre-set apportionment defines a maximum number of child nodes for at least some tree levels.

25. The machine readable medium of claim 23 , wherein the pre-set apportionment defines a maximum depth to the multi-level tree.

26. The machine readable medium of claim 13 , wherein compacting the node of the multi-level tree comprises performing a hoist compaction, the hoist compaction comprising writing a tree identifier to an entry written to a parent node in response to the parent node is a base level node and the entry does not have the tree identifier.

27. The machine readable medium of claim 12 , wherein the operations comprise searching a node of the multi-level tree for an entry.

28. The machine readable medium of claim 27 , wherein the node is a base level node, and wherein an entry is identified by a tree identifier and key tuple of the entry.

29. The machine readable medium of claim 27 , wherein the node is a subsequent level node, and wherein an entry is identified only by a key of the entry.

30. The machine readable medium of claim 27 , wherein a determinative mapping from a query entry is used to move from a first node to a second node in a search.

31. The machine readable medium of claim 30 , wherein the first determinative mapping is applied when the first node and the second node are base levels nodes, wherein the second determinative mapping is applied when the first node is a base level node and the second node is a subsequent level node, and wherein a third determinative mapping is applied when the first node and the second node are subsequent level nodes.

32. The machine readable medium of claim 31 , wherein the second determinative mapping uses a tree identifier of the entry.

33. The machine readable medium of claim 31 , wherein the first determinative mapping and the second determinative mapping do not use a tree identifier of the entry.

34. A system comprising:

a memory device to implement a key-value store tree database that comprises a multi-level tree, the multi-level tree comprising a base level and at least one subsequent level; and

a hardware processor operatively coupled to the memory device, the processing device configured to perform operations comprising:

receiving a first entry that comprises a first key and a first tree identifier corresponding to a first key-value store tree;

receiving a second entry that comprises a second key and a second tree identifier corresponding to a second key-value store tree; and

writing the first entry and the second entry to a heterogeneous key-value set in a single base level node of the base level of the multi-level tree, the base level comprising at least one base level node, the at least one subsequent level comprising at least one subsequent level node, each subsequent level node corresponding to a single key-value store tree and comprising homogeneous key-value sets for the single key-value store tree, the multi-level tree having a first determinative mapping of entries between the at least one base level node and the at least one subsequent level node and a second determinative mapping of entries between subsequent level nodes.

35. The system of claim 34 , wherein the operations comprise compacting a node of the multi-level tree.

36. The system of claim 35 , wherein compacting the node of the multi-level tree comprises performing a key compaction.

37. The system of claim 36 , wherein performing the key compaction comprises:

locating a set of entries with matching identifiers across multiple key-value sets of the node;

writing a newest entry of the set of entries to a new key-value set in the node; and

removing the multiple key-value sets from the node.

38. The system of claim 37 , wherein the node is a base level node, and wherein the identifiers are based on a tree identifier and key tuple for an entry.

39. The system of claim 37 , wherein the key compaction is performed on a subsequent level node, and wherein the identifiers are based only on a key for an entry.

40. The system of claim 37 , wherein removing the multiple key-value sets from the node comprises removing values corresponding to the multiple key-value sets from the node.

41. The system of claim 35 , wherein compacting the node of the multi-level tree comprises performing a spill compaction, the spill compaction comprising:

calculating a determinative mapping from an entry in the node, the determinative mapping specifying a single child node of the node; and

writing the entry to the single child node.

42. The system of claim 41 , wherein the node is a base level node and the single child node is a subsequent level node, and wherein the determinative mapping is based on a tree identifier and key tuple for the entry.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050709/0838 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2019
From: BOLES, DAVID; GROVES, JOHN M; MOYER, STEVEN; TOMLINSON, ALEXANDER
To: MICRON TECHNOLOGY, INC.
Reel/Frame 048075/0789 →
RELEASE OF SECURITY INTEREST Recorded Jul 20, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 046597/0333 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
SUPPLEMENT NO. 6 TO PATENT SECURITY AGREEMENT Recorded Nov 1, 2017
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 044653/0333 →
SUPPLEMENT NO. 6 TO PATENT SECURITY AGREEMENT Recorded Nov 1, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 044348/0253 →
Continuity (1)
Related Publication 20190065621A1 · Feb 28, 2019
Cited By (2)
US 12,355,876 US 12,717,500