IP Library Granted Patent US 10,362,111
Granted Patent B2
US 10,362,111 · App. 15/812,706 · Granted Jul 23, 2019

Selecting a data storage resource of a dispersed storage network

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 10,362,111
App. No.
15/812,706
Granted
Jul 23, 2019
Kind
B2
Abstract

A method includes receiving, by a storage unit of a set of storage units of a dispersed storage network (DSN) from a computing device of the DSN, a write request of a set of write requests regarding an encoded data slice of a set of encoded data slices. The write request includes a write set information table that includes a listing of which storage unit of the set of storage units is being sent which encoded data slice of the set of encoded data slices for storage therein. The method further includes interpreting the write set information table to determine that a particular encoded data slice assigned to a particular storage unit should be stored by a different storage unit. The method further includes facilitating storing of the particular encoded data slice in the different storage unit.

Claims (55)

1. A method comprises:

receiving, by a storage unit of a set of storage units of a dispersed storage network (DSN) from a computing device of the DSN, a write request of a set of write requests regarding an encoded data slice of a set of encoded data slices, wherein a data segment of data is dispersed storage error encoded to produce the set of encoded data slices, wherein the write request includes a write set information table that includes a listing of which storage unit of the set of storage units is being sent which encoded data slice of the set of encoded data slices for storage therein;

interpreting, by the storage unit, the write set information table to determine that a particular encoded data slice assigned to a particular storage unit should be stored by a different storage unit; and

facilitating, by the storage unit, storing of the particular encoded data slice in the different storage unit.

2. The method of claim 1 further comprises:

determining, by the storage unit, a soft failure of the particular storage unit, wherein the storage unit is the particular storage unit;

selecting, by the storage unit, the different storage unit based on an accessible factor;

sending, by the storage unit, the write request to the different storage unit, wherein the write request includes the particular encoded data slice, and wherein the encoded data slice is the particular encoded data slice; and

recording, by the storage unit, a transfer of the write request to the different storage unit.

3. The method of claim 2 further comprises:

the soft failure including one or more of: an overloading condition, a storage capacity condition, a data rate condition, and a memory availability condition; and

the accessible factor including one or more of: type of coupling between the storage unit and the different storage unit, a reliability factor of the different storage unit, a data rate of the different storage unit, and an availability factor of the different storage unit.

4. The method of claim 1 further comprises:

determining, by the storage unit, that the particular storage unit is off-line;

selecting, by the storage unit, the different storage unit based on an accessible factor;

sending, by the storage unit, a corresponding write request of the set of write requests to the different storage unit, wherein the corresponding write request includes the particular encoded data slice; and

recording, by the storage unit, the transferring of the corresponding write request to the different storage unit.

5. The method of claim 4 further comprises:

reading, by the storage unit, the write request sent to the particular storage unit via a connection between the storage unit and the particular storage unit.

6. The method of claim 1 further comprises:

updating, by storage unit, the write set information table to indicate that the particular encoded data slice is being stored by the different storage unit; and

sending, by the storage unit, the updated write set information table to the computing device.

7. The method of claim 1 further comprises:

receiving, by the storage unit from the computing device, a read request for the particular encoded data slice, wherein the storage unit is the particular storage unit, and wherein the encoded data slice is the particular encoded data slice;

forwarding, by the storage unit, the read request to the different storage unit; and

sending, by the different storage unit or the storage unit, the particular encoded data slice to the computing device in response to the read request.

8. A storage unit of a set of storage units of a dispersed storage network (DSN), the storage unit comprises:

an interface;

memory; and

a processing module operably coupled to the memory and the interface, wherein the processing module is operable to:

receive, from a computing device of the DSN, a write request of a set of write requests regarding an encoded data slice of a set of encoded data slices, wherein a data segment of data is dispersed storage error encoded to produce the set of encoded data slices, wherein the write request includes a write set information table that includes a listing of which storage unit of the set of storage units is being sent which encoded data slice of the set of encoded data slices for storage therein;

interpret the write set information table to determine that a particular encoded data slice assigned to a particular storage unit should be stored by a different storage unit; and

facilitate storing of the particular encoded data slice in the different storage unit.

9. The storage unit of claim 8 , wherein the processing module is further operable to:

determine a soft failure of the particular storage unit, wherein the storage unit is the particular storage unit;

select the different storage unit based on an accessible factor;

send the write request to the different storage unit, wherein the write request includes the particular encoded data slice, and wherein the encoded data slice is the particular encoded data slice; and

record a transfer of the write request to the different storage unit.

10. The storage unit of claim 9 further comprises:

the soft failure including one or more of: an overloading condition, a storage capacity condition, a data rate condition, and a memory availability condition; and

the accessible factor including one or more of: type of coupling between the storage unit and the different storage unit, a reliability factor of the different storage unit, a data rate of the different storage unit, and an availability factor of the different storage unit.

11. The storage unit of claim 8 , wherein the processing module is further operable to:

determine that the particular storage unit is off-line;

select the different storage unit based on an accessible factor;

send a corresponding write request of the set of write requests to the different storage unit, wherein the corresponding write request includes the particular encoded data slice; and

record the transferring of the corresponding write request to the different storage unit.

12. The storage unit of claim 11 , wherein the processing module is further operable to:

read the write request sent to the particular storage unit via a connection between the storage unit and the particular storage unit.

13. The storage unit of claim 8 , wherein the processing module is further operable to:

update the write set information table to indicate that the particular encoded data slice is being stored by the different storage unit; and

send the updated write set information table to the computing device.

14. The storage unit of claim 8 , wherein the processing module is further operable to:

receive a read request for the particular encoded data slice, wherein the storage unit is the particular storage unit, and wherein the encoded data slice is the particular encoded data slice;

forward the read request to the different storage unit; and

send the particular encoded data slice to the computing device in response to the read request.

Assignments (6)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0288 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA PREVIOUSLY RECORDED ON REEL 044135 FRAME 0223. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 4, 2017
From: RESCH, JASON K.; LEGGETTE, WESLEY; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 044670/0017 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044456/0304 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2017
From: RESCH, JASON K.; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 044135/0223 →