IP Library Granted Patent US 8,862,800
Granted Patent B2
US 8,862,800 · App. 13/529,052 · Granted Oct 14, 2014

Distributed storage network including memory diversity

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,862,800
App. No.
13/529,052
Granted
Oct 14, 2014
Kind
B2
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.

Claims (71)

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.

2. The DS unit of claim 1 , wherein the processing the read requests and the write requests comprise:

utilizing a state transition process that includes:

transition to a read state when the read queue contains one or more read requests and the quantity of write requests in the write queue is less than the high threshold;

transition to a write state when the quantity of write requests in the write queue exceeds the high threshold; and

transition to a write state with read priority when the read queue is empty and the write queue is not empty and the quantity of write requests is less than the high threshold.

3. The DS unit of claim 2 , wherein the processing module is further operable to:

change from the read state to the write state with read priority in accordance with the state transition process; and

when in the write state with read priority, perform the write request to store the encoded data slice in the hard drive.

4. The DS unit of claim 1 further comprises:

cache memory operably coupled to the processing module, wherein the cache memory includes a plurality of read queues corresponding to the plurality of hard drives and a plurality of write queues corresponding to the plurality of hard drives, wherein the processing module causes the cache memory to store the read requests in read queue of the plurality of read queues to store the write requests in the write queue of the plurality of write queues.

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.

6. The DS unit of claim 5 further comprises:

cache memory operably coupled to the processing module, wherein the cache memory includes a plurality of read queues corresponding to the plurality of hard drives and a plurality of write queues corresponding to the plurality of hard drives, wherein the processing module causes the cache memory to store incoming memory access requests in one of the plurality of read queues or one of the plurality of write queues.

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.

8. The memory device of claim 7 , wherein the operational instructions regarding the processing of the read requests and the write requests further cause the DS unit to:

utilize a state transition process that includes:

transitioning to a read state when the read queue contains one or more read requests and the quantity of write requests in the write queue is less than the high threshold;

transitioning to a write state when the quantity of write requests in the write queue exceeds the high threshold; and

transitioning to a write state with read priority when the read queue is empty and the write queue is not empty and the quantity of write requests is less than the high threshold.

9. The memory device of claim 8 further comprises operational instructions that cause the DS unit to:

change from the read state to the write state with read priority in accordance with the state transition process; and

when in the write state with read priority, perform the write request to store the encoded data slice in the hard drive.

10. The memory device of claim 7 further comprises:

cache memory that includes a plurality of read queues corresponding to the plurality of hard drives and a plurality of write queues corresponding to the plurality of hard drives, wherein further operational instructions cause the DS unit to engage the cache memory to store the read requests in the read queue of the plurality of read queues to store the write requests in the write queue of the plurality of write queues.

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.

12. The memory device of claim 11 further comprises:

cache memory that includes a plurality of read queues corresponding to the plurality of hard drives and a plurality of write queues corresponding to the plurality of hard drives, wherein further operational instructions cause the DS unit to engage the cache memory to store incoming memory access requests in one of the plurality of read queues or one of the plurality of write queues.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →