Bounding cost of flushes in buffer trees

US11061881B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11061881-B2
Application numberUS-201816184861-A
CountryUS
Kind codeB2
Filing dateNov 8, 2018
Priority dateNov 8, 2018
Publication dateJul 13, 2021
Grant dateJul 13, 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.

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”) 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.

Assignees

Inventors

Classifications

  • Tablespace storage structures; Management thereof · CPC title

  • Trees, e.g. B+trees · 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 US11061881B2 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/2282. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 13 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 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).