Distributed storage network including memory diversity
First Claim
1. A dispersed storage (DS) unit comprises:
- a processing module; and
a plurality of hard drives, wherein the processing module is operable to;
receive a plurality of memory access requests regarding a plurality of encoded data slices stored at different addressable locations of a hard drive of the plurality of hard drives;
queuing write requests of the plurality of memory access requests in a write queue for the hard drive;
queuing read requests of the plurality of memory access requests in a read queue for the hard drive;
processing the read requests from the read queue with priority over the write requests from the write queue unless a quantity of write requests exceeds a high threshold and then processing one or more write requests from the write queue with priority over the read requests until the quantity of write requests fails below the high threshold;
for a read request of the plurality of memory access requests regarding an encoded data slice of the plurality of encoded data slices;
retrieve a portion of the encoded data slices from the hard drive;
retrieve other portions of the encoded data slice from other hard drives of the plurality of hard drives, wherein the portions of the encoded data slice include parity data and other encoded data slices that are stored across multiple hard drives of the plurality of hard drives;
reconstruct the encoded data slice from at least some of the retrieved portions; and
fulfill the read request using the reconstructed encoded data slice.
4 Assignments
0 Petitions
Accused Products
Abstract
A dispersed storage (DS) unit includes a processing module and a plurality of hard drives. The processing module is operable to maintain states for at least some of the plurality of hard drives. The processing module is further operable to receive a memory access request regarding an encoded data slice and identify a hard drive of the plurality of hard drives based on the memory access request. The processing module is further operable to determine a state of the hard drive. When the hard drive is in a read state and the memory access request is a write request, the processing module is operable to queue the write request, change from the read state to a write state in accordance with a state transition process, and, when in the write state, perform the write request to store the encoded data slice in the hard drive.
97 Citations
12 Claims
-
1. A dispersed storage (DS) unit comprises:
-
a processing module; and a plurality of hard drives, wherein the processing module is operable to; receive a plurality of memory access requests regarding a plurality of encoded data slices stored at different addressable locations of a hard drive of the plurality of hard drives; queuing write requests of the plurality of memory access requests in a write queue for the hard drive; queuing read requests of the plurality of memory access requests in a read queue for the hard drive; processing the read requests from the read queue with priority over the write requests from the write queue unless a quantity of write requests exceeds a high threshold and then processing one or more write requests from the write queue with priority over the read requests until the quantity of write requests fails below the high threshold; for a read request of the plurality of memory access requests regarding an encoded data slice of the plurality of encoded data slices; retrieve a portion of the encoded data slices from the hard drive; retrieve other portions of the encoded data slice from other hard drives of the plurality of hard drives, wherein the portions of the encoded data slice include parity data and other encoded data slices that are stored across multiple hard drives of the plurality of hard drives; reconstruct the encoded data slice from at least some of the retrieved portions; and fulfill the read request using the reconstructed encoded data slice. - View Dependent Claims (2, 3, 4)
-
-
5. A dispersed storage (DS) unit comprises:
-
a processing module; and a plurality of hard drives, wherein the processing module is operable to; for a hard drive of the plurality of hard drives; monitor a read queue and a write queue; when the read queue contains one or more read requests and the write queue contains less than a high threshold number of write requests, access the hard drive to execute a read request of the one or more read requests; when the write queue contains at least the high threshold number of write requests, access the hard drive to execute one of the high threshold number of write requests; and when the read queue is empty and the write queue contains less than the high threshold number of write requests, access the hard drive to execute one of the less than the high threshold number of write requests; when the write queue contains at least the high threshold number of write requests; retrieve the read request from the read queue, wherein the read request is regarding an encoded data slice; retrieve other encoded data slices from other hard drives of the plurality of hard drives; retrieve a corresponding parity data from a parity hard drive; reconstruct the encoded data slice from the other encoded data slices and the corresponding parity data; and fulfill the read request using the reconstructed encoded data slice. - View Dependent Claims (6)
-
-
7. A memory device that stores operational instructions that, when performed by a dispersed storage (DS) unit, the operational instructions cause the DS unit to:
-
receive a plurality of memory access requests regarding a plurality of encoded data slices stored at different addressable locations of a hard drive of the plurality of hard drives; queuing write requests of the plurality of memory access requests in a write queue for the hard drive; queuing read requests of the plurality of memory access requests in a read queue for the hard drive; processing the read requests from the read queue with priority over the write requests from the write queue unless a quantity of write requests exceeds a high threshold and then processing one or more write requests from the write queue with priority over the read requests until the quantity of write requests fails below the high threshold; for a read request of the plurality of memory access requests regarding an encoded data slice of the plurality of encoded data slices; retrieve a portion of the encoded data slices from the hard drive; retrieve other portions of the encoded data slice from other hard drives of the plurality of hard drives, wherein the portions of the encoded data slice include parity data and other encoded data slices that are stored across multiple hard drives of the plurality of hard drives; reconstruct the encoded data slice from at least some of the retrieved portions; and fulfill the read request using the reconstructed encoded data slice. - View Dependent Claims (8, 9, 10)
-
-
11. A memory device that stores operational instructions that, when performed by a dispersed storage (DS) unit, the operational instructions cause the DS unit to:
-
monitor a read queue and a write queue of a hard drive of a plurality of hard drives associated with the DS unit; when the read queue contains one or more read requests and the write queue contains less than a high threshold number of write requests, access the hard drive to execute a read request of the one or more read requests; when the write queue contains at least the high threshold number of write requests, access the hard drive to execute one of the high threshold number of write requests; when the read queue is empty and the write queue contains less than the high threshold number of write requests, access the hard drive to execute one of the less than the high threshold number of write requests; when the write queue contains at least the high threshold number of write requests; retrieve the read request from the read queue, wherein the read request is regarding an encoded data slice; retrieve other encoded data slices from other hard drives of the plurality of hard drives; retrieve a corresponding parity data from a parity hard drive; reconstruct the encoded data slice from the other encoded data slices and the corresponding parity data; and fulfill the read request using the reconstructed encoded data slice. - View Dependent Claims (12)
-
Specification