IP Library Granted Patent US 9,952,930
Granted Patent B2
US 9,952,930 · App. 15/331,484 · Granted Apr 24, 2018

Reallocation in a dispersed storage network (DSN)

Inventors: Kumar Abhijeet (Chicago, IL); Manish Motwani (Chicago, IL); Jason K. Resch (Chicago, IL); Ethan S. Wozniak (Park Ridge, IL)
Assignee: International Business Machines Corporation
G06F11/1092G06F3/064G06F3/0604G06F3/067G06F3/0611G06F3/0619G06F3/0659G06F3/0665G06F3/0689G06F11/2094H03M13/1515H03M13/3761H04L43/0864H04L43/16H04L67/1008H04L67/1097G06F2201/805
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,952,930
App. No.
15/331,484
Granted
Apr 24, 2018
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 memory such that the processing module, when operable within the computing device based on the operational instructions, is configured to perform various operations. When a is to DSN undergo a change from a first system configuration of a Decentralized, or Distributed, Agreement Protocol (DAP) to a second system configuration of the DAP (e.g., such as based on addition, and/or removal of storage unit(s) (SU(s)) within the DSN or reallocation of data within the DSN, etc.), a computing device identifies a DAP transition mapping between the first system configuration of the DAP to the second system configuration of the DAP. Then, the computing device directs SU(s) to operate based on the DAP transition mapping during the transition.

Claims (56)

1. A computing device comprising:

an interface configured to interface and communicate with a dispersed 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:

detect a change within the DSN from a first system configuration of a Decentralized, or Distributed, Agreement Protocol (DAP) to a second system configuration of the DAP based on at least one of addition or removal of at least one storage unit (SU) within a plurality of storage units (SUs) within the DSN or reallocation of data within the DSN, wherein the first system configuration of the DAP and the second system configuration of the DAP respectively provide for deterministic calculation of locations of encoded data slice (EDS) sets that correspond respectively to a plurality of data segments of a data object that are distributedly stored among the plurality of storage units SUs within the DSN, wherein the data object is segmented into the 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 EDSs of the EDS sets;

identify a DAP transition mapping between the first system configuration of the DAP to the second system configuration of the DAP;

direct at least one SU to service at least one of a first read request or a first write request from a first other computing device for at least one EDS stored within the at least one SU based on the DAP transition mapping during transition from the first system configuration of the DAP to the second system configuration of the DAP; and

direct the at least one SU to service at least one of a second read request or a second write request from at least one of the first other computing device or a second other computing device for the at least one EDS stored within the at least one SU based on the second system configuration of the DAP after completion of the transition from the first system configuration of the DAP to the second system configuration of the DAP.

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:

direct a subset of SUs within the plurality of SUs that store the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a first other read request or a first other write request from the first other computing device for at least one EDS of the EDS sets based on the DAP transition mapping during transition from the first system configuration of the DAP to the second system configuration of the DAP when performed on a data object-by-data object basis; and

direct the subset of SUs within the plurality of SUs that store the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a second other read request or a second other write request from at least one of the first other computing device or the second other computing device for the at least one EDS of the EDS sets based on the second system configuration of the DAP after completion of the transition of the subset of SUs within the plurality of SUs from the first system configuration of the DAP to the second system configuration of the DAP.

3. 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:

direct a subset of SUs within the plurality of SUs that store an EDS set of the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a first other read request or a first other write request from the first other computing device for at least one EDS of the EDS set of the EDS sets based on the DAP transition mapping during transition from the first system configuration of the DAP to the second system configuration of the DAP when performed on an EDS set-by-EDS set basis; and

direct the subset of SUs within the plurality of SUs that store the EDS set of the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a second other read request or a second other write request from at least one of the first other computing device or the second other computing device for the at least one EDS of the EDS set of the EDS sets based on the second system configuration of the DAP after completion of the transition of the subset of SUs within the plurality of SUs from the first system configuration of the DAP to the second system configuration of the DAP.

4. 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:

direct a subset of SUs within the plurality of SUs of a vault that store at least some of an EDS set of the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a first other read request or a first other write request from the first other computing device for at least one EDS of the EDS set of the EDS sets based on the DAP transition mapping during transition of the subset of SUs within the plurality of SUs of the vault from the first system configuration of the DAP to the second system configuration of the DAP when performed on a vault-by-vault basis; and

direct the subset of SUs within the plurality of SUs of the vault that store the at least some of the EDS set of the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a second other read request or a second other write request from at least one of the first other computing device or the second other computing device for the at least some of the EDS set of the EDS sets based on the second system configuration of the DAP after completion of the transition from the first system configuration of the DAP to the second system configuration of the DAP.

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

direct the plurality of SUs to service any other read request or any other write request from at least one of the first other computing device or the second other computing device for any EDS within the EDS sets based on the second system configuration of the DAP after completion of transition of the plurality of SUs from the first system configuration of the DAP to the second system configuration of the DAP.

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 SU of the plurality of SUs within the DSN.

7. The computing device of claim 1 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.

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 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:

detect a change within the DSN from a first system configuration of a Decentralized, or Distributed, Agreement Protocol (DAP) to a second system configuration of the DAP based on at least one of addition or removal of at least one storage unit (SU) within a plurality of storage units (SUs) within the DSN or reallocation of data within the DSN, wherein the first system configuration of the DAP and the second system configuration of the DAP respectively provide for deterministic calculation of locations of encoded data slice (EDS) sets that correspond respectively to a plurality of data segments of a data object that are distributedly stored among the plurality of storage units SUs within the DSN, wherein the data object is segmented into the 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 EDSs of the EDS sets;

