IP Library Granted Patent US 9,823,845
Granted Patent B2
US 9,823,845 · App. 15/612,750 · Granted Nov 21, 2017

Adaptive dispersed storage network (DSN) and system

Inventors: Kumar Abhijeet (Chicago, IL); Greg R. Dhuse (Chicago, IL); S. Christopher Gladwin (Chicago, IL); Gary W. Grube (Barrington Hills, IL); Timothy W. Markison (Mesa, AZ); Jason K. Resch (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0604G06F3/067G06F3/0619G06F3/0644G06F3/0659G06F11/1092G06F21/602G06F21/6218H03M13/1515H03M13/616H04L63/08H04L63/101H04L63/102
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 9,823,845
App. No.
15/612,750
Granted
Nov 21, 2017
Kind
B2
Abstract

A computing device includes an interface configured to interface and communicate with a dispersed storage network (DSN), a memory that stores operational instructions, and a processing module operably coupled to the interface and to the memory such that the processing module, when operable within the computing device based on the operational instructions, is configured to perform various operations. When additional unique pillar combinations of at least read threshold number of encoded data slices (EDSs) supported by EDSs may be needed, the computing device dispersed error encodes each data segment in accordance to generate additional pluralities of EDSs and distributedly stores the additional pluralities of EDSs associated respectively with the data object across the plurality of SUs within the DSN to support the additional unique pillar combinations of the at least read threshold number of EDSs.

Claims (68)

1. A computing device comprising:

an interface configured to interface and communicate with a dispersed or distributed storage network (DSN);

memory that stores operational instructions; and

a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the computing device based on the operational instructions, is configured to:

transmit, via the DSN, a read request for a data object to another computing device, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs) that is stored within the DSN, wherein unique pillar combinations of at least a decode threshold number of EDSs of the set of EDSs provide for unique recovery of the data segment; and

when no unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs is determined to be available within the DSN by the another computing device, receive another unique pillar combination of at least the decode threshold number of EDSs of another set of EDSs from the another computing device via the DSN, wherein the another set of EDS are based on dispersed error encoding of the data segment in accordance with other dispersed error encoding parameters to generate the another set of EDS.

2. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

when a unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs is determined to be available within the DSN by the another computing device, receive the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs from the another computing device via the DSN.

3. The computing device of claim 2 , wherein:

the set of EDSs are distributedly stored among a plurality of storage units (SUs) within the DSN; and

the another computing device is configured to:

assign the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs to the computing device;

retrieve the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs from the plurality of SUs; and

transmit the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs that is assigned to the computing device to the computing device via the DSN.

4. The computing device of claim 1 , wherein, when the no unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs is determined to be available within the DSN by the another computing device, the another computing device is configured to:

dispersed error encode the data segment in accordance with the other dispersed error encoding parameters to generate the another set of EDSs, wherein other unique pillar combinations of at least the decode threshold number of EDSs of the another set of EDSs provide for recovery of the data segment; and

distributedly store the another set of EDSs among a plurality of storage units (SUs) within the DSN.

5. The computing device of claim 1 , wherein:

the data segment of the plurality of data segments is dispersed error encoded in accordance with the dispersed error encoding parameters to produce the set of EDSs that is of a first pillar width; and

the data segment of the plurality of data segments is dispersed error encoded in accordance with the other dispersed error encoding parameters to produce the another set of EDSs that is of a second pillar width that is greater than the first pillar width.

6. The computing device of claim 1 , wherein:

at least one of the set of EDSs or the another set of EDSs is distributedly stored among a plurality of storage units (SUs) within the DSN;

a read threshold number of EDSs of the at least one of the set of EDSs or the another set of EDSs provides for reconstruction of the data segment; and

a write threshold number of EDSs of the at least one of the set of EDSs or the another set of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN.

7. The computing device of claim 1 further comprising:

a SU of a plurality of storage units (SUs) within the DSN that distributedly store at least one of the set of EDSs or the another set of EDSs, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

8. The computing device of claim 1 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication systems, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

9. A computing device comprising:

an interface configured to interface and communicate with a dispersed or distributed storage network (DSN);

memory that stores operational instructions; and

a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the computing device based on the operational instructions, is configured to:

transmit, via the DSN, a read request for a data object to another computing device, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs) that is stored within the DSN, wherein unique pillar combinations of at least a decode threshold number of EDSs of the set of EDSs provide for unique recovery of the data segment;

when a unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs is determined to be available within the DSN by the another computing device, receive the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs from the another computing device via the DSN; and

