Log-based data storage on sequentially written media
First Claim
1. A computer-implemented method for storing data, comprising:
- under the control of one or more computer systems configured with executable instructions,provisioning a hardware storage device by at least storing an initialization record, the initialization record that at least identifies at least a time at which data are first stored upon the hardware storage device, the hardware storage device having a media surface upon which data are to be sequentially stored;
at a time after receiving a data write request, at least;
storing, upon the media surface, a first record that includes at least;
a data write identifier that identifies a position of the data write request within a sequence;
information that includes an intended size, as stored upon the media surface, of data associated with the data write request; and
information that indicates a location of a third record upon the media surface;
storing, sequentially adjacent to and sequentially after the first record, upon the media surface, a second record that includes at least one or more data pages that each include at least;
one or more subsets of the data associated with the write request;
information that enables verification of integrity of the one or more subsets of the associated data; and
information identifying at least an association between the first record and the second record; and
storing, sequentially adjacent to and sequentially after the second record, upon the media surface, the third record, the third record including at least;
information about which of the data pages were successfully stored in the second record; and
information that enables location of at least the successfully stored subsets of data within the second record;
in response to a read request for a subset of the data, at least;
locating the third record by at least analyzing the first record;
processing the third record to determine the location of at least an associated subset of the stored data subsets in the second record; and
retrieving the associated subset from the determined location.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for implementing a log-based storage scheme upon data storage devices are described herein. A data storage device is initialized by writing an identifying record. For each portion of data to be written to the drive, a first record including information regarding the anticipated nature of the portion of data is written prior to the data. The data is then written as a second record that includes at least the raw data as well as integrity verification information. A third record is stored following the second record, and includes an accounting and/or index of the data successfully written in the second record. On sequentially written devices, the information in the first stored record may be used to locate the third record, which in turn may be used to record data in the second record as well as the location of a first record of another portion of data.
-
Citations
24 Claims
-
1. A computer-implemented method for storing data, comprising:
under the control of one or more computer systems configured with executable instructions, provisioning a hardware storage device by at least storing an initialization record, the initialization record that at least identifies at least a time at which data are first stored upon the hardware storage device, the hardware storage device having a media surface upon which data are to be sequentially stored; at a time after receiving a data write request, at least; storing, upon the media surface, a first record that includes at least; a data write identifier that identifies a position of the data write request within a sequence; information that includes an intended size, as stored upon the media surface, of data associated with the data write request; and information that indicates a location of a third record upon the media surface; storing, sequentially adjacent to and sequentially after the first record, upon the media surface, a second record that includes at least one or more data pages that each include at least;
one or more subsets of the data associated with the write request;
information that enables verification of integrity of the one or more subsets of the associated data; and
information identifying at least an association between the first record and the second record; andstoring, sequentially adjacent to and sequentially after the second record, upon the media surface, the third record, the third record including at least;
information about which of the data pages were successfully stored in the second record; and
information that enables location of at least the successfully stored subsets of data within the second record;in response to a read request for a subset of the data, at least; locating the third record by at least analyzing the first record; processing the third record to determine the location of at least an associated subset of the stored data subsets in the second record; and retrieving the associated subset from the determined location. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A computer-implemented method for storing data, comprising:
under the control of one or more computer systems configured with executable instructions, initializing, by at least storing an initial identification record, a data storage device upon which data are sequentially stored; storing, upon the data storage device, a first record that includes information about data that are intended to be written to the data storage device, information that indicates a location of a third record upon the data storage device, and at least a portion of the initial identification record; storing, sequentially adjacent to and sequentially after the first record upon the data storage device, a second record that includes at least the data intended to be written; storing, sequentially adjacent to and sequentially after the second record upon the data storage device, the third record that includes at least information that enables location of at least a subset of the written data that was successfully written; and determining a location of the third record by at least analyzing the first record. - View Dependent Claims (9, 10, 11, 12)
-
13. A data storage system, comprising:
-
one or more processors; and memory, including instructions executable by the one or more processors to cause the data storage system to at least; requisition a data storage medium upon which data are sequentially stored by at least identifying the data storage medium as containing data written after a given generation of the data; record, in a first record, at least information about data intended to be written to the data storage medium and a location of a third record; record, in a second record, and sequentially adjacent to and sequentially after the first record upon the data storage media, at least the data intended to be written to the data storage medium and integrity information associated with the recorded data; record, in the third record, sequentially adjacent to and sequentially after the second record upon the data storage media, at least a catalog that enables location of at least a subset of the data intended to be written that was successfully recorded in the second record; and determine a location of the third record by processing the information in the first record. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. One or more non-transitory computer-readable storage media having collectively stored thereon executable instructions that, when executed by one or more processors of a computing resource provider'"'"'s computer system, cause the computer system to at least:
-
initialize a second storage medium operatively connected to the computer system by at least storing, upon the second storage medium, an identity record that includes at least information relating to a write state of the second storage medium, the second storage medium, at least in part, written sequentially; recording, upon the second storage medium, a first record that contains at least information relating to a write request received by the computer system, at least a portion of the identity record, and a location of a third record on the second storage medium; recording, sequentially adjacent to and sequentially after the first record upon the second storage medium, a second record that contains at least; data associated with the write request; and verification values associated with the data and generated by the computer system; and recording, sequentially adjacent to and sequentially after the second record upon the data storage media upon the second storage medium, an index that enables location of the data recorded in the second record and, if a subset of the data was written unsuccessfully in the second record, includes information identifying unsuccessfully written data within the first record. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification