Incremental bloom filter rebuild for B+ trees under multi-version concurrency control

US10795872B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10795872-B2
Application numberUS-201715398832-A
CountryUS
Kind codeB2
Filing dateJan 5, 2017
Priority dateJun 29, 2016
Publication dateOct 6, 2020
Grant dateOct 6, 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 method comprising: processing an update to a search tree and updating statistics, the search tree storing information about one or more objects indexed by corresponding object keys; determining to rebuild a first Bloom filter based on the statistics, the first Bloom filter associated with the search tree; generating a second Bloom filter associated with the search tree; populating the second Bloom filter as part of a tracing garbage collection process; and replacing the first Bloom filter with the second Bloom filter.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: processing an update to search tree, the search tree storing information about one or more objects indexed by corresponding object keys; determining an estimated accuracy for a first Bloom filter based on a ratio of a tree object count and a filter object count, wherein; (i) the tree object count includes a count of objects that are currently stored in the search tree, and (ii) the filter object count includes a sum of the count of objects that are currently stored in the search tree and a count of objects that have been deleted from the search tree; determining to rebuild the first Bloom filter based on the estimated accuracy, the first Bloom filter associated with the search tree; generating a second Bloom filter associated with the search tree; populating the second Bloom filter as part of a tracing garbage collection process, the populating including visiting any of a plurality of leaves in the search tree by the trace garbage collection process, and adding, to the second Bloom filter, an object key that corresponds to a leaf; and replacing the first Bloom filter with the second Bloom filter. 2. The method of claim 1 wherein processing the update to the search tree comprises: if the update includes adding an object to the search tree, adding Information about the object to the search tree indexed by a corresponding object key, adding the corresponding object key to the first Bloom filter, incrementing the object count, and incrementing the filter object count; and if the update includes deleting an object to the search tree, deleting information about the object from the search tree and decrementing the tree object count. 3. The method of claim 2 further comprising; determining a target object count for the search tree, wherein determining to rebuild the first Bloom filter is further based on comparing the target object count and the tree object count. 4. The method of claim 3 further comprising generating the first Bloom filter having a capacity determined using the target object count for the search tree. 5. A system comprising: one or more processors; a volatile memory; and a non-volatile memory storing computer program code that when executed on the processor causes execution across the one or more processors of a process operable to perform the operations of: processing an update to a search tree, the search tree storing information about one or more objects indexed by corresponding object keys: determining an estimated accuracy for a first Bloom filter based on a ratio of a tree object count and a filter object count, wherein; (i) the tree object count includes a count of objects that are currently stored in the search tree, and (ii) the filter object count includes a sum of the count of objects that are currently stored in the search tree and a count of objects that have been deleted from the search tree; determining to rebuild the first Bloom filter based on the estimated accuracy, the first Bloom filter associated with the search tree; generating a second Bloom filter associated the search tree: populating the second Bloom filter as part of a tracing garbage collection process, the populating including visiting any of a plurality of leaves in the search tree by the trace garbage collection process, and adding, to the second Bloom filter, an object key that corresponds to a leaf; and replacing the first Bloom filter with the second Bloom filter. 6. The system of claim 5 wherein processing the update to the search tree comprises: if the update includes adding an object to the search tree, adding information about the object to the search tree indexed by a corresponding object key, adding the corresponding object key to the first Bloom filter, incrementing the tree object count, and incrementing the filter object count; and if the update includes deleting an object to the search tree, deleting information about the object from the search tree and decrementing the tree object count. 7. The system of claim 6 wherein the process is further operable to perform the operation of determining a target object count for the search tree, and determining to rebuild the first Bloom filter is further based on comparing the target object count and the tree object count. 8. The system of claim 7 wherein the process is further operable to perform the operation of generating the first Bloom filter having a capacity determined using the target object count for the search tree. 9. A computer program product tangibly embodied in a non-transitory computer-readable medium, the computer-readable medium storing program instructions that are executable to: process an update to a search tree, the search tree storing information about one or more objects indexed by corresponding object keys; determining an estimated accuracy for a first Bloom filter based on a ratio of a tree object count and a filter object count, wherein: (i) the tree object count includes a count of objects that are currently stored in the search tree, and (ii) the filter object count includes a sum of the count of objects that are currently stored in the search tree and a count of objects that have been deleted from the search tree; determine to rebuild the first Bloom filter based on the estimated accuracy, the first Bloom filter associated with the search tree; generate a second Bloom filter associated with the search tree; populate the second Bloom filter as part of a tracing garbage collection process, the populating including visiting any of a plurality of leaves in the search tree by the trace garbage collection process, and adding, to the second Bloom filter, an object key that corresponds to a leaf; and replace the first Bloom filter with the second Bloom filter. 10. The computer program product of claim 9 wherein processing the update to the search tree comprises: if the update includes adding an object to the search tree, adding information about the object to the search tree indexed by a corresponding object key, adding the corresponding object key to the first Bloom filter, incrementing the tree object count, and incrementing the filter object count; and if the update includes deleting an object to the search tree, deleting information about the object from the search tree and decrementing the tree object count. 11. The computer program product of claim 10 , the computer-readable medium storm program instructions that are further executable to: determining a target object count for the search tree, wherein determining to rebuild the first Bloom filter is further based on comparing the target object count and the tree object count. 12. The computer program product of claim 11 , the computer-readable medium storing program instructions that are further executable to generate the first Bloom filter having a capacity determined using the target object count for the search tree.

Assignees

Inventors

Classifications

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

  • using reference counting · CPC title

  • Incremental or concurrent garbage collection, e.g. in real-time systems (G06F12/0261 takes precedence) · CPC title

  • using versioning · CPC title

  • Latency reduction · 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 US10795872B2 cover?
A method comprising: processing an update to a search tree and updating statistics, the search tree storing information about one or more objects indexed by corresponding object keys; determining to rebuild a first Bloom filter based on the statistics, the first Bloom filter associated with the search tree; generating a second Bloom filter associated with the search tree; populating the second …
Who is the assignee on this patent?
Emc Ip Holding Co Llc
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 Oct 06 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).