Data placement and allocation using virtual contiguity
AssigneeInternational Business Machines Corporation
InventorsRandal Chilton Burns, Darrell D. E. Long, Robert Michael Rees
Life of this patent
Estimating the term…
Abstract
A data storage system randomly determines a start offset at which to write objects to a storage medium. For updated blocks of the object, e.g., for blocks written during copy-on-write as part of a point-in-time snapshot, the updated block is written in the region of the original file or as close thereto as possible to achieve “virtual contiguity”. Subsequent reads of the object read entire region containing both the object and, potentially, “chaff” data other than the object. The “chaff” data is discarded by the I/O system or file system using, e.g., a bit mask, subsequent to the read.
Claims21
A computer system, comprising:
- a data storage system including at least one storage medium and at least one processor having logic for undertaking method acts comprising:
- receiving a data object for storage;
- randomly determining an original location on the storage medium to which to write the object;
- for an updated block of the object, writing the block in the original location;
- reading an object from the medium by reading an entire region containing both the object and “chaff” data other than the object;
- and
- discarding the “chaff” data subsequent to the act of reading.
A computer program device comprising:
- a computer program storage device readable by a processor and
- a program on the program storage device and including instructions executable by the processor for allocating space for plural data objects in a data storage system, the program comprising:
- computer readable code means for randomly determining, for each object, a start offset on a storage medium associated with the storage system;
- and
- computer readable code means for writing each object starting at its respective randomly determined start offset;
- and
- computer readable code means for writing an updated block of an object as close to an original version as possible.
A computer-implemented method for transferring data objects to and from a storage medium, comprising:
- writing at least first portions of a first data object to a first region of a data storage medium, at least a second portion of at least a second object being physically juxtaposed on the medium between at least two first portions;
- reading the first and second portions together;
- and
- subsequent to the reading act, discarding the second portion.
Dependencies are inferred from the claim text.