identify a DAP transition mapping between the first system configuration of the DAP to the second system configuration of the DAP;

direct the plurality of SUs to service at least one of a first read request or a first write request from a first other computing device for at least one EDS within the EDS sets stored within the plurality of SUs based on at least one of a data object-by-data object basis, an EDS set-by-EDS set basis, or vault-by-vault basis and based on the DAP transition mapping during transition from the first system configuration of the DAP to the second system configuration of the DAP; and

direct the plurality of SUs to service at least one of a second read request or a second write request from at least one of the first other computing device or a second other computing device for the at least one EDS within the EDS sets stored within the plurality of SUs based on the second system configuration of the DAP after completion of the transition from the first system configuration of the DAP to the second system configuration of the DAP.

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

direct a first subset of the plurality of SUs to service the at least one of the first read request or the first write request from the first other computing device for the at least one EDS within the EDS sets stored within the plurality of SUs based on the data object-by-data object basis and based on the DAP transition mapping during transition from the first system configuration of the DAP to the second system configuration of the DAP; and

direct a second subset of the plurality of SUs to service at least one of another read request or another write request from at least one of the first other computing device or the second other computing device for at least one of the EDS or at least one other EDS within the EDS sets stored within the plurality of SUs based on the EDS set-by-EDS set basis or the vault-by-vault basis and based on the DAP transition mapping during transition from the first system configuration of the DAP to the second system configuration of the DAP.

11. The computing device of claim 9 , wherein the computing device is located at a first premises that is remotely located from at least one SU of the plurality of SUs within 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:

detecting, via an interface of the computing device configured to interface and communicate with a dispersed storage network (DSN), a change within the DSN from a first system configuration of a Decentralized, or Distributed, Agreement Protocol (DAP) to a second system configuration of the DAP based on at least one of addition or removal of at least one storage unit (SU) within a plurality of storage units (SUs) within the DSN or reallocation of data within the DSN, wherein the first system configuration of the DAP and the second system configuration of the DAP respectively provide for deterministic calculation of locations of encoded data slice (EDS) sets that correspond respectively to a plurality of data segments of a data object that are distributedly stored among the plurality of storage units SUs within the DSN, wherein the data object is segmented into the 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 EDSs of the EDS sets;

identifying a DAP transition mapping between the first system configuration of the DAP to the second system configuration of the DAP;

directing, via the interface of the computing device, at least one SU to service at least one of a first read request or a first write request from a first other computing device for at least one EDS stored within the at least one SU based on the DAP transition mapping during transition from the first system configuration of the DAP to the second system configuration of the DAP; and

directing, via the interface of the computing device, the at least one SU to service at least one of a second read request or a second write request from at least one of the first other computing device or a second other computing device for the at least one EDS stored within the at least one SU based on the second system configuration of the DAP after completion of the transition from the first system configuration of the DAP to the second system configuration of the DAP.

15. The method of claim 14 further comprising:

directing a subset of SUs within the plurality of SUs that store the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a first other read request or a first other write request from the first other computing device for at least one EDS of the EDS sets based on the DAP transition mapping during transition from the first system configuration of the DAP to the second system configuration of the DAP when performed on a data object-by-data object basis; and

directing the subset of SUs within the plurality of SUs that store the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a second other read request or a second other write request from at least one of the first other computing device or the second other computing device for the at least one EDS of the EDS sets based on the second system configuration of the DAP after completion of the transition of the subset of SUs within the plurality of SUs from the first system configuration of the DAP to the second system configuration of the DAP.

16. The method of claim 14 further comprising:

directing a subset of SUs within the plurality of SUs that store an EDS set of the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a first other read request or a first other write request from the first other computing device for at least one EDS of the EDS set of the EDS sets based on the DAP transition mapping during transition from the first system configuration of the DAP to the second system configuration of the DAP when performed on an EDS set-by-EDS set basis; and

directing the subset of SUs within the plurality of SUs that store the EDS set of the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a second other read request or a second other write request from at least one of the first other computing device or the second other computing device for the at least one EDS of the EDS set of the EDS sets based on the second system configuration of the DAP after completion of the transition of the subset of SUs within the plurality of SUs from the first system configuration of the DAP to the second system configuration of the DAP.

17. The method of claim 14 further comprising:

directing a subset of SUs within the plurality of SUs of a vault that store at least some of an EDS set of the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a first other read request or a first other write request from the first other computing device for at least one EDS of the EDS set of the EDS sets based on the DAP transition mapping during transition of the subset of SUs within the plurality of SUs of the vault from the first system configuration of the DAP to the second system configuration of the DAP when performed on a vault-by-vault basis; and

directing the subset of SUs within the plurality of SUs of the vault that store the at least some of the EDS set of the EDS sets that correspond respectively to the plurality of data segments of the data object to service at least one of a second other read request or a second other write request from at least one of the first other computing device or the second other computing device for the at least some of the EDS set of the EDS sets based on the second system configuration of the DAP after completion of the transition from the first system configuration of the DAP to the second system configuration of the DAP.

18. The method of claim 14 further comprising:

directing the plurality of SUs to service any other read request or any other write request from at least one of the first other computing device or the second other computing device for any EDS within the EDS sets based on the second system configuration of the DAP after completion of transition of the plurality of SUs from the first system configuration of the DAP to the second system configuration of the DAP.

19. The method of claim 14 , wherein the computing device is 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.

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 Oct 21, 2016
From: ABHIJEET, KUMAR; MOTWANI, MANISH; RESCH, JASON K.; WOZNIAK, ETHAN S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040092/0903 →
Continuity (2)
Provisional Application 62248752 · Oct 30, 2015
Related Publication 20170123910A1 · May 4, 2017