REDUCING WRITE TAIL LATENCY IN STORAGE SYSTEMS
First Claim
1. A method comprising:
- in response to receiving a first object to be stored, generating a first set of data units based, at least in part, on the first object;
sending each of the first set of data units with a write request to a different one of a plurality of storage devices; and
in response to determining that a minimum number of write requests have completed,identifying locations for a subset of the first set of data units which correspond to the completed write requests; and
updating an index with an identifier for the first object and the locations of the subset of data units.
1 Assignment
0 Petitions
Accused Products
Abstract
In order to reduce write tail latency, a storage system generates redundant write requests when performing a storage operation for an object. The storage operation is determined to be effectively complete when a minimum number of write requests have completed. For example, the storage system may generate twelve write requests and also generate four redundant write requests for a total of sixteen write requests. The storage system considers the object successfully stored once twelve of the sixteen writes complete successfully. To generate the redundant writes, the storage system may use replication or erasure coding. For replication, the storage system may issue a redundant write request for each of n chunks being written. For erasure coding, the storage system may use rateless codes which can generate unlimited number of parity chunks or use an n+k+k'"'"' erasure code which generates an additional k encoded chunks, in place of an n+k erasure code.
-
Citations
20 Claims
-
1. A method comprising:
-
in response to receiving a first object to be stored, generating a first set of data units based, at least in part, on the first object; sending each of the first set of data units with a write request to a different one of a plurality of storage devices; and in response to determining that a minimum number of write requests have completed, identifying locations for a subset of the first set of data units which correspond to the completed write requests; and updating an index with an identifier for the first object and the locations of the subset of data units. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory machine readable medium having stored thereon instructions for storing an object comprising machine executable code which when executed by at least one machine, causes the machine to:
-
in response to receipt of a first object to be stored, generate a first set of data units based, at least in part, on the first object; send each of the first set of data units with a write request to a different one of a plurality of storage devices; and
in response to a determination that a minimum number of write requests have completed,identify locations for a subset of the first set of data units which correspond to the completed write requests; and update an index with an identifier for the first object and the locations of the subset of data units. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computing device comprising:
-
a processor; and a machine readable medium comprising machine executable code having stored thereon instructions executable by the processor to cause the computing device to; in response to receipt of a first object to be stored, generate a first set of data units based, at least in part, on the first object; send each of the first set of data units with a write request to a different one of a plurality of storage devices; and in response to a determination that a minimum number of write requests have completed, identify locations for a subset of the first set of data units which correspond to the completed write requests; and update an index with an identifier for the first object and the locations of the subset of data units. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification