摘要 |
A method of determining whether a data object is stored on a storage device such as a disk includes a write operation that partitions the data object into sub-objects according to a random sequence of control bits, by (a) assigning a first block of the data object to an initially selected sub-object, and (b) assigning successive blocks to a currently selected sub-object or to a next selected sub-object based on the value of the corresponding control bit. The sub-objects are written to distinct physical regions of the storage device so that differential read latencies are experienced depending on the pattern of block access. An object read/verify operation includes reading the blocks of the data object sequentially, recording respective latencies, constructing a result word to record latency values, and calculating a difference between the control word and the result word. |
主权项 |
1. A method of determining whether a multi-block data object is stored on a physical storage device in a storage system, the storage device exhibiting differential block access latencies depending upon physical location of data blocks in the storage device, comprising:
creating a control word having a random sequence of control bits; performing an object write operation including (1) partitioning a multi-block data object into two or more distinct multi-block sub-objects according to the random sequence of control bits by (a) assigning a first block of the data object to an initially selected one of the sub-objects, and (b) for each successive block of the data object, assigning the block to a currently selected sub-object if the respective control bit has one binary value, and otherwise assigning the block to a next selected sub-object if the respective control bit has the other binary value, and (2) writing the sub-objects to respective distinct physical regions of the storage device, the regions being sufficiently physically separated that a seek operation is required to begin accessing blocks of one region after accessing blocks of another region; and subsequently performing an object read operation including (1) reading the blocks of the data object sequentially and recording respective read latencies, (2) constructing a result word having a sequence of result bits, a given result bit being assigned one binary value if the respective recorded read latency is less than a predetermined latency threshold and otherwise being assigned the other binary value if the respective recorded read latency is greater than the latency threshold, and (3) calculating a difference between the control word and the result word and evaluating whether the difference is less than a predetermined distance threshold. |