IP Library Granted Patent US 9,760,286
Granted Patent B2
US 9,760,286 · App. 15/451,906 · Granted Sep 12, 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,760,286
App. No.
15/451,906
Granted
Sep 12, 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 (71)

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:

receive a read request for a data object from another computing device and via the DSN, 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), 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;

determine, for the data segment and based on the read request for the data object, whether a unique pillar combination of the at least the decode threshold number of EDSs is available to be assigned to the another computing device;

when the unique pillar combination of the at least the decode threshold number of EDSs is determined to be available, assign the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs to the another computing device; and

when no unique pillar combination of the at least the decode threshold number of EDSs is determined to available: and

dispersed error encode the data segment in accordance with other dispersed error encoding parameters to generate 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

assign one of the other unique pillar combinations of the at least the decode threshold number of EDSs of the another set of EDSs to the another computing device.

2. 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.

3. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions for the data segment and based on the read request for the data object, is further configured to:

retrieve the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs from a plurality of storage units (SUs) within the DSN that distributedly store the set of EDSs; and

provide the unique pillar combination of the at least the decode threshold number of EDSs to the another computing device via the DSN.

4. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions for the data segment and based on the read request for the data object, is further configured to:

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

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

provide the one of the unique pillar combinations of the at least the decode threshold number of EDSs of the another set of EDSs to the another computing device via the DSN.

5. 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.

6. The computing device of claim 1 , wherein the computing device is located at a first premises that is remotely located from at least one storage unit (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.

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:

receive a read request for a data object from another computing device and via the DSN, 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 of a first pillar width, 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, wherein the set of EDSs is distributedly stored among a plurality of storage units (SUs) within the DSN, wherein a read threshold number of EDSs of the set of EDSs provides for reconstruction of the data segment, and wherein a write threshold number of EDSs of the 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;

determine, for the data segment and based on the read request for the data object, whether a unique pillar combination of the at least the decode threshold number of EDSs is available to be assigned to the another computing device;

when the unique pillar combination of the at least the decode threshold number of EDSs is determined to be available, assign the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs to the another computing device; and

when no unique pillar combination of the at least the decode threshold number of EDSs is determined to available: and

dispersed error encode the data segment in accordance with other dispersed error encoding parameters to generate another set of EDSs that is of a second pillar width that is greater than the first pillar width, 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

assign one of the other unique pillar combinations of the at least the decode threshold number of EDSs of the another set of EDSs to the another computing device.

10. The computing device of claim 9 , wherein the processing module, when operable within the computing device based on the operational instructions for the data segment and based on the read request for the data object, is further configured to:

retrieve the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs from a plurality of storage units (SUs) within the DSN that distributedly store the set of EDSs; and

provide the unique pillar combination of the at least the decode threshold number of EDSs to the another computing device via the DSN.

11. The computing device of claim 9 , wherein the processing module, when operable within the computing device based on the operational instructions for the data segment and based on the read request for the data object, is further configured to:

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

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

provide the one of the unique pillar combinations of the at least the decode threshold number of EDSs of the another set of EDSs to the another computing device via the DSN.

12. The computing device of claim 9 further comprising:

a SU of the plurality of SUs within the DSN, 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:

receiving, via an interface of the computing device that is configured to interface and communicate with a dispersed or distributed storage network (DSN), a read request for a data object from another computing device and via the DSN, 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), 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;

determining, for the data segment and based on the read request for the data object, whether a unique pillar combination of the at least the decode threshold number of EDSs is available to be assigned to the another computing device;

when the unique pillar combination of the at least the decode threshold number of EDSs is determined to be available, assigning the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs to the another computing device; and

when no unique pillar combination of the at least the decode threshold number of EDSs is determined to available: and

dispersed error encoding the data segment in accordance with other dispersed error encoding parameters to generate 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

assigning one of the other unique pillar combinations of the at least the decode threshold number of EDSs of the another set of EDSs to the another computing device.

15. The method of claim 14 , 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.

16. The method of claim 14 further comprising:

retrieving the unique pillar combination of the at least the decode threshold number of EDSs of the set of EDSs from a plurality of storage units (SUs) within the DSN that distributedly store the set of EDSs; and

providing the unique pillar combination of the at least the decode threshold number of EDSs to the another computing device via the DSN.

17. The method of claim 14 further comprising:

distributedly storing the another set of EDSs within a plurality of storage units (SUs) within the DSN;

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

providing the one of the unique pillar combinations of the at least the decode threshold number of EDSs of the another set of EDSs to the another computing device via the DSN.

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 Mar 7, 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 041486/0419 →
Continuity (6)
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 20170177230A1 · Jun 22, 2017