Data rebuild on feedback from a queue in a non-volatile solid-state storage
First Claim
1. A method for accessing data in a plurality of storage nodes having nonvolatile solid-state memory, comprising:
- distributing user data throughout the plurality of storage nodes through erasure coding such that in event of a determination by the plurality of storage nodes that two of the plurality of storage nodes are unreachable the user data is accessible via the erasure coding from a remainder of the plurality of storage nodes, wherein the plurality of storage nodes are coupled as a storage cluster;
receiving a request that directs a read of the non-volatile solid-state memory, wherein the read of the non-volatile solid-state memory is based at least in part on reading a first bit in the non-volatile solid-state memory via a first path, and wherein a plurality of operations queues is coupled to the first path;
determining, based on contents of the plurality of operations queues, whether a read time for the reading for the reading the first bit via the first path is within a targeted read latency; and
determining a second path to achieve the read of the non-volatile solid-state memory, responsive to determining that the read time for the reading of the first bit via the first path is not within the targeted read latency, wherein a processor performs at least one method operation.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage cluster is provided. The storage cluster includes a plurality of storage nodes, each of the plurality of storage nodes having nonvolatile solid-state memory and a plurality of operations queues coupled to the solid-state memory. The plurality of storage nodes is configured to distribute the user data and metadata throughout the plurality of storage nodes such that the plurality of storage nodes can access the user data with a failure of two of the plurality of storage nodes. Each of the plurality of storage nodes is configured to determine whether a read of 1 or more bits in the solid-state memory via a first path is within a latency budget. The plurality of storage nodes is configured to perform a read of user data or metadata via a second path, responsive to a determination that the read of the bit via the first path is not within the latency budget.
125 Citations
20 Claims
-
1. A method for accessing data in a plurality of storage nodes having nonvolatile solid-state memory, comprising:
-
distributing user data throughout the plurality of storage nodes through erasure coding such that in event of a determination by the plurality of storage nodes that two of the plurality of storage nodes are unreachable the user data is accessible via the erasure coding from a remainder of the plurality of storage nodes, wherein the plurality of storage nodes are coupled as a storage cluster; receiving a request that directs a read of the non-volatile solid-state memory, wherein the read of the non-volatile solid-state memory is based at least in part on reading a first bit in the non-volatile solid-state memory via a first path, and wherein a plurality of operations queues is coupled to the first path; determining, based on contents of the plurality of operations queues, whether a read time for the reading for the reading the first bit via the first path is within a targeted read latency; and determining a second path to achieve the read of the non-volatile solid-state memory, responsive to determining that the read time for the reading of the first bit via the first path is not within the targeted read latency, wherein a processor performs at least one method operation. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A plurality of storage nodes, comprising:
-
the plurality of storage nodes configured to communicate together as a storage cluster, each of the plurality of storage nodes having non-volatile solid-state memory for user data storage, the plurality of storage nodes configured to distribute the user data and metadata associated with the user data throughout the plurality of storage nodes such that the plurality of storage nodes maintain ability to read the user data, using erasure coding, despite a loss of two of the plurality of storage nodes; each of the plurality of storage nodes having a plurality of queues configured to hold a plurality of operations relating to the non-volatile solid-state memory; each of the plurality of storage nodes configured to determine whether a read time for reading a bit in the non-volatile solid-state memory is within a targeted read delay, based on operations present in the plurality of queues; and the plurality of storage nodes configured to determine an alternate path for performing a read of user data or metadata responsive to a determination that the read time for reading the bit in the non-volatile solid-state memory is not within the targeted read delay, the the alternate path bypassing the read of the bit. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A storage cluster, comprising:
-
a plurality of storage nodes, each of the plurality of storage nodes having nonvolatile solid-state memory for storage of user data, each of the plurality of storage nodes having a plurality of operations queues coupled to the non-volatile solid-state memory; the plurality of storage nodes configured to distribute the user data and metadata associated with the user data throughout the plurality of storage nodes such that the plurality of storage nodes can access the user data, via erasure coding, with a failure of two of the plurality of storage nodes; each of the plurality of storage nodes configured to determine whether a read time for reading a bit in the non-volatile solid-state memory via a first path is within a target read latency, based on feedback from the plurality of operations queues; and the plurality of storage nodes configured to perform a read of the user data or the metadata via a second path, responsive to a determination that the read time for reading the bit via the first path is not within the targeted read latency. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification