Storage system and method using persistent memory

US11941253B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11941253-B2
Application numberUS-202117237560-A
CountryUS
Kind codeB2
Filing dateApr 22, 2021
Priority dateApr 22, 2021
Publication dateMar 26, 2024
Grant dateMar 26, 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.

A method, computer program product, and computing system for sensing a failure within a system within a computing device. The system may include a cache memory system and a vaulted memory comprising a random access memory (RAM) having a plurality of independent persistent areas. A primary node and secondary node may be provided. The primary node may occupy a first independent persistent area of the RAM of the vaulted memory. The secondary node may occupy a second independent persistent area of the RAM of the vaulted memory. Data within the vaulted memory may be written to a persistent media using an iterator. The data may include at least one dirty page. Writing data within the vaulted memory to the persistent media may include flushing the at least one dirty page to the persistent media.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, executed on a computing device, comprising: sensing a failure within a system within a computing device, wherein the system includes a cache memory system and a vaulted memory comprising a random access memory (RAM) having a plurality of independent persistent areas; providing a primary node and a secondary node, wherein the primary node occupies a first independent persistent area of the RAM of the vaulted memory and the secondary node occupies a second independent persistent area of the RAM of the vaulted memory; and writing data within the vaulted memory to a persistent media using an iterator, wherein the data includes at least one dirty page, and wherein writing data within the vaulted memory to the persistent media using the iterator includes: flushing the at least one dirty page to the persistent media; determining whether at least one of the plurality of components within the vaulted memory includes a bitmap; in response to determining the at least one of the plurality of components within the vaulted memory includes the bitmap, determining if the bitmap is associated with a dirty page; and iterating, in response to determining the bitmap is associated with the dirty page, the dirty page, wherein iterating the dirty page includes returning a size and an address of the bitmap to the vaulted memory. 2. The computer-implemented method of claim 1 , further comprising: receiving an initial address and size of the vaulted memory; and partitioning a plurality of components within the vaulted memory based upon, at least in part, the received initial address and size of the vaulted memory. 3. The computer-implemented method of claim 1 , wherein writing data within the vaulted memory to a persistent media using an iterator further includes: determining at least one of the plurality of components does not include a bitmap; and returning a size and address of the at least one component of the plurality of components to a beginning portion of the at least one component of the plurality of components. 4. The computer-implemented method of claim 1 , further comprising: identifying the primary node as an initiator node, wherein the initiator node receives a commit request via the primary node, wherein the commit request includes a request to commit data within the vaulted memory to the persistent media; transferring, via the primary node, a dirty bitmap and a page descriptor to a secondary node; processing, in response to transferring the dirty bitmap and page descriptor via the secondary node, the dirty bitmap and page descriptor, wherein processing the dirty bitmap and page descriptor includes removing the page descriptor, allocating a new page descriptor, logging the new page descriptor, and updating a cache of the cache memory system; sending an update, in response to processing the dirty bitmap and page descriptor, to the primary node via the secondary node, wherein the update includes the new page descriptor; and logging the update with the new page descriptor in the primary node. 5. The computer-implemented method of claim 1 , further comprising: identifying the secondary node as an initiator node, wherein the initiator node receives a commit request via the secondary node, wherein the commit request includes a request to commit data within the vaulted memory to the persistent media; transferring, via a secondary node, a dirty bitmap and a page descriptor to the primary node; processing, in response to transferring the dirty bitmap and page descriptor via the primary node, the dirty bitmap and page descriptor, wherein processing the dirty bitmap and page descriptor includes removing the page descriptor, allocating a new page descriptor, logging the new page descriptor with a data offset, wherein the data offset is an index of a remote node, and updating a cache of the cache memory system; sending an update, in response to processing the dirty bitmap and page descriptor, to the secondary node via the primary node, wherein the update includes the new page descriptor; and logging the update with the new page descriptor in the secondary node. 6. The computer-implemented method of claim 1 , wherein writing data within the vaulted memory to a persistent media using an iterator does not require use of non-volatile random access memory (NVRAM) that utilizes a data journal. 7. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising: sensing a failure within a system within a computing device, wherein the system includes a cache memory system and a vaulted memory comprising a random access memory (RAM) having a plurality of independent persistent areas; providing a primary node and a secondary node, wherein the primary node occupies a first independent persistent area of the RAM of the vaulted memory and the secondary node occupies a second independent persistent area of the RAM of the vaulted memory; and writing data within the vaulted memory to a persistent media using an iterator, wherein the data includes at least one dirty page, and wherein writing data within the vaulted memory to the persistent media using the iterator includes: flushing the at least one dirty page to the persistent media; determining whether at least one of the plurality of components within the vaulted memory includes a bitmap; in response to determining the at least one of the plurality of components within the vaulted memory includes the bitmap, determining if the bitmap is associated with a dirty page; and iterating, in response to determining the bitmap is associated with the dirty page, the dirty page, wherein iterating the dirty page includes returning a size and an address of the bitmap to the vaulted memory. 8. The computer program product of claim 7 , further comprising: receiving an initial address and size of the vaulted memory; and partitioning a plurality of components within the vaulted memory based upon, at least in part, the received initial address and size of the vaulted memory. 9. The computer program product of claim 7 , wherein writing data within the vaulted memory to a persistent media using an iterator further includes: determining at least one of the plurality of components does not include a bitmap; and returning a size and address of the at least one component of the plurality of components to a beginning portion of the at least one component of the plurality of components. 10. The computer program product of claim 7 , further comprising: identifying the primary node as an initiator node, wherein the initiator node receives a commit request via the primary node, wherein the commit request includes a request to commit data within the vaulted memory to the persistent media; transferring, via the primary node, a dirty bitmap and a page descriptor to a secondary node; processing, in response to transferring the dirty bitmap and page descriptor via the secondary node, the dirty bitmap and page descriptor, wherein processing the dirty bitmap and page descriptor includes removing the page descriptor, allocating a new page descriptor, logging the new page descriptor, and updating a cache of the cache memory system; sending an update, in response to processing the dirty bitmap and page descriptor, to the primary node via the secondary node, wherein the update includes the new page descriptor; and logging the update with the new page descriptor in the primary node. 11. The computer program product of claim 7 , further comprising: identifying the sec

Assignees

Inventors

Classifications

  • G06F3/0619Primary

    in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Monitoring storage devices or systems · CPC title

  • Single storage device · CPC title

  • using a plurality of controllers · CPC title

  • Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes · 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 US11941253B2 cover?
A method, computer program product, and computing system for sensing a failure within a system within a computing device. The system may include a cache memory system and a vaulted memory comprising a random access memory (RAM) having a plurality of independent persistent areas. A primary node and secondary node may be provided. The primary node may occupy a first independent persistent area of…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/0619. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 26 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).