Method, apparatus and computer program product for use in managing multi-cache data storage systems
US-10067877-B1 · Sep 4, 2018 · US
US10860481B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10860481-B2 |
| Application number | US-201916249166-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 16, 2019 |
| Priority date | Jan 18, 2018 |
| Publication date | Dec 8, 2020 |
| Grant date | Dec 8, 2020 |
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.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.