Balancing write amplification and space amplification in buffer trees

US10824610B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10824610-B2
Application numberUS-201816134564-A
CountryUS
Kind codeB2
Filing dateSep 18, 2018
Priority dateSep 18, 2018
Publication dateNov 3, 2020
Grant dateNov 3, 2020

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.

A buffer tree structure includes, at each internal node, a buffer having a compacted portion and an uncompacted portion. Insertion of data elements to the buffer tree can occur units called packets. A packet is initially stored in the uncompacted portion of a receiving node's buffer. When a compaction trigger condition exists, packet compaction is performed including a data element compaction operation. A buffer-emptying (flush) operation pushes the compacted packets to children nodes.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method comprising: receiving, by a computer, a packet comprising a plurality of data elements to be stored in a node (“target node”) of a buffer tree; storing, by the computer, the received packet as an uncompacted packet in a first portion of a buffer associated with the target node; and performing, by the computer, a packet compaction operation on the target node when a compaction trigger condition exists on the target node, including the computer: sorting data elements contained in uncompacted packets in the first portion of the buffer associated with the target node; storing the sorted data elements into one or more compacted packets in a second portion of the buffer associated with the target node, including creating the one or more compacted packets on the data storage device and writing the sorted data elements to the data storage device; and performing a data element compaction operation on one or more sets of data elements by replacing each set of data elements with a corresponding smaller set of replacement data elements, thereby reducing the number of data elements in the target node, wherein the compaction trigger condition on the target node is based on an amount of space used by the buffer associated with the target node and based on an amount of free space on the data storage device. 2. The method of claim 1 , wherein the compaction trigger condition on the target node exists when a number of uncompacted packets in the target node exceeds a threshold value, wherein the threshold value varies based on an amount of free space on the data storage device. 3. The method of claim 2 , wherein the threshold value of varies in direct proportion with the amount of free space on the data storage device. 4. The method of claim 1 , wherein the compaction trigger condition on the target node exists when a total size of data elements in the uncompacted packets of the target node exceeds a threshold value, wherein the threshold value varies based on an amount of free space on the data storage device. 5. The method of claim 1 , further comprising receiving a query on the buffer tree and, in response, traversing one or more nodes of the buffer tree and performing a packet compaction operation on each traversed node. 6. The method of claim 5 , further comprising performing the packet compaction operation on a traversed node only when a compaction trigger condition exists on the traversed node. 7. The method of claim 1 , further comprising scanning nodes in the buffer tree and performing a packet compaction operation on nodes in the buffer tree, as a background process. 8. The method of claim 1 , wherein the corresponding smaller set of replacement data elements comprises a single replacement data element. 9. The method of claim 1 , further comprising performing the data element compaction operation as an operation in sorting the data elements contained in the uncompacted packets of the target node. 10. The method of claim 1 , further comprising performing the data element compaction operation as an operation in storing the sorted data elements into one or more compacted packets. 11. The method of claim 1 , wherein the data element compaction operation is performed on data elements having a same key component. 12. The method of claim 1 , wherein the data element compaction operation includes invoking a call-back function to replace data elements in a set of data elements with a corresponding smaller set of replacement data elements. 13. The method of claim 1 , wherein storing the received packet as an uncompacted packet in a first portion of a buffer associated with the target node includes storing a pointer to the received packet and does not include writing the data elements in the received packet to the data storage device. 14. A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computer device, cause the computer device to: receive a packet comprising a plurality of data elements to be stored in a target node of a buffer tree; store the received packet as an uncompacted packet in a first portion of a buffer associated with the target node; and perform a packet compaction operation on the target node when a compaction trigger condition exists on the target node, including the computer device: sorting data elements contained in uncompacted packets in the first portion of the buffer associated with the target node; storing the sorted data elements into one or more compacted packets in a second portion of the buffer associated with the target node, including creating the one or more compacted packets on the data storage device and writing the sorted data elements to the data storage device; and performing a data element compaction operation on one or more sets of data elements by replacing each set of data elements with a corresponding smaller set of replacement data elements, thereby reducing the number of data elements in the target node, wherein the compaction trigger condition on the target node is based on an amount of space used by the buffer associated with the target node and based on an amount of free space on the data storage device. 15. The non-transitory computer-readable storage medium of claim 14 , wherein the compaction trigger condition on the target node exists when a number of uncompacted packets in the target node exceeds a threshold value, wherein the threshold value varies based on an amount of free space on the data storage device. 16. The non-transitory computer-readable storage medium of claim 14 , wherein the computer executable instructions, which when executed by the computer device, further cause the computer device to receive a query on the buffer tree and, in response, traverse one or more nodes of the buffer tree and perform a packet compaction operation on each traversed node. 17. The non-transitory computer-readable storage medium of claim 14 , wherein the computer executable instructions, which when executed by the computer device, further cause the computer device to scan nodes in the buffer tree and perform a packet compaction operation on nodes in the buffer tree, as a background process. 18. An apparatus comprising: one or more computer processors; and a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be operable to: receive a packet comprising a plurality of data elements to be stored in a target node of a buffer tree; store the received packet as an uncompacted packet in a first portion of a buffer associated with the target node; and perform a packet compaction operation on the target node when a compaction trigger condition exists on the target node, including the computer device: sorting data elements contained in uncompacted packets in the first portion of the buffer associated with the target node; storing the sorted data elements into one or more compacted packets in a second portion of the buffer associated with the target node, including creating the one or more compacted packets on the data storage device and writing the sorted data elements to the data storage device; and performing a data element compaction operation on one or more sets of data elements by replacing each set of data elements with a corresponding smaller set of replacement data elements, thereby reducing the number of data elements in the target node, wherein the compaction trigger condition on the target node is based on an amount of space used by the buf

Assignees

Inventors

Classifications

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

  • Updates performed during online database operations; commit processing · 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 US10824610B2 cover?
A buffer tree structure includes, at each internal node, a buffer having a compacted portion and an uncompacted portion. Insertion of data elements to the buffer tree can occur units called packets. A packet is initially stored in the uncompacted portion of a receiving node's buffer. When a compaction trigger condition exists, packet compaction is performed including a data element compaction o…
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 Nov 03 2020 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).