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 the reading the first bit via the first path can be performed within a latency budget; and
determining a second path to achieve the read of the non-volatile solid-state memory, responsive to determining that the reading of the first bit via the first path cannot be performed within the latency budget, 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.
-
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 the reading the first bit via the first path can be performed within a latency budget; and determining a second path to achieve the read of the non-volatile solid-state memory, responsive to determining that the reading of the first bit via the first path cannot be performed within the latency budget, 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 of a bit in the non-volatile solid-state memory is achievable within a delay budget, 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 of the bit in the non-volatile solid-state memory is not achievable within the delay budget, 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 of a bit in the non-volatile solid-state memory via a first path is within a latency budget, 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 of the bit via the first path is not within the latency budget. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification