Large range lookups for Bϵ-tree

US11093471B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11093471-B2
Application numberUS-201816000142-A
CountryUS
Kind codeB2
Filing dateJun 5, 2018
Priority dateJun 5, 2018
Publication dateAug 17, 2021
Grant dateAug 17, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments herein are directed towards systems and methods for performing range lookups in Bε-trees. One example method involves receiving a request to return key-value pairs within a range of keys from the Bε-tree. The Bε-tree includes a plurality of nodes, each node being associated with a buffer that stores key-value pairs. The method further involves determining a fractional size of the range of keys. The method further involves, for each level of the Bε-tree, obtaining from within one or more buffers of one or more nodes of the level, a set of key-value pairs within the range of keys up to a size equal to the fractional size and transferring the set of key-value pairs to a result data structure. The method further involves sorting and merging all key-value pairs in the result data structure and returning the result data structure in response to the request.

First claim

Opening claim text (preview).

We claim: 1. A method for performing a range lookup in a B ε -tree, comprising: receiving a request to return key-value pairs within a range of keys from the B ε -tree, wherein the B ε -tree comprises a plurality of nodes comprising a root node, a plurality of branch nodes, and a plurality of leaf nodes, wherein the root node and each node of the plurality of branch nodes is associated with a buffer that stores one or more key-value pairs; obtaining from within one or more buffers of one or more nodes of at least one level of the B ε -tree, a set of key-value pairs within the range of keys up to a size equal to a size limit, the set of key value pairs comprising less than all key-value pairs within the range of keys stored in the B ε -tree; transferring the set of key-value pairs to a result data structure; after the transferring the set of key-value pairs, sorting all key-value pairs in the result data structure; after the transferring the set of key-value pairs, merging all key value pairs in the result data structure for at least one key of the range of keys; after the merging, determining that at least one key-value pair for the at least one key remains in the one or more buffers of the one or more nodes of the at least one level; after the determining, obtaining from within the one or more buffers of the one or more nodes of the at least one level one or more additional key-value pairs within the range of keys; transferring the one or more additional key-value pairs to the result data structure; after the transferring the one or more additional key value pairs, sorting all key-value pairs in the result data structure; after the transferring the one or more additional key value pairs, merging all key value pairs in the result data structure for the at least one key of the range of keys; and returning the result data structure in response to the request. 2. The method of claim 1 , wherein the result data structure is one of a B-tree or an array. 3. The method of claim 1 , further comprising determining the size limit by dividing the range of keys into a plurality of sections based on a number of key-value pairs that fit within a system memory, wherein the size limit is a size of a section of the plurality of sections. 4. The method of claim 1 , wherein the B ε -tree is locked during performing a range lookup to prevent modifications of the B ε -tree. 5. The method of claim 1 , wherein obtaining the set of key-value pairs comprises: determining a first key-value pair within the one or more buffers of the one or more nodes associated with a particular key of the range of keys is one of: a delete message; an insert message; or a modification of a value associated with the particular key to a fixed value; and not including in the set of key-value pairs any key-value pairs associated with the particular key having an earlier ordering than the first key-value pair. 6. The method of claim 1 , further comprising: storing an indicator in the result data structure indicating key-value pairs within the range of keys have not been fully transferred from the at least one level. 7. The method of claim 6 , wherein determining that at least one key-value pair for the at least one key remains in the one or more buffers of the one or more nodes of the at least one level comprises: determining that the indicator is stored within the result data structure associated with a first key-value pair of the at least one key-value pair. 8. A computer system, wherein system software for the computer system is programmed to execute a method for performing a range lookup in a B ε -tree, the method comprising: receiving a request to return key-value pairs within a range of keys from the B ε -tree, wherein the B ε -tree comprises a plurality of nodes comprising a root node, a plurality of branch nodes, and a plurality of leaf nodes, wherein the root node and each node of the plurality of branch nodes is associated with a buffer that stores one or more key-value pairs; obtaining from within one or more buffers of one or more nodes of at least one level of the B ε -tree, a set of key-value pairs within the range of keys up to a size equal to a size limit, the set of key value pairs comprising less than all key-value pairs within the range of keys stored in the B ε -tree; transferring the set of key-value pairs to a result data structure; after the transferring the set of key-value pairs, sorting all key-value pairs in the result data structure; after the transferring the set of key-value pairs, merging all key value pairs in the result data structure for at least one key of the range of keys; after the merging, determining that at least one key-value pair for the at least one key remains in the one or more buffers of the one or more nodes of the at least one level; after the determining, obtaining from within the one or more buffers of the one or more nodes of the at least one level one or more additional key-value pairs within the range of keys; transferring the one or more additional key-value pairs to the result data structure; after the transferring the one or more additional key value pairs, sorting all key-value pairs in the result data structure; after the transferring the one or more additional key value pairs, merging all key value pairs in the result data structure for the at least one key of the range of keys; and returning the result data structure in response to the request. 9. The computer system of claim 8 , wherein the result data structure is one of a B-tree or an array. 10. The computer system of claim 8 , wherein the method further comprises determining the size limit by dividing the range of keys into a plurality of sections based on a number of key-value pairs that fit within a system memory, wherein the size limit is a size of a section of the plurality of sections. 11. The computer system of claim 8 , wherein the B ε -tree is locked during performing a range lookup to prevent modifications of the B ε -tree. 12. The computer system of claim 8 wherein obtaining the set of key-value pairs comprises: determining a first key-value pair within the one or more buffers of the one or more nodes associated with a particular key of the range of keys is one of: a delete message; an insert message; or a modification of a value associated with the particular key to a fixed value; and not including in the set of key-value pairs any key-value pairs associated with the particular key having an earlier ordering than the first key-value pair. 13. The computer system of claim 8 , the method further comprising: storing an indicator in the result data structure indicating key-value pairs within the range of keys have not been fully transferred from the at least one level. 14. The computer system of claim 13 , wherein determining that at least one key-value pair for the at least one key remains in the one or more buffers of the one or more nodes of the at least one level comprises: determining that the indicator is stored within the result data structure associated with a first key-value pair of the at least one key-value pair. 15. A non-transitory computer readable medium comprising instructions to be executed in a computer system, wherein the instructions when executed in the computer system cause the computer system to perform a method for performing a range lookup in a B ε -tree, the method comprising: receiving a request to return key-value pairs within a range of keys from the B ε -tree, wherein the B ε -tree comprises a plurality of nodes comprising a root node, a plurality of branch nodes,

Assignees

Inventors

Classifications

  • Trees, e.g. B+trees · CPC title

  • Combined merging and sorting · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11093471B2 cover?
Embodiments herein are directed towards systems and methods for performing range lookups in Bε-trees. One example method involves receiving a request to return key-value pairs within a range of keys from the Bε-tree. The Bε-tree includes a plurality of nodes, each node being associated with a buffer that stores key-value pairs. The method further involves determining a fractional size of the ra…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/2246. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 17 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).