Data recovery method, data recovery system, and computer program product

US10860481B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10860481-B2
Application numberUS-201916249166-A
CountryUS
Kind codeB2
Filing dateJan 16, 2019
Priority dateJan 18, 2018
Publication dateDec 8, 2020
Grant dateDec 8, 2020

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.

Techniques perform data recovery. The techniques involve: in response to receiving to-be-written data at a first cache module, storing metadata in the data into a first non-volatile cache of the first cache module. The techniques further involve storing user data in the data into a first volatile cache of the first cache module. The techniques further involve sending the metadata and the user data to a second cache module for performing data recovery on the user data. Accordingly, a larger and better guaranteed data storage space may be provided to a cache data backup/recovery system without a need to increase the battery supply capacity and even without a battery.

First claim

Opening claim text (preview).

We claim: 1. A data recovery method, comprising: in response to receiving to-be-written data at a first cache module, storing metadata in the data into a first non-volatile cache of the first cache module; storing user data in the data into a first volatile cache of the first cache module; and sending the metadata and the user data to a second cache module for performing data recovery on the user data. 2. The method according to claim 1 , wherein sending the metadata and the user data to the second cache module comprises: sending the metadata to the second cache module; receiving from the second cache module a message indicating whether the metadata is successfully stored or not; and in response to the message indicating that the metadata is successfully stored, sending the user data to the second cache module. 3. The method according to claim 1 , wherein storing the user data into the first volatile cache comprises: determining whether an allocated cache page for the user data is present in the first cache module or not; in response to determining that the allocated cache page is absent from the first cache module, allocating a volatile cache page in the first volatile cache; and storing the user data into the allocated volatile cache page. 4. The method according to claim 3 , further comprising: sending to the second cache module a message indicating that the allocated cache page for the user data is absent from the first cache module. 5. The method according to claim 1 , wherein storing the user data into the first volatile cache comprises: determining whether an allocated cache page for the user data is present in the first cache module or not; in response to determining that the allocated cache page is present in the first cache module, determining whether the allocated cache page is a clean page or not; and in response to determining the allocated cache page is the clean page, storing the user data into the allocated cache page. 6. The method according to claim 1 , wherein storing user data in the first volatile cache comprises: determining whether an allocated cache page for the user data is present in the first cache module or not; in response to determining that the allocated cache page is present in the first cache module, determining whether the allocated cache page is a clean page or not; in response to determining that the allocated cache page is not the clean page, determining whether the allocated cache page is in the first volatile cache or not; in response to determining that the allocated cache page is present in the first volatile cache, establishing a virtual volatile cache page in the first volatile cache; and storing the user data into the allocated cache page via the virtual volatile cache page. 7. The method according to claim 1 , wherein storing user data in the first volatile cache comprises: determining whether an allocated cache page for the user data is present in the first cache module or not; in response to determining that the allocated cache page is present in the first cache module, determining whether the allocated cache page is a clean page or not; in response to determining that the allocated cache page is not the clean page, determining whether the allocated cache page is in the first volatile cache or not; in response to determining that the allocated cache page is absent from the first volatile cache, allocating a volatile cache page in the first volatile cache; and storing the user data in the allocated volatile cache page. 8. The method according to claim 7 , further comprising: sending to the second cache module a message indicating that the allocated cache page is absent from the first volatile cache. 9. The method according to claim 7 , further comprising: in response to determining that the allocated cache page is absent from the first volatile cache, invalidating the allocated cache page. 10. The method according to claim 1 , further comprising: receiving from the second cache module a message indicating whether the user data is successfully stored or not. 11. The method according to claim 1 , further comprising: in response to the user data being lost, receiving from the second cache module the metadata and the user data that are stored in a second non-volatile cache of the second cache module; and recovering the lost user data from the second non-volatile cache using the metadata and the user data. 12. The method according to claim 1 , further comprising: in response to the second cache module being unavailable, storing the user data into the first non-volatile cache. 13. The method according to claim 1 , wherein storing the metadata in the data into the first non-volatile cache includes: storing the metadata only in the first non-volatile cache of the first cache module and not in the first volatile cache of the first cache module; and wherein storing the user data in the data into the first volatile cache includes: storing the metadata only in the first volatile cache of the first cache module and not in the first non-volatile cache of the first cache module. 14. A data recovery method, comprising: at a second cache module, receiving metadata and user data in data from a first cache module; storing the metadata and the user data into a second non-volatile cache of the second cache module; receiving from the first cache module a message indicating that an allocated cache page for the user data is absent from the first cache module; and one of: (i) in response to receiving the message, allocating a non-volatile cache page in the second non-volatile cache, the metadata and the user data being stored into the allocated non-volatile cache page, and (ii) in response to receiving the message, invalidating a volatile cache page in the second volatile cache that corresponds to the allocated cache page. 15. The method according to claim 14 , wherein storing the metadata and the user data into the second non-volatile cache comprises: storing the metadata into the second non-volatile cache; sending to the first cache module an indication that the metadata is successfully stored; and in response to receiving the user data from the first cache module, storing the user data into the second non-volatile cache. 16. The method according to claim 14 , further comprising: sending to the first cache module an indication that the user data is successfully stored. 17. A data recovery system, comprising: a first cache module; a second cache module; and at least one processing unit, configured to: in response to receiving to-be-written data at the first cache module, store metadata in the data into a first non-volatile cache of the first cache module, store user data in the data into a first volatile cache of the first cache module, and send the metadata and the user data to the second cache module for performing data recovery on the user data. 18. The data recovery system according to claim 17 , wherein sending the metadata and the user data to the second cache module comprises: sending the metadata to the second cache module; receiving from the second cache module a message indicating whether the metadata are successfully stored or not; and in response to the message indicating that the metadata is successfully stored, sending the user data to the second cache module. 19. The data recovery system according to claim 17 , wherein storing the user data into the first volatile cache comprises: determining whether an alloc

Assignees

Inventors

Classifications

  • G06F12/128Primary

    adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel · CPC title

  • Configuration or reconfiguration of storage systems · CPC title

  • Performance improvement · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • Reliability improvement, data loss prevention, degraded operation etc · 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 US10860481B2 cover?
Techniques perform data recovery. The techniques involve: in response to receiving to-be-written data at a first cache module, storing metadata in the data into a first non-volatile cache of the first cache module. The techniques further involve storing user data in the data into a first volatile cache of the first cache module. The techniques further involve sending the metadata and the user d…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/128. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 08 2020 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).