Reducing write amplification in buffer trees
US-2020012735-A1 · Jan 9, 2020 · US
US11061881B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11061881-B2 |
| Application number | US-201816184861-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 8, 2018 |
| Priority date | Nov 8, 2018 |
| Publication date | Jul 13, 2021 |
| Grant date | Jul 13, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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”) in a buffer tree; storing, by the computer, the received packet in a buffer in the target node, the buffer having a compacted portion and an uncompacted portion, the received packet stored as an uncompacted packet in the uncompacted portion of the buffer; and performing, by the computer, a compaction operation on the target node, including the computer: combining data elements in one or more uncompacted packets in the uncompacted portion of the buffer to produce one or more compacted packets; storing the one or more compacted packets in the compacted portion of the buffer associated with the target node; flushing at least one of the compacted packets to at most a single child node of the target node; and in response to flushing the at least one of the compacted packets to the single child node, performing the compaction operation on the single child node, wherein the flushing of compacted packets proceeds along a single path toward a leaf node of the buffer tree. 2. The method of claim 1 , further comprising selecting the single child node from among a plurality of children nodes of the target node based on how many data elements will be flushed to each of the children nodes. 3. The method of claim 1 , further comprising selecting the single child node from among a plurality of children nodes of the target node in round robin fashion. 4. The method of claim 1 , further comprising selecting the single child node from among a plurality of children nodes of the target node randomly. 5. The method of claim 1 , wherein flushing at least one of the compacted packets to a single child node of the target node is selectively performed only when a total number of uncompacted and compacted packets in the buffer associated with the target node exceeds a predetermined value. 6. 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 node (“target node”) in a buffer tree; store the received packet in a buffer in the target node, the buffer having a compacted portion and an uncompacted portion, the received packet stored as an uncompacted packet in the uncompacted portion of the buffer; and perform a compaction operation on the target node, including: combining data elements in one or more uncompacted packets in the uncompacted portion of the buffer to produce one or more compacted packets; storing the one or more compacted packets in the compacted portion of the buffer associated with the target node; flushing at least one of the compacted packets to at most a single child node of the target node; and in response to flushing the at least one of the compacted packets to the single child node, performing the compaction operation on the single child node, wherein the flushing of compacted packets proceeds along a single path toward a leaf node of the buffer tree. 7. The non-transitory computer-readable storage medium of claim 6 , wherein the computer executable instructions, which when executed by the computer device, further cause the computer device to select the single child node from among a plurality of children nodes of the target node based on how many data elements will be flushed to each of the children nodes. 8. The non-transitory computer-readable storage medium of claim 6 , wherein the computer executable instructions, which when executed by the computer device, further cause the computer device to select the single child node from among a plurality of children nodes of the target node in round robin fashion. 9. The non-transitory computer-readable storage medium of claim 6 , wherein the computer executable instructions, which when executed by the computer device, further cause the computer device to select the single child node from among a plurality of children nodes of the target node randomly. 10. The non-transitory computer-readable storage medium of claim 6 , wherein flushing at least one of the compacted packets to a single child node of the target node is selectively performed only when a total number of uncompacted and compacted packets in the buffer associated with the target node exceeds a predetermined value. 11. 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 node (“target node”) in a buffer tree; store the received packet in a buffer in the target node, the buffer having a compacted portion and an uncompacted portion, the received packet stored as an uncompacted packet in the uncompacted portion of the buffer; and perform a compaction operation on the target node, including: combining data elements in one or more uncompacted packets in the uncompacted portion of the buffer to produce one or more compacted packets; storing the one or more compacted packets in the compacted portion of the buffer associated with the target node; flushing at least one of the compacted packets to at most a single child node of the target node; and in response to flushing the at least one of the compacted packets to the single child node, performing the compaction operation on the single child node, wherein the flushing of compacted packets proceeds along a single path toward a leaf node of the buffer tree. 12. The apparatus of claim 11 , wherein the computer-readable storage medium further comprises instructions for controlling the one or more computer processors to be operable to select the single child node from among a plurality of children nodes of the target node based on how many data elements will be flushed to each of the children nodes. 13. The apparatus of claim 11 , wherein the computer-readable storage medium further comprises instructions for controlling the one or more computer processors to be operable to select the single child node from among a plurality of children nodes of the target node in round robin fashion. 14. The apparatus of claim 11 , wherein the computer-readable storage medium further comprises instructions for controlling the one or more computer processors to be operable to select the single child node from among a plurality of children nodes of the target node randomly. 15. The apparatus of claim 11 , wherein flushing at least one of the compacted packets to a single child node of the target node is selectively performed only when a total number of uncompacted and compacted packets in the buffer associated with the target node exceeds a predetermined value.
Tablespace storage structures; Management thereof · CPC title
Trees, e.g. B+trees · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.