Techniques for maintaining cache coherency

US12141065B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12141065-B2
Application numberUS-202318116004-A
CountryUS
Kind codeB2
Filing dateMar 1, 2023
Priority dateMar 1, 2023
Publication dateNov 12, 2024
Grant dateNov 12, 2024

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.

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

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 US12141065B2 cover?
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 MI…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F12/0815. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 12 2024 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 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).