Techniques for recording metadata changes
US-2023106982-A1 · Apr 6, 2023 · US
US12386756B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12386756-B2 |
| Application number | US-202318464797-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 11, 2023 |
| Priority date | Sep 11, 2023 |
| Publication date | Aug 12, 2025 |
| Grant date | Aug 12, 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.
A method, computer program product, and computing system for receiving a metadata input/output (IO) request on a first storage node of a storage system. The metadata IO request may be partitioned into a plurality of metadata pages. The plurality of metadata pages may include a plurality of logical metadata pages and a plurality of virtual metadata pages. A family identifier may be obtained for each logical metadata page. The family identifier is a unique identifier assigned to a group of related metadata elements that share data, and is stored in a family identifier locking table. At least one of the plurality of metadata pages may be locked from access by a second storage node using the family identifier. The metadata IO request may be processed on the plurality of metadata pages by loading the at least one of the plurality of metadata pages into a memory of the first storage node.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method, executed on a computing device, comprising: receiving a metadata input/output (IO) request on a first storage node of a storage system; partitioning the metadata IO request into a plurality of metadata pages, wherein the plurality of metadata pages include a plurality of logical metadata pages and a plurality of virtual metadata pages; determining that a family identifier for each logical metadata page is known, wherein the family identifier is a unique identifier assigned to a group of related metadata elements that share data, and is stored in a family identifier locking table; locking, using the family identifier, at least one of the plurality of metadata pages from access by a second storage node, wherein locking the at least one of the plurality of metadata pages includes performing an extent lock table lookup and an extent locking using the family identifier in place of an extent identifier; and processing the metadata IO request on the plurality of metadata pages by loading the at least one of the plurality of metadata pages into a memory of the first storage node. 2. The computer-implemented method of claim 1 , wherein determining that the family identifier for each logical metadata page is known includes indicating that an associated family identifier does not exist for the plurality of virtual metadata pages. 3. The computer-implemented method of claim 1 , wherein the first and second nodes of the storage system are configured in an active/active configuration. 4. A computer program product residing on a non-transitory computer readable storage medium having a plurality of instructions stored thereon which, when executed across one or more processors, causes at least a portion of the one or more processors to perform operations comprising: receiving a metadata input/output (IO) request on a first storage node of a storage system; partitioning the metadata IO request into a plurality of metadata pages, wherein the plurality of metadata pages include a plurality of logical metadata pages and a plurality of virtual metadata pages; determining whether a family identifier for each logical metadata page exists, wherein the family identifier is a unique identifier assigned to a group of related metadata elements that share data, and is stored in a family identifier locking table; locking, using the family identifier, at least one of the plurality of metadata pages from access by a second storage node, wherein locking the at least one of the plurality of metadata pages includes performing an extent lock table lookup and an extent locking using the family identifier in place of an extent identifier when the family identifier is known; and processing the metadata IO request on the plurality of metadata pages by loading the at least one of the plurality of metadata pages into a memory of the first storage node. 5. The computer program product of claim 4 , wherein locking the at least one of the plurality of metadata pages includes performing metadata page locking by sending a lock request and processing a lock reply using an internode connection service (ICS) when the family identifier does not exist. 6. The computer program product of claim 4 , wherein locking the at least one of the plurality of metadata pages includes performing a cache lookup for the at least one of the plurality of metadata pages by logical block address (LBA) when the family identifier is unknown. 7. The computer program product of claim 6 , wherein performing the cache lookup for the metadata page by the LBA includes: determining whether the page is loaded in the memory of the first storage node, in response to determining that the page is loaded in the memory of the first storage node, obtaining the family identifier from a metadata memory structure, and in response to determining that the page is not loaded in the memory of the first storage node: reading the at least one of the plurality of metadata pages from persistent storage, and loading the at least one of the plurality of metadata pages to the memory of the first storage node. 8. The computer program product of claim 4 , wherein determining whether the family identifier for each logical metadata page exists includes indicating that an associated family identifier does not exist for the plurality of virtual metadata pages. 9. The computer program product of claim 4 , wherein the first and second nodes of the storage system are configured in an active/active configuration. 10. A computing system including one or more processors and one or more memories configured to perform operations comprising: receiving a metadata input/output (IO) request on a first storage node of a storage system; partitioning the metadata IO request into a plurality of metadata pages, wherein the plurality of metadata pages include a plurality of logical metadata pages and a plurality of virtual metadata pages; determining whether a family identifier for each logical metadata page exists, wherein the family identifier is a unique identifier assigned to a group of related metadata elements that share data, and is stored in a family identifier locking table; locking, using the family identifier, at least one of the plurality of metadata pages from access by a second storage node, wherein locking the at least one of the plurality of metadata pages includes performing an extent lock table lookup and an extent locking using the family identifier in place of an extent identifier when the family identifier is known; and processing the metadata IO request on the plurality of metadata pages by loading the at least one of the plurality of metadata pages into a memory of the first storage node. 11. The computing system of claim 10 , wherein locking the at least one of the plurality of metadata pages includes performing metadata page locking by sending a lock request and processing a lock reply using an internode connection service (ICS) when the family identifier does not exist. 12. The computing system of claim 10 , wherein locking the at least one of the plurality of metadata pages includes performing a cache lookup for the at least one of the plurality of metadata pages by logical block address (LBA) when the family identifier is unknown. 13. The computing system of claim 12 , wherein performing the cache lookup for the metadata page by the LBA includes: determining whether the page is loaded in the memory of the first storage node, in response to determining that the page is loaded in the memory of the first storage node, obtaining the family identifier from a metadata memory structure, and in response to determining that the page is not loaded in the memory of the first storage node: reading the at least one of the plurality of metadata pages from persistent storage, and loading the at least one of the plurality of metadata pages to the memory of the first storage node. 14. The computing system of claim 10 , wherein determining whether the family identifier for each logical metadata page exists includes indicating that an associated family identifier does not exist for the plurality of virtual metadata pages.
for peripheral access to main memory, e.g. direct memory access [DMA] · CPC title
Virtual address space management · CPC title
Data buffering arrangements · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Improving I/O performance · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.