Scheduling policy for queues in a non-volatile solid-state storage
First Claim
1. A method of applying scheduling policies to a non-volatile solid-state storage, comprising:
- distributing user data throughout a plurality of storage nodes through erasure coding, wherein the plurality of storage nodes are housed within a single chassis that couples the storage nodes as a cluster;
receiving operations relating to a non-volatile memory of a non-volatile solid-state storage of one of the plurality of storage nodes into a plurality of operation queues;
evaluating each of the operations in the plurality of operation queues as to benefit to the non-volatile solid-state storage according to a plurality of policies;
for each channel of a plurality of channels coupling the operation queues to the non-volatile memory, iterating a selection and an execution of a next operation from the plurality of operation queues, with each next operation having a greater benefit than at least a subset of operations remaining in the operation queues; and
assigning sequential addresses, within a bounded address space, to newly arriving data write operations, wherein a first data write resulting from a garbage collection is accorded a lower benefit than a second data write of the newly arriving data write operations as a result of the first data write referencing a lower address than the second data write, wherein at least one method operation is performed by a processor.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of applying scheduling policies is provided. The method includes distributing user data throughout a plurality of storage nodes through erasure coding, wherein the plurality of storage nodes are housed within a single chassis coupling the storage nodes as a cluster. The method includes receiving operations relating to a non-volatile memory of one of the plurality of storage nodes into a plurality of operation queues. The method includes evaluating each of the operations in the plurality of operation queues as to benefit to the non-volatile solid-state storage according to a plurality of policies. For each channel of a plurality of channels coupling the operation queues to the non-volatile memory, the method includes iterating a selection and an execution of a next operation from the plurality of operation queues, with each next operation having a greater benefit than at least a subset of operations remaining in the operation queues.
296 Citations
19 Claims
-
1. A method of applying scheduling policies to a non-volatile solid-state storage, comprising:
-
distributing user data throughout a plurality of storage nodes through erasure coding, wherein the plurality of storage nodes are housed within a single chassis that couples the storage nodes as a cluster; receiving operations relating to a non-volatile memory of a non-volatile solid-state storage of one of the plurality of storage nodes into a plurality of operation queues; evaluating each of the operations in the plurality of operation queues as to benefit to the non-volatile solid-state storage according to a plurality of policies; for each channel of a plurality of channels coupling the operation queues to the non-volatile memory, iterating a selection and an execution of a next operation from the plurality of operation queues, with each next operation having a greater benefit than at least a subset of operations remaining in the operation queues; and assigning sequential addresses, within a bounded address space, to newly arriving data write operations, wherein a first data write resulting from a garbage collection is accorded a lower benefit than a second data write of the newly arriving data write operations as a result of the first data write referencing a lower address than the second data write, wherein at least one method operation is performed by a processor. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A storage cluster, comprising:
-
a plurality of storage nodes within a single chassis; each of the plurality of storage nodes having nonvolatile solid-state memory for storage of user data, the nonvolatile solid-state memory comprising; a plurality of operation queues; a plurality of channel busses, configured to couple the plurality of operation queues to a non-volatile memory, each of the plurality of channel busses having a channel; a processor, configured to perform repeating actions including; determining a relative benefit of each of a plurality of operations in the plurality of operation queues, based on a plurality of policies, the plurality of policies including assigning sequential addresses, within a bounded address space, to newly arriving data write operations, wherein a first data write resulting from a garbage collection is accorded a lower benefit than a second data write of the newly arriving data write operations as a result of the first data write referencing a lower address than the second data write; determining for each channel one of the plurality of operations in the plurality of operation queues having a greater relative benefit than others of the plurality of operations in the plurality of operation queues; and performing, for each channel, the determined one of the plurality of operations. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A storage cluster comprising:
-
a plurality of storage nodes within a single chassis; each of the plurality of storage nodes having nonvolatile solid-state memory for storage of user data, the nonvolatile solid-state memory comprising; a non-volatile memory; a controller, coupled to the non-volatile memory; a plurality of queues, coupled to or included in the controller, the plurality of queues coupled to the non-volatile memory by a plurality of channels, each of the plurality of queues configured to hold therein a plurality of operations relating to the non-volatile memory; and the controller configured to perform actions including; weighting each operation in each of the plurality of queues, according to a plurality of policies, the plurality of policies including assigning sequential addresses, within a bounded address space, to newly arriving data write operations, wherein a first data write resulting from a garbage collection is accorded a lower benefit than a second data write of the newly arriving data write operations as a result of the first data write referencing a lower address than the second data write; selecting, for each of the plurality of channels, a next operation from the plurality of queues, according to the weighting; and executing, for each of the plurality of channels, the next operation. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
Specification