Managing hash tables in a storage system

US11438415B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11438415-B2
Application numberUS-201916669000-A
CountryUS
Kind codeB2
Filing dateOct 30, 2019
Priority dateOct 30, 2019
Publication dateSep 6, 2022
Grant dateSep 6, 2022

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.

An aspect includes splitting a table of buckets into a fixed number of domains. Each of the domains includes a corresponding subset of the buckets. An aspect also includes providing a spare bucket for each of the subsets of the buckets and providing a metadata structure for each of the domains. The metadata structure includes a head pointer that points to a first bucket of a corresponding subset of the buckets and a spare_bucket pointer that points to the spare bucket of the subset of the buckets. An aspect further includes providing a split-spare bucket pointer that interleaves, during updates to data, among the subset of buckets in the domain. Data subject to the updates is stored in the spare bucket for a corresponding one of the domains. An aspect also includes updating the head pointer and the spare_bucket pointer for corresponding domains in response to updating the data.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: providing a table of buckets having a fixed number of domains, each of the domains including a corresponding subset of the buckets; providing a spare bucket for each of the subsets of the buckets; providing a metadata structure for each of the fixed number of domains, the metadata structure including a head pointer that points to a first bucket of a corresponding subset of the buckets and a spare_bucket pointer that points to the spare bucket of the corresponding subset of the buckets; providing a split-spare bucket pointer that points to a split-spare bucket, the split-spare bucket being configured to receive sub-buckets during a split of the table, the split-spare bucket being used only when a split of the table is ongoing, such that the split-spare bucket is not used when a split of the table is not ongoing, and updating the head pointer and the spare_bucket pointer for corresponding domains in response to updating the buckets. 2. The method of claim 1 , wherein a subset of the buckets corresponding to a first domain of the fixed number of domains is a first subset and another subset of the buckets corresponding to a second domain of the fixed number of domains is a second subset, the method further comprising: splitting the first subset into a first subgroup of buckets and a second subgroup of buckets; and splitting the second subset of the buckets into a third subgroup of buckets and a fourth subgroup of bucket. 3. The method of claim 2 , further comprising: mapping buckets in the first subgroup and the second subgroup to the first subset; and mapping buckets in the third subgroup and the fourth subgroup to the second subset; wherein each mapping is implemented via a corresponding combined domain identifier and a corresponding bucket identifier. 4. The method of claim 1 , wherein the head pointer is atomically updated to point to the spare bucket in response to detecting that contents of the first bucket have been copied into the spare bucket. 5. The method of claim 1 , wherein the split-spare bucket is configured to occupy a last slot in the table before any given split of the tbale is initiated and the split-spare bucket is configured to occupy other than the last slot in the table while the given split is ongoing. 6. The method of claim 1 , wherein the updating includes updating the buckets in a consecutive-cyclic manner. 7. The method of claim 1 , wherein the metadata structure is stored in non-volatile memory. 8. A system comprising: a memory having computer-executable instructions; and a processor for executing the computer-executable instructions, the computer-executable instructions when executed by the processor cause the processor to perform operations, comprising providing a table of buckets having a fixed number of domains, each of the domains including a corresponding subset of the buckets; providing a spare bucket for each of the subsets of the buckets; providing a metadata structure for each of the fixed number of domains, the metadata structure including a head pointer that points to a first bucket of a corresponding subset of the buckets and a spare_bucket pointer that points to the spare bucket of the corresponding subset of the buckets; providing a split-spare bucket pointer that points to a split-spare bucket, the split-spare bucket being configured to receive sub-buckets during a split of the table, the split-spare bucket being used only when a split of the table is ongoing, such that the split-spare bucket is not used when a split of the table is not ongoiing; and updating the head pointer and the spare bucket pointer for corresponding domains in response to updating the buckets. 9. The system of claim 8 , wherein a subset of the buckets corresponding to a first domain of the fixed number of domains is a first subset and another subset of the buckets corresponding to a second domain of the fixed number of domains is a second subset, the operations further comprising: splitting the first subset into a first subgroup of buckets and a second subgroup of buckets; and splitting the second subset of the buckets into a third subgroup of buckets and a fourth subgroup of bucket. 10. The system of claim 9 , wherein the operations further comprise: mapping buckets in the first subgroup and the second subgroup to the first subset; and mapping buckets in the third subgroup and the fourth subgroup to the second subset; wherein each mapping is implemented via a corresponding combined domain identifier and a corresponding bucket identifier. 11. The system of claim 8 , wherein the head pointer is atomically updated to point to the spare bucket in response to detecting that contents of the first bucket have been copied into the spare bucket. 12. The system of claim 8 , wherein the split-spare bucket is configured to occupy a last slot in the table before any given split of the table is initiated, and the split-spare bucket is configured to occupy other than the last slot in the table while the given split is ongoing. 13. The system of claim 8 , wherein the updating includes updating the buckets in a consecutive-cyclic manner. 14. The system of claim 8 , wherein the metadata structure is stored in non-volatile memory. 15. A computer program product embodied on a non-transitory computer readable medium, the computer program product including instructions that, when executed by a computer, cause the computer to perform operations, comprising: providing a table of buckets having a fixed number of domains, each of the domains including a corresponding subset of the buckets; providing a spare bucket for each of the subsets of the buckets; providing a metadata structure for each of the fixed number of domains, the metadata structure including a head pointer that points to a first bucket of a corresponding subset of the buckets and a spare_bucket pointer that points to the spare bucket of the corresponding subset of the buckets; providing a split-spare bucket pointer that points to a split-spare bucket, the split-spare bucket being configured to receive sub-buckets during a split of the table, the split-spare bucket being used only when a split of the table is ongoing, such that the split-spare bucket is not used when a split of the table is not ongoing; and and updating the head pointer and the spare_bucket pointer for corresponding domains in response to updating the bucket. 16. The computer program product of claim 15 , wherein a subset of the buckets corresponding to a first domain of the fixed number of domains is a first subset and another subset of the buckets corresponding to a second domain of the fixed number of domains is a second subset, the operations further comprising: splitting the first subset into a first subgroup of buckets and a second subgroup of buckets; and splitting the second subset of the buckets into a third subgroup of buckets and a fourth subgroup of bucket. 17. The computer program product of claim 16 , wherein the operations further comprise: mapping buckets in the first subgroup and the second subgroup to the first subset; and mapping buckets in the third subgroup and the fourth subgroup to the second subset; wherein each mapping is implemented via a corresponding combined domain identifier and a corresponding bucket identifier. 18. The computer program product of claim 15 , wherein the head pointer is atomically updated to point to the spare bucket in response to detecting that contents of the first bucket have been copied into the spare

Assignees

Inventors

Classifications

  • hash tables · CPC title

  • Adding application-functional data or data for application control, e.g. adding metadata · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • using token-bucket · 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 US11438415B2 cover?
An aspect includes splitting a table of buckets into a fixed number of domains. Each of the domains includes a corresponding subset of the buckets. An aspect also includes providing a spare bucket for each of the subsets of the buckets and providing a metadata structure for each of the domains. The metadata structure includes a head pointer that points to a first bucket of a corresponding subse…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/9014. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 06 2022 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).