System and method for invalidating multi-level hash table buckets
US-2022121646-A1 · Apr 21, 2022 · US
US12307115B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12307115-B2 |
| Application number | US-202318141722-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 1, 2023 |
| Priority date | May 1, 2023 |
| Publication date | May 20, 2025 |
| Grant date | May 20, 2025 |
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.
In at least one embodiment, processing can include: receiving metadata updates for MD pages; recording the MD updates for the MD pages in a MD log; and performing a first destaging phase that writes the MD updates from the MD log to a tablet stored on non-volatile storage. The tablet can include a bucket area and an extension area. The bucket area can include buckets each of which is a predetermined bucket size. The first destaging phase can include: writing a portion of the MD updates from the MD log to the bucket area; and writing a second portion of the MD updates from the MD log to the extension area. Each MD update of the second portion can overflow a corresponding one of the buckets which is included in the bucket area and which is associated with one of the MD pages updated by the MD update.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method comprising: receiving a plurality of metadata (MD) updates for a plurality of MD pages; recording the plurality of MD updates for the plurality of MD pages in a MD log; and performing a first destaging phase that writes the plurality of MD updates for the plurality of MD pages from the MD log to a first tablet stored on first non-volatile storage, wherein the first tablet includes a first bucket area and a first extension area, wherein the first bucket area includes a first plurality of buckets each a predetermined bucket size, and wherein said first destaging phase further includes: writing a first portion of the plurality of MD updates from the MD log to the first bucket area of the first tablet; and writing a second portion of the plurality of MD updates from the MD log to the first extension area of the first tablet, wherein each MD update of the second portion overflows a corresponding one of the first plurality of buckets associated with one of the plurality of MD pages updated by said each MD update, wherein the first non-volatile storage includes a first plurality of tablets, wherein the first plurality of tablets includes the first tablet, wherein each of the first plurality of tablets includes a fixed size bucket area which has a same first size in each of the first plurality of tablets and which has a same first number of buckets in each of the first plurality of tablets, wherein each bucket of the same first number of buckets in each of the first plurality of tablets is said predetermined bucket size, wherein each of the first plurality of tablets includes an extension area storing MD updates which overflow one or more buckets of the fixed size bucket area of said each tablet; receiving a read request to read a first MD page of the first plurality of MD pages; determining that the first MD page is not stored in a cache; and responsive to determining that the first MD page is not stored in the cache, performing read miss processing including constructing an updated version of the first MD page, wherein said constructing an updated version of the first MD page includes: reading a stored version of the first MD page from a MD page store; and applying MD updates to the stored version of the first MD page and generating the updated version of the first MD page, wherein MD updates applied to the stored version of the first MD page include first MD updates to the first MD page and second MD updates to the first MD page, wherein the first MD updates are included in corresponding buckets and extension areas of the first plurality of tablets, wherein the second MD updates to the first MD page are included in corresponding buckets of an active MD log stored in volatile memory and corresponding buckets of an inactive MD log stored in volatile memory; and returning the updated version of the first MD page in response to the read request. 2. The computer-implemented method of claim 1 , wherein said first destaging phase includes: determining, for a first bucket of the first plurality of buckets of the first tablet, that the first bucket is full and includes MD updates for a corresponding first MD page of the plurality of MD pages; and responsive to determining the first bucket is full, storing one or more of the plurality of MD updates which update the corresponding first MD page in the first extension area of the first tablet. 3. The computer-implemented method of claim 2 , wherein each of the first plurality of buckets of the first tablet includes MD updates for a single corresponding one of the first plurality of MD pages. 4. The computer-implemented method of claim 1 , wherein the first tablet includes the first extension area occupying a first amount of storage, and wherein a second tablet of the first plurality of tablets includes a second extension area occupying a second amount of storage that is different from the first amount of storage. 5. The computer-implemented method of claim 4 , wherein the second amount is zero denoting that the second extension area occupies no storage and indicating there are no MD updates stored in the second extension area and no MD updates which overflow buckets of a second bucket area of the second tablet. 6. The computer-implemented method of claim 1 , further comprising: performing a second destaging phase that destages the first plurality of tablets from the first non-volatile storage to a MD page store stored on second non-volatile storage. 7. The computer-implemented method of claim 6 , wherein a first bucket of each of the first plurality of tablets includes MD updates for a first corresponding MD page, and wherein the second destaging phase includes: aggregating first MD updates for the first corresponding MD page into a first working set of MD updates for the first corresponding MD page, wherein said first working set includes MD updates for the first corresponding MD page from the first bucket of each of the first plurality of tablets, and wherein said first working set includes MD updates for the first corresponding MD page from one or more extension areas of one or more of the first plurality of tablets; reading an existing copy of the first corresponding MD page from the MD page store; generating a first updated MD page by applying the first working set of MD updates to the existing copy of the first corresponding MD page; and storing the first updated MD page in the MD page. 8. The computer-implemented method of claim 7 , wherein a superblock includes tablets information describing the first plurality of tablets, wherein the tablets information includes first information indicating, for each of the first plurality of tablets, any one or more of: a starting position, an offset, and a location in the first non-volatile storage of where said each tablet is stored in the first non-volatile storage. 9. A system comprising: one or more processors; and one or more memories comprising code stored thereon that, when executed, performs a method of comprising: receiving a plurality of metadata (MD) updates for a plurality of MD pages; recording the plurality of MD updates for the plurality of MD pages in a MD log; and performing a first destaging phase that writes the plurality of MD updates for the plurality of MD pages from the MD log to a first tablet stored on first non-volatile storage, wherein the first tablet includes a first bucket area and a first extension area, wherein the first bucket area includes a first plurality of buckets each a predetermined bucket size, and wherein said first destaging phase further includes: writing a first portion of the plurality of MD updates from the MD log to the first bucket area of the first tablet; and writing a second portion of the plurality of MD updates from the MD log to the first extension area of the first tablet, wherein each MD update of the second portion overflows a corresponding one of the first plurality of buckets associated with one of the plurality of MD pages updated by said each MD update, wherein the first non-volatile storage includes a first plurality of tablets, wherein the first plurality of tablets includes the first tablet, wherein each of the first plurality of tablets includes a fixed size bucket area which has a same first size in each of the first plurality of tablets and which has a same first number of buckets in each of the first plurality of tablets, wherein each bucket of the same first number of buckets in each of the first plurality of tablets is said predetermined bucket size, wherein each of the first plurality of tablets includes an extension area storing MD updates which overflow one or more buckets of the fixed size bucket area of said each ta
in relation to data integrity, e.g. data losses, bit errors · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Management of blocks · CPC title
Management of space entities, e.g. partitions, extents, pools · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.