主权项 |
1. A method for accessing data in a storage system, the method comprising:
writing data blocks to a first set of storage locations, the first set of storage locations spanning a plurality of storage devices and the writing comprising, for each data block:
writing multiple copies of the data block to a subset of the first set of storage locations, the subset of the first set of storage locations located on at least two of the storage devices; andrecording, in a first index, an identifier of the data block and identifiers of the subset of the first set of storage locations;recording, in a second index, identifiers of storage locations in a second set of storage locations, the second set of storage locations spanning the plurality of storage devices;processing an update request that includes an identifier of one of the data blocks to be updated and an updated data block, the processing an update request comprising writing multiple copies of the received identifier and the updated data block to a subset of the second set of storage locations, the subset of the second set of storage locations located on at least two of the storage devices and selected based on the second index; and processing a read request, the processing a read request comprising:
performing a quorum read of the second set of storage locations to retrieve the updated data blocks; andperforming a quorum read of the first index to determine storage locations in the first set of storage locations that contain data blocks to be read as part of processing the read request, the data blocks to be read excluding the updated data blocks, wherein performance of the processing of the update request is preserved by writing the received identifier and the updated data block to the second set of storage locations and the processing of the read request is preserved by utilizing the first index to locate storage locations to be read in the first set of storage locations. |