Metadata journaling with error correction redundancy
First Claim
Patent Images
1. A method comprising:
- storing user data in a memory;
maintaining metadata in the memory associated with the stored user data, the metadata arranged as a first sequence of snapshots of the metadata at different points in time during the operation of the memory and a second sequence of intervening journals which reflect updates to the metadata from one snapshot to the next, each of the intervening journals in the second sequence reflecting the updates to a different one of the snapshots in the first sequence, the first sequence comprising at least two copies of three most recent successive snapshots, the second sequence comprising at least two copies of three most recent successive journals and a virtual copy of the three most recent successive journals distributed and protected against an error condition using an error detection code (EDC); and
recovering requested metadata from the memory using a selected snapshot in the first sequence and first and second intervening journals in the second sequence responsive to an error condition associated with a more recent snapshot in the first sequence, the second intervening journal in the second sequence occurring at a point in time after generation of the more recent snapshot in the first sequence.
1 Assignment
0 Petitions
Accused Products
Abstract
Method and apparatus for managing a memory, such as but not limited to a flash memory. In accordance with some embodiments, user data and associated metadata are stored in a memory. The metadata are arranged as a first sequence of snapshots of the metadata at different points in time during the operation of the memory, and a second sequence of intervening journals which reflect updates to the metadata from one snapshot to the next. Requested portions of the metadata are recovered from the memory using a selected snapshot in the first sequence and first and second journals in the second sequence.
-
Citations
20 Claims
-
1. A method comprising:
-
storing user data in a memory; maintaining metadata in the memory associated with the stored user data, the metadata arranged as a first sequence of snapshots of the metadata at different points in time during the operation of the memory and a second sequence of intervening journals which reflect updates to the metadata from one snapshot to the next, each of the intervening journals in the second sequence reflecting the updates to a different one of the snapshots in the first sequence, the first sequence comprising at least two copies of three most recent successive snapshots, the second sequence comprising at least two copies of three most recent successive journals and a virtual copy of the three most recent successive journals distributed and protected against an error condition using an error detection code (EDC); and recovering requested metadata from the memory using a selected snapshot in the first sequence and first and second intervening journals in the second sequence responsive to an error condition associated with a more recent snapshot in the first sequence, the second intervening journal in the second sequence occurring at a point in time after generation of the more recent snapshot in the first sequence. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus comprising:
-
a memory arranged into a plurality of garbage collection units (GCUs) each separately allocated and erased as a unit, the memory storing user data in the form of addressable blocks and metadata that provide a logical to physical address correspondence for the user data, the metadata arranged as a first sequence of snapshots of the metadata at different points in time during the operation of the memory and a second sequence of intervening journals of updates to the metadata from one snapshot to the next, each of the journals associated with a different one of the snapshots in the first sequence, the first sequence comprising at least two copies of three most recent successive snapshots, the second sequence comprising at least two copies of three most recent successive journals and a virtual copy of the three most recent successive journals distributed across multiple locations in the memory and protected against an error condition using error detection and correction (EDC) codes; and a metadata recovery engine adapted to recover selected metadata from the memory using a selected snapshot in the first sequence and first and second intervening journals in the second sequence, the selected snapshot comprising an older snapshot in the first sequence indicative of a state of the metadata at an earlier first time, the first sequence further comprising a newer snapshot indicative of a different state of the metadata at a later second time. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification