Read tail latency reduction
AssigneeWestern Digital Technologies, Inc.
InventorsJames N. Malina, Robert L. Horn, Kent Anderson, James C. Alexander, Albert H. Chen
Life of this patent
Estimating the term…
Abstract
A collective latency indicator is determined that is associated with a latency in retrieving multiple erasure coded shards generated from an erasure coding on initial data. The collective latency indicator is compared to a latency limit, and a number of erasure coded shards to retrieve is adjusted based on the comparison of the collective latency indicator to the latency limit.
Claims27
A data storage system, comprising:
- a plurality of Data Storage Devices (DSDs) for storing a plurality of erasure coded shards, each DSD of the plurality of DSDs for storing one or more erasure coded shards of the plurality of erasure coded shards, wherein the plurality of erasure coded shards is generated from an erasure coding on initial data;
- and
- a controller configured to:
- set an initial number of the erasure coded shards to retrieve from the plurality of DSDs;
- determine a collective latency indicator associated with a latency in retrieving the initial number of erasure coded shards of the plurality of erasure coded shards, wherein the collective latency indicator is based on a predetermined percentage of the slower times to complete a read command for each of a plurality of particular subsets of the initial number of erasure coded shards;
- compare the collective latency indicator to a latency limit to determine whether the collective latency indicator is (a) greater than or equal to the latency limit or (b) less than the latency limit;
- and
- adjust the number of erasure coded shards to retrieve to reduce read tail latency based on whether the collective latency indicator is greater than or equal to or is less than the latency limit.
A method of reading data in a data storage system including a plurality of Data Storage Devices (DSDs) storing a plurality of erasure coded shards, each DSD of the plurality of DSDs storing one or more erasure coded shards of the plurality of erasure coded shards, wherein the plurality of erasure coded shards is generated from an erasure coding on initial data, the method comprising:
- setting an initial number of the erasure coded shards to retrieve from the plurality of DSDs;
- determining a collective latency indicator associated with a latency in retrieving the initial number of erasure coded shards of the plurality of erasure coded shards, wherein the collective latency indicator is based on a predetermined percentage of the slower times to complete a read command for each of a plurality of particular subsets of the initial number of erasure coded shards;
- comparing the collective latency indicator to a latency limit to determine whether the collective latency indicator is (a) greater than or equal to the latency limit or (b) less than the latency limit;
- and
- adjusting the number of erasure coded shards to retrieve to reduce read tail latency based on whether the collective latency indicator is greater than or equal to or is less than the latency limit.
A Data Storage Device (DSD), comprising:
- a plurality of memory portions for storing a plurality of erasure coded shards, each memory portion of the plurality of memory portions for storing one or more erasure coded shards of the plurality of erasure coded shards, wherein the plurality of erasure coded shards is generated from an erasure coding on initial data;
- and
- a controller configured to:
- set an initial number of the erasure coded shards to retrieve from the plurality of DSDs;
- determine a collective latency indicator associated with retrieving the initial number of erasure coded shards in the plurality of erasure coded shards, wherein the collective latency indicator is based on a predetermined percentage of the slower times to complete a read command for each of a plurality of particular subsets of the initial number of erasure coded shards;
- compare the collective latency indicator to a latency limit to determine whether the collective latency indicator is (a) greater than or equal to the latency limit or (b) less than the latency limit;
- and
- adjust the number of erasure coded shards to retrieve to reduce read tail latency based on whether the collective latency indicator is greater than or equal to or is less than the latency limit.
A host, comprising:
- an interface for communicating with a data storage system including a plurality of Data Storage Devices (DSDs) storing a plurality of erasure coded shards, each DSD of the plurality of DSDs storing one or more erasure coded shards of the plurality of erasure coded shards, wherein the plurality of erasure coded shards is generated from an erasure coding on initial data;
- and
- a processor configured to:
- set an initial number of the erasure coded shards to retrieve from the plurality of DSDs;
- determine a collective latency indicator associated with retrieving the initial number of erasure coded shards in the plurality of erasure coded shards, wherein the collective latency indicator is based on a predetermined percentage of the slower times to complete a read command for each of a plurality of particular subsets of the initial number of erasure coded shards;
- compare the collective latency indicator to a latency limit to determine whether the collective latency indicator is (a) greater than or equal to the latency limit or (b) less than the latency limit;
- and
- adjust the number of erasure coded shards to retrieve to reduce read tail latency based on whether the collective latency indicator is greater than or equal to or is less than the latency limit.
A Data Storage Device (DSD) for use in a data storage system including a plurality of DSDs storing a plurality of erasure coded shards, each DSD of the plurality of DSDs storing one or more erasure coded shards of the plurality of erasure coded shards, wherein the plurality of erasure coded shards is generated from an erasure coding on initial data, the DSD comprising:
- an interface for communicating with the plurality of DSDs;
- and
- a controller configured to:
- set an initial number of the erasure coded shards to retrieve from the plurality of DSDs;
- determine a collective latency indicator associated with retrieving the initial number of erasure coded shards in the plurality of erasure coded shards, wherein the collective latency indicator is based on a predetermined percentage of the slower times to complete a read command for each of a plurality of particular subsets of the initial number of erasure coded shards;
- compare the collective latency indicator to a latency limit to determine whether the collective latency indicator is (a) greater than or equal to the latency limit or (b) less than the latency limit;
- and
- adjust the number of erasure coded shards to retrieve to reduce read tail latency based on whether the collective latency indicator is greater than or equal to or is less than the latency limit.
A Data Storage Device (DSD) comprising:
- a plurality of memory portions storing a plurality of erasure coded shards, each memory portion of the plurality of memory portions storing one or more erasure coded shards of the plurality of erasure coded shards, wherein the plurality of erasure coded shards is generated from an erasure coding on initial data;
- means for setting an initial number of the erasure coded shards to retrieve from the plurality of DSDs;
- means for determining a collective latency indicator associated with retrieving the initial number of erasure coded shards in the plurality of erasure coded shards, wherein the collective latency indicator is based on a predetermined percentage of the slower times to complete a read command for each of a plurality of particular subsets of the initial number of erasure coded shards;
- means for comparing the collective latency indicator to a latency limit to determine whether the collective latency indicator is (a) greater than or equal to the latency limit or (b) less than the latency limit;
- and
- means for adjusting the number of erasure coded shards to retrieve to reduce read tail latency based on whether the collective latency indicator is greater than or equal to or is less than the latency limit.
Dependencies are inferred from the claim text.