Enhanced stable disk storage
AssigneeInternational Business Machines Corporation
InventorsIsrael Gold, Julian Satran, Dafna Sheinwald
Life of this patent
Estimating the term…
Abstract
Apparatus for electronic data storage, including a non-volatile memory, adapted to receive a succession of data blocks for storage at respective locations therein. The apparatus includes a controller which is configured to convey the succession of data blocks to the non-volatile memory, while writing to the non-volatile memory, together with at least some of the data blocks, a pointer value to the location of a subsequent data block in the succession. The apparatus preferably includes services that are usually performed by higher level file systems, such as allocation and deletion of blocks. Furthermore, the apparatus facilitates stable storage operations so that block contents are maintained intact in case of a write failure.
Claims23
Apparatus for electronic data storage, comprising:
- a non-volatile memory, adapted to receive a succession of data blocks including a first data block and a second data block, subsequent to the first data block in the succession, for storage at respective locations therein;
- a controller, which is configured to convey the succession of data blocks to the non-volatile memory while writing to the non-volatile memory, together with the first data block, a pointer value to the location of the second data block;
- and
- a volatile memory which stores one or more data structures containing data indicative of one or more properties of at least some of the data blocks, at least some of which data are written by the controller to the non-volatile memory, so that the contents of the volatile memory can be regenerated from the at least some of the data in the one or more data structures that are stored in the non-volatile memory.
Apparatus for electronic data storage, comprising:
- a non-volatile memory, adapted to receive a succession of data blocks for storage at respective locations therein;
- a controller, which is configured to convey the succession of data blocks to the non-volatile memory while writing to the non-volatile memory, together with at least some of the data blocks, a pointer value to the location of a subsequent data block in the succession;
- and
- a volatile memory which stores one or more data structures containing data indicative of one or more properties of at least some of the data blocks, at least some of which data are written by the controller to the non-volatile memory, so that the contents of the volatile memory can be regenerated from the at least some of the data in the one or more data structures that are stored in the non-volatile memory, wherein the non-volatile memory comprises a disk having a disk head, and wherein the controller writes the data blocks to the disk in a series of passes of the disk head over a surface of the disk in a single direction, wherein each of the series of passes has a checkpoint-number, and wherein one of the data structures comprises a value indicative of the checkpoint-number of a current pass of the series of passes of the disk head.
Apparatus for electronic data storage, comprising:
- a non-volatile memory, adapted to receive a succession of data blocks for storage at respective locations therein;
- a controller, which is configured to convey the succession of data blocks to the non-volatile memory while writing to the non-volatile memory, together with at least some of the data blocks, a pointer value to the location of a subsequent data block in the succession;
- and
- a volatile memory which stores one or more data structures containing data indicative of one or more properties of at least some of the data blocks, at least some of which data are written by the controller to the non-volatile memory, so that the contents of the volatile memory can be regenerated from the at least some of the data in the one or more data structures that are stored in the non-volatile memory, wherein the non-volatile memory comprises a disk having a disk head, and wherein the controller writes the data blocks to the disk in a series of passes of the disk head over a surface of the disk in a single direction, wherein the controller writes the at least some of the data in the one or more data structures to the non-volatile memory at the conclusion of one or more of the passes of the disk head.
Apparatus for electronic data storage, comprising:
- a non-volatile memory, adapted to receive a succession of data blocks including a first data block and a second data block, subsequent to the first data block in the succession, for storage at respective locations therein;
- and
- a controller, which is configured to convey the succession of data blocks to the non-volatile memory while writing to the non-volatile memory, together with the first data block, a pointer value to the location of the second data block, wherein the controller writes a type tag indicative of a use of each of the data blocks to each respective data block.
Apparatus for electronic data storage, comprising:
- a non-volatile memory, adapted to receive a succession of data blocks including a first data block and a second data block, subsequent to the first data block in the succession, for storage at respective locations therein;
- a controller, which is configured to convey the succession of data blocks to the non-volatile memory while writing to the non-volatile memory, together with the first data block, a pointer value to the location of the second data block;
- and
- a host server which manages the non-volatile memory, wherein the host server is able to recover contents of a volatile memory from data written by the controller to the non-volatile memory.
Apparatus for electronic data storage, comprising:
- a non-volatile memory, adapted to receive a succession of data blocks including a first data block and a second data block, subsequent to the first data block in the succession, for storage at respective locations therein;
- and
- a controller, which is configured to convey the succession of data blocks to the non-volatile memory while writing to the non-volatile memory, together with the first data block, a pointer value to the location of the second data block, wherein the non-volatile memory comprises a portion to which the controller does not write the succession of data blocks with the pointer value.
A method for electronic data storage, comprising:
- providing a succession of data blocks for storage at respective locations in a non-volatile memory, the succession including a first data block and a second data block, subsequent to the first data block in the succession;
- determining for at least the first data block a pointer value to a location to which the second data block is to be written to in a subsequent storage operation;
- and
- storing the pointer value with the first data block in the non-volatile memory;
- and comprising storing in a volatile memory one or more data structures containing data indicative of one or more properties of at least some of the data blocks, and writing at least some of the data that are in the data structures to the non-volatile memory, so that the contents of the volatile memory can be regenerated from the at least some of the data in the one or more data structures that are stored in the non-volatile memory.
A method for electronic data storage, comprising:
- providing a succession of data blocks for storage at respective locations in a non-volatile memory;
- determining for each of at least some of the data blocks in the succession a pointer value to a data block to be written to in a subsequent storage operation;
- storing the succession of the data blocks and the pointer values in the non-volatile memory;
- and
- storing in a volatile memory one or more data structures containing data indicative of one or more properties of at least some of the data blocks, and writing at least some of the data that are in the data structures to the non-volatile memory, so that the contents of the volatile memory can be regenerated from the at least some of the data in the one or more data structures that are stored in the non-volatile memory, and comprising performing a checkpoint operation comprising the steps of:
- locking the one or more data structures;
- writing the contents of the one or more data structures to a checkpoint location in the non-volatile memory;
- and
- altering at least some of the contents of the one or more data structures responsive to writing the contents to the non-volatile memory.
Dependencies are inferred from the claim text.