System and Method for Consistent Metadata Access Based on Local Locks Semantics in a Multi-Node Cluster
US-2022350787-A1 · Nov 3, 2022 · US
US12141065B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12141065-B2 |
| Application number | US-202318116004-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 1, 2023 |
| Priority date | Mar 1, 2023 |
| Publication date | Nov 12, 2024 |
| Grant date | Nov 12, 2024 |
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 determining, by a first node, an update to a metadata (MD) page, wherein the first node includes a first cache; sending, from the first node to a second node, a commit message including the update to the MID page; receiving, at the second node, the commit message from the first node; and storing, by the second node, an updated version of the MID page in a second cache of the second node only if the second cache of the second node includes a cached copy of the MD page, wherein the updated version of the MID page, as stored in the second cache of the second node, is constructed by applying the first update to the cached copy of the first MD page.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method comprising: determining, by a first node, a first update to a first metadata (MD) page, wherein the first node includes a first cache; sending, from the first node to a second node, a commit message including the first update to the first MD page; receiving, at the second node, the commit message from the first node; and storing, by the second node, an updated version of the first MD page in a second cache of the second node only if the second cache of the second node includes an existing cached copy of the first MD page, wherein the updated version of the first MD page, as stored in the second cache of the second node, is constructed by applying the first update to the existing cached copy of the first MD page, wherein the first node is an initiator node of a transaction including one or more updates to one or more MD pages, wherein the one or more updates includes the first update, and wherein the one or more MD pages includes the first MD page, wherein the commit message includes the one or more updates, wherein a subset of one or more update types identify types of MD updates which are not performed on a non-initiator node, and wherein the one or more updates includes a second update to a second MD page, wherein the second update has a corresponding MD update type included in the subset, wherein the second node is the non-initiator node of the transaction, and the method further comprises: determining, by the second node, that the second cache of the second node includes a copy of the second MD page and that the second update to the second MD page has a corresponding MD update type included in the subset; and responsive to determining that the second cache of the second node includes the copy of the second MD page and that the second update to the second MD page has the corresponding MD update type included in the subset, invalidating or evicting the copy of the second MD page from the second cache of the second node. 2. The computer-implemented method of claim 1 , further comprising: determining, by the second node, whether the second cache of the second node includes the existing cached copy of the first MD page; and if the second cache of the second node does not include the existing cached copy of the first MD page, not storing the updated version of the first MD page in the second cache of the second node. 3. The computer-implemented method of claim 1 , further comprising: responsive to the second node receiving the commit message from the first node, the second node persistently storing the first update to the first MD page in a persisted MD log on non-volatile storage. 4. The computer-implemented method of claim 3 , further comprising: responsive to the second node receiving the commit message from the first node, the second node storing the first update to the first MD page in an in-memory MD log. 5. The computer-implemented method of claim 4 , wherein the in-memory MD log is local to the second node and used only by the second node. 6. The computer-implemented method of claim 1 , wherein said storing is performed responsive to the second node receiving the commit message from the first node. 7. The computer-implemented method of claim 1 , further comprising: sending a reply to the commit message from the second node to the first node. 8. The computer-implemented method of claim 7 , further comprising: responsive to the first node receiving the reply from the second node, the first node storing the first update to the first MD page in an in-memory MD log. 9. The computer-implemented method of claim 8 , wherein the in-memory MD log is local to the first node and used only by the first node. 10. The computer-implemented method of claim 8 , further comprising: responsive to the first node receiving the reply from the second node, the first node storing the updated version of the first MD page in the first cache of the first node, wherein the updated version of the first MD page, as stored in the first cache of the first node, is constructed by applying the first update to another existing copy of the first MD page stored in the first cache of the first node. 11. The computer-implemented method of claim 1 , wherein each of the one or more updates is specified using a tuple identifying content of one of the one or more MD pages which is modified by said each update. 12. The computer-implemented method of claim 1 , wherein the first node, as the initiator node, receives a write I/O operation from a host, and wherein the one or more updates to the one or more MD pages is performed as part of processing to service the write I/O operation. 13. The computer-implemented method of claim 12 , wherein the write I/O operation writes first content to a target logical address of a logical volume, and wherein the one or more MD pages are included in a sequence of MD pages mapping the target logical address of the logical volume to a storage location of the first content stored at the target logical address. 14. The computer-implemented method of claim 1 , wherein the subset of one or more update types includes one update type indicating a complex MD update type. 15. The computer-implemented method of claim 1 , wherein the subset of one or more update types includes one update type denoting a dependent MD page update where one MD update to one MD page depends on content of another MD page such that the one MD update references the content of the another MD page. 16. The computer-implemented method of claim 15 , wherein the one update type denotes a MD page split operation performing in connection with a snapshot of a base storage object where the snapshot and the base storage object both include identical content prior to applying any subsequent writes to the base storage object. 17. A system comprising: one or more processors; and one or more memories comprising code stored thereon that, when executed, performs a method of comprising: determining, by a first node, a first update to a first metadata (MD) page, wherein the first node includes a first cache; sending, from the first node to a second node, a commit message including the first update to the first MD page; receiving, at the second node, the commit message from the first node; and storing, by the second node, an updated version of the first MD page in a second cache of the second node only if the second cache of the second node includes an existing cached copy of the first MD page, wherein the updated version of the first MD page, as stored in the second cache of the second node, is constructed by applying the first update to the existing cached copy of the first MD page, wherein the first node is an initiator node of a transaction including one or more updates to one or more MD pages, wherein the one or more updates includes the first update, and wherein the one or more MD pages includes the first MD page, wherein the commit message includes the one or more updates, wherein a subset of one or more update types identify types of MD updates which are not performed on a non-initiator node, and wherein the one or more updates includes a second update to a second MD page, wherein the second update has a corresponding MD update type included in the subset, wherein the second node is the non-initiator node of the transaction, and the method further comprises: determining, by the second node, that the second cache of the second node includes a copy of the second MD page and that the second update to the second MD page has a corresponding MD update type included
Caching of specific data in cache memory · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Cache consistency protocols · CPC title
Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.