when no unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs is determined to be available within the DSN by the another computing device, receive another unique pillar combination of at least the decode threshold number of EDSs of another set of EDSs from the another computing device via the DSN, wherein the another set of EDS is generated by the another computing device that is configured to dispersed error encode the data segment in accordance with other dispersed error encoding parameters to generate the another set of EDSs, wherein other unique pillar combinations of at least the decode threshold number of EDSs of the another set of EDSs provide for recovery of the data segment.

10. The computing device of claim 9 , wherein:

the set of EDSs are distributedly stored among a plurality of storage units (SUs) within the DSN; and

the another computing device is configured to:

assign the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs to the computing device;

retrieve the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs from the plurality of SUs; and

transmit the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs that is assigned to the computing device to the computing device via the DSN.

11. The computing device of claim 9 , wherein, when the no unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs is determined to be available within the DSN by the another computing device, the another computing device is configured to:

dispersed error encode the data segment in accordance with the other dispersed error encoding parameters to generate the another set of EDSs, wherein other unique pillar combinations of at least the decode threshold number of EDSs of the another set of EDSs provide for recovery of the data segment; and

distributedly store the another set of EDSs among a plurality of storage units (SUs) within the DSN, wherein:

the data segment of the plurality of data segments is dispersed error encoded in accordance with the dispersed error encoding parameters to produce the set of EDSs that is of a first pillar width; and

the data segment of the plurality of data segments is dispersed error encoded in accordance with the other dispersed error encoding parameters to produce the another set of EDSs that is of a second pillar width that is greater than the first pillar width.

12. The computing device of claim 9 further comprising:

a SU of a plurality of storage units (SUs) within the DSN that distributedly store at least one of the set of EDSs or the another set of EDSs, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

13. The computing device of claim 9 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication systems, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

14. A method for execution by a computing device, the method comprising:

transmitting, via an interface of the computing device configured to interface and communicate with a dispersed or distributed storage network (DSN) and via the DSN, a read request for a data object to another computing device, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs) that is stored within the DSN, wherein unique pillar combinations of at least a decode threshold number of EDSs of the set of EDSs provide for unique recovery of the data segment; and

when no unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs is determined to be available within the DSN by the another computing device, receiving, via the interface, another unique pillar combination of at least the decode threshold number of EDSs of another set of EDSs from the another computing device via the DSN, wherein the another set of EDS are based on dispersed error encoding of the data segment in accordance with other dispersed error encoding parameters to generate the another set of EDS.

15. The method of claim 14 further comprising:

when a unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs is determined to be available within the DSN by the another computing device, receiving, via the interface, the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs from the another computing device via the DSN.

16. The method of claim 14 , wherein the set of EDSs are distributedly stored among a plurality of storage units (SUs) within the DSN; and the another computing device operating by:

assigning the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs to the computing device;

retrieving the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs from the plurality of SUs; and

transmitting the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs that is assigned to the computing device to the computing device via the DSN.

17. The method of claim 14 , wherein, when the no unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs is determined to be available within the DSN by the another computing device, the another computing device operating by:

dispersed error encoding the data segment in accordance with the other dispersed error encoding parameters to generate the another set of EDSs, wherein other unique pillar combinations of at least the decode threshold number of EDSs of the another set of EDSs provide for recovery of the data segment; and

distributedly storing the another set of EDSs among a plurality of storage units (SUs) within the DSN, wherein:

the data segment of the plurality of data segments is dispersed error encoded in accordance with the dispersed error encoding parameters to produce the set of EDSs that is of a first pillar width; and

the data segment of the plurality of data segments is dispersed error encoded in accordance with the other dispersed error encoding parameters to produce the another set of EDSs that is of a second pillar width that is greater than the first pillar width.

18. The method of claim 14 , wherein:

at least one of the set of EDSs or the another set of EDSs is distributedly stored among a plurality of storage units (SUs) within the DSN;

a read threshold number of EDSs of the at least one of the set of EDSs or the another set of EDSs provides for reconstruction of the data segment; and

a write threshold number of EDSs of the at least one of the set of EDSs or the another set of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN.

19. The method of claim 14 , wherein the computing device includes a SU of a plurality of storage units (SUs) within the DSN that distributedly store at least one of the set of EDSs or the another set of EDSs, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

20. The method of claim 14 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication systems, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

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 Jun 2, 2017
From: ABHIJEET, KUMAR; DHUSE, GREG R.; GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; MARKISON, TIMOTHY W.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042578/0578 →
Continuity (7)
Continuation 15451906 · Mar 7, 2017
Continuation 15250013 · Aug 29, 2016
Continuation In Part 14705752 · May 6, 2015
Continuation 14336189 · Jul 21, 2014
Continuation 12885124 · Sep 17, 2010
Provisional Application 61264534 · Nov 25, 2009
Related Publication 20170269842A1 · Sep 21, 2017