Journaled Tables In Database Systems
US-2020364200-A1 · Nov 19, 2020 · US
US11269737B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11269737-B2 |
| Application number | US-201916572530-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 16, 2019 |
| Priority date | Sep 16, 2019 |
| Publication date | Mar 8, 2022 |
| Grant date | Mar 8, 2022 |
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.
The present disclosure relates to systems, methods, and computer-readable media for generating and updating a recovery map that includes information that enables a computing device to recover a current state of memory. For example, systems disclosed herein may iteratively update segments of a memory snapshot based on a recent state of memory corresponding to discrete portions of a memory system. In addition, systems disclosed herein may discard outdated segments of the memory snapshot in addition to outdated journal updates at incremental checkpoints that facilitate a gradual update process that may significantly reduce recovery time upon experiencing an untimely power loss event. The systems described herein provide additional processing flexibility, reduce utilization of processing resources, and reduce media wear while accomplishing one or more benefits associated with efficient recovery of a current state of memory.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: identifying a recovery map comprising a memory snapshot that includes a representation of a memory state for a memory system at a first time associated with when the memory snapshot was generated, the memory snapshot including a plurality of portions; generating journal updates associated with changes to the memory state between the first time and a second time after the memory snapshot was generated and adding the journal updates to the recovery map; based on a number of the journal updates generated between the first time and the second time, generating an updated version of the memory snapshot, wherein generating the updated version of the memory snapshot comprises: generating an updated first portion of the memory snapshot including a representation of a memory state for a first portion of the memory system at the second time; and replacing a first portion from the plurality of portions of the memory snapshot associated with the first portion of the memory system with the updated first portion of the memory snapshot; generating additional journal updates associated with changes to the memory state between the second time and a third time and adding the additional journal updates to the recovery map; and generating an updated second version of the memory snapshot, wherein generating the second updated version of the memory snapshot includes: generating an updated second portion of the memory snapshot including a representation of a memory state for the second portion of the memory system at the third time; and replacing a second portion of the memory snapshot associated with the second portion of the memory system with the updated second portion of the memory snapshot. 2. The method of claim 1 , further comprising discarding any outdated journal updates from the recovery map. 3. The method of claim 2 , wherein discarding any outdated journal updates from the recovery map comprises: determining a time associated with generation of the first portion of the memory snapshot; and discarding one or more journal updates associated with changes to the memory state for the memory system based on timestamps of the one or more journal updates that pre-date the time associated with generation of the first portion of the memory snapshot. 4. The method of claim 1 , wherein the first portion of the memory system includes a first physical region of memory hardware from the memory system comprising a subset of memory locations on the memory system, and wherein the first portion of the snapshot comprises state data for logical block addresses (LBAs) corresponding to the subset of memory locations on the memory system. 5. The method of claim 1 , wherein the first portion of the memory snapshot and the second portion of the memory snapshot are a complete representation of the memory state for times associated with generation of the first portion of the memory snapshot and the second portion of the memory snapshot, and wherein generating the second updated portion of the memory snapshot further comprises discarding any journal updates from the recovery map having associated timestamps that pre-date the first time associated with when the memory snapshot was generated. 6. The method of claim 1 , wherein generating the updated version of the memory snapshot comprises initiating generation of the updated version of the memory snapshot in response to detecting a threshold number of writes to the memory system, and wherein a duration between the first time and the second time is based on a duration of time in which the threshold number of writes to the memory system are detected. 7. The method of claim 1 , further comprising: detecting a power loss event; and recovering a current state of the memory system at a time of the power loss event based on the updated version of the memory snapshot, the updated second version of the memory snapshot, and the journal updates from the recovery map. 8. The method of claim 1 , wherein the memory system comprises volatile storage media of a computing device, and further comprising storing the recovery map on non-volatile storage media of the computing device. 9. The method of claim 8 , wherein the volatile storage media comprises dynamic random-access memory (DRAM) and the non-volatile storage media comprises one or more solid state drives (SSDs). 10. The method of claim 8 , wherein the memory system comprises dynamic random-access memory (DRAM) on a computing device, and further comprising storing the recovery map on one or more solid state drives (SSDs) of the computing device. 11. A method, comprising: identifying a recovery map comprising a snapshot stream that includes a plurality of snapshot segments, the plurality of snapshot segments including representations of a plurality of portions of a memory state for a memory system at times associated with when the plurality of snapshot segments were generated; generating journal updates associated with changes to the memory state for the memory system and adding the journal updates to the recovery map; and iteratively updating the recovery map at timing checkpoints of the plurality of snapshot segments to generate an updated plurality of snapshot segments of the snapshot stream, wherein iteratively updating the recovery map comprises: generating, at a first time, a first new snapshot segment for a first portion of the memory state corresponding to a first recent snapshot segment from the snapshot stream associated with the first portion of the memory state; replacing the first least recent snapshot segment with the first new snapshot segment; generating, at a second time, a second new snapshot segment for a second portion of the memory state corresponding to a second recent snapshot segment from the snapshot stream associated with the second portion of the memory state; and replacing the second recent snapshot segment with the second new snapshot segment. 12. The method of claim 11 , wherein iteratively updating the recovery map further comprises discarding any outdated journal updates from the recovery map based on timestamps associated with the outdated journal updates relative to a least recent timing checkpoint of the plurality of snapshot segments. 13. The method of claim 11 , wherein the plurality of snapshot segments include state data for logical block addresses (LBAs) to subsets of memory locations on the memory system as captured at corresponding timing checkpoints associated with a plurality of times when each of the snapshot segments of the plurality of snapshot segments were captured. 14. The method of claim 11 , wherein the timing checkpoints comprise regular intervals at which iterative updates of the recovery map are initiated, and wherein a duration of time between the timing checkpoints and a number of portions of the plurality of portions of the memory state are based on a quantity of processing resources of a computing device available for maintaining the snapshot stream. 15. The method of claim 11 , further comprising: generating additional journal updates associated with additional changes to the memory state for the memory system and adding the additional journal updates to the recovery map; initiating generation of an additional new snapshot segment for an additional portion of the memory state corresponding to a least recent snapshot of the updated plurality of snapshot segments; detecting a power loss event prior to finishing generation of the additional new snapshot segment; and recovering a current state of the memory system at a time of the power loss e
Using snapshots, i.e. a logical point-in-time copy of the data · CPC title
in block erasable memory, e.g. flash memory · CPC title
involving logging of persistent data for recovery · CPC title
Backup restoration techniques · CPC title
in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.