Zone storage—quickly returning to a state of consistency following an unexpected event
First Claim
1. A method of storing data comprising:
- writing error encoded slice content data to a volatile memory;
flushing the error encoded slice content data to a bin in a non-volatile memory after determining the error encoded slice content data was completely written to the volatile memory, wherein the bin is associated with a group of physical memory blocks in the non-volatile memory;
discovering a recoverable inconsistency in the bin, where the bin contains one or more of the encoded slice content data that is not referenced by either a metadata catalog or a metadata journal;
initiating a recovery process to recover missing metadata by performing a scan of metadata for a safe point marker, wherein the discovering a recoverable inconsistency in the bin occurs from the safe point marker to a write pointer or last append point of the bin;
writing a first missing metadata entry including missing metadata corresponding to the error encoded slice content data, after flushing the error encoded data slice content data to the bin, wherein the missing metadata is determined by recognition of bin entries in bin files that are not in the metadata journal including pointers to the bins or not in the metadata catalog, including an encoded slice name and size information; and
writing a second missing metadata entry including the missing metadata corresponding to the bin after flushing the error encoded slice content data to the bin.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and Methods for data storage in a distributed storage network are disclosed. Unexpected errors can adversely affect consistency of both the content of a write (including the slice data), and the synchronicity between the written slices and metadata structures. To maintain consistency between these data structures, a sequencing of the order of writes and flushes to the memory devices for the different data structures may be enforced as follows: First: Slice content data is first written to the volatile memory (e.g. a cache memory) of a DS unit; Second: the Slice content data stored in volatile memory is “flushed” to a non-volatile bin (which bin is associated with a group of physical memory blocks in non-volatile memory); Third: after the flush of the slice content data to the bin (i.e. data is durable on the media device): metadata relating to the data is written.
-
Citations
17 Claims
-
1. A method of storing data comprising:
-
writing error encoded slice content data to a volatile memory; flushing the error encoded slice content data to a bin in a non-volatile memory after determining the error encoded slice content data was completely written to the volatile memory, wherein the bin is associated with a group of physical memory blocks in the non-volatile memory; discovering a recoverable inconsistency in the bin, where the bin contains one or more of the encoded slice content data that is not referenced by either a metadata catalog or a metadata journal; initiating a recovery process to recover missing metadata by performing a scan of metadata for a safe point marker, wherein the discovering a recoverable inconsistency in the bin occurs from the safe point marker to a write pointer or last append point of the bin; writing a first missing metadata entry including missing metadata corresponding to the error encoded slice content data, after flushing the error encoded data slice content data to the bin, wherein the missing metadata is determined by recognition of bin entries in bin files that are not in the metadata journal including pointers to the bins or not in the metadata catalog, including an encoded slice name and size information; and writing a second missing metadata entry including the missing metadata corresponding to the bin after flushing the error encoded slice content data to the bin. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A dispersed storage unit for use in a dispersed storage network, the dispersed storage unit comprising:
-
a communications interface; a volatile memory; a non-volatile memory; and a computer processor; wherein the non-volatile memory includes instructions for causing the computer processor to; write error encoded slice content data to the volatile memory; flush the error encoded slice content data to a bin in the non-volatile memory after a determination that the error encoded slice content data was completely written to the volatile memory, wherein the bin is associated with a group of physical memory blocks in the non-volatile memory; discover a recoverable inconsistency in the bin, where the bin contains one or more of the slice content data that is not referenced by either a metadata catalog or a metadata journal; initiate a recovery process to recover missing metadata by performing a scan of metadata for a safe point marker, wherein the discover a recoverable inconsistency in the bin occurs from the safe point marker to a write pointer or last append point of the bin; write a first missing metadata entry including missing metadata corresponding to the error encoded slice content data after the error encoded slice content data has been flushed to the bin, wherein the missing metadata is determined by recognition of bin entries in bin files that are not in the metadata journal including pointers to the bins or not in the metadata catalog, including an encoded slice name and size information; and write a second missing metadata entry including the missing metadata corresponding to the bin after the error encoded slice content data has been flushed to the bin. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A dispersed storage network comprising:
-
a plurality of dispersed storage units; a dispersed storage processing unit wherein a first dispersed storage unit of the plurality of dispersed storage units includes; a volatile memory; a non-volatile memory; and a computer processor; wherein the non-volatile memory includes instructions for causing the computer processor to; write error encoded slice content data to the volatile memory; flush the error encoded slice content data to a bin in the non-volatile memory after a determination that the error encoded slice content data was completely written to the volatile memory, wherein the bin is associated with a group of physical memory blocks in the non-volatile memory; discover a recoverable inconsistency in the bin, where the bin contains one or more of the slice content data that is not referenced by either a metadata catalog or a metadata journal; initiate a recovery process to recover missing metadata by performing a scan of metadata for a safe point marker, wherein the discover a recoverable inconsistency in the bin occurs from the safe point marker to a write pointer or last append point of the bin; write a first missing metadata entry including missing metadata corresponding to the error encoded slice content data after the error encoded slice content data has been flushed to the bin, wherein the missing metadata is determined by recognition of bin entries in bin files that are not in the metadata journal including pointers to the bins or not in the metadata catalog, including an encoded slice name and size information; and write a second missing metadata entry including missing metadata corresponding to the bin after the error encoded slice content data has been flushed to the bin. - View Dependent Claims (17)
-
Specification