IP Library Granted Patent US 9,959,169
Granted Patent B2
US 9,959,169 · App. 15/282,999 · Granted May 1, 2018

Expansion of dispersed storage network (DSN) memory

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,959,169
App. No.
15/282,999
Granted
May 1, 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. A computing device identifies data slices (EDSs) of pillar width (associated with data object) to be stored within a pillar width number of a plurality of storage units (SUs). The computing device the identifies head SUs among the pillar width number of the SUs such that, based on a ring arrangement, each set of EDSs is distributedly stored among the ring arrangement of the pillar width number of the SUs starting with its respective head EDS at a respective head SU and ending with a last tail EDS at a respective last tail SU.

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:

identify a plurality of encoded data slices (EDSs) of pillar width and associated with a data object to be stored within a plurality of storage units (SUs), wherein the data object is segmented into a plurality of data segments, and 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 that includes a head EDS followed by tail EDSs; and

identify a plurality of head SUs among the plurality of SUs such that, based on a ring arrangement of the plurality of SUs, each set of EDSs being distributedly stored among the ring arrangement of the plurality of SUs starting with its respective head EDS at a respective head SU and ending with a last tail EDS at a respective last tail SU, wherein the plurality of head SUs are staggered among the ring arrangement of the plurality of SUs.

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:

identify the plurality of head SUs based on a first system configuration of a Decentralized, or Distributed, Agreement Protocol (DAP) for the plurality of SUs;

generate, based on addition of a SU to the plurality of SUs to generate another plurality of SUs, a second system configuration of the DAP for the another plurality of SUs;

identify, based on difference between the first system configuration of the DAP for the plurality of SUs to the second system configuration of the DAP for the another plurality of SUs, a number of head EDSs and a number of tail EDSs to transfer from head SUs and tail SUs to the SU added to the plurality of SUs to generate the another plurality of SUs; and

transfer the number of head EDSs and the number of tail EDSs to the SU added to the plurality of SUs to generate the another plurality of SUs.

3. The computing device of claim 1 , wherein:

a first head EDS of a first set of EDSs is stored in a first head SU of the plurality of SUs followed by first tail EDSs of the first set of EDSs and ending with a last tail EDS of the first tail EDSs stored in a first last tail SU of the plurality of SUs; and

a second head EDS of a second set of EDSs is stored in a second head SU of the plurality of SUs followed by second tail EDSs of the second set of EDSs and ending with a last tail EDS of the second tail EDSs stored in a second last tail SU of the plurality of SUs, wherein the second head SU is staggered from the first head SU among the ring arrangement of the plurality of SUs.

4. The computing device of claim 3 , wherein:

a third head EDS of a third set of EDSs is stored in a third head SU of the plurality of SUs followed by third tail EDSs of the third set of EDSs and ending with a last tail EDS of the third tail EDSs stored in a third last tail SU of the plurality of SUs, wherein the third head SU is staggered from the second head SU among the ring arrangement of the plurality of SUs by as same amount that the second head SU is staggered from the first head SU among the ring arrangement of the plurality of SUs.

5. The computing device of claim 3 , wherein:

a third head EDS of a third set of EDSs is stored in a third head SU of the plurality of SUs followed by third tail EDSs of the third set of EDSs and ending with a last tail EDS of the third tail EDSs stored in a third last tail SU of the plurality of SUs, wherein the third head SU is staggered from the second head SU among the ring arrangement of the plurality of SUs by as different amount that the second head SU is staggered from the first head SU among the ring arrangement of the plurality of SUs.

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:

identify a plurality of encoded data slices (EDSs) of pillar width and associated with a data object to be stored within a plurality of storage units (SUs), wherein the data object is segmented into a plurality of data segments, and 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 that includes a head EDS and a tail EDS;

identify, based on a first system configuration of a Decentralized, or Distributed, Agreement Protocol (DAP) for the plurality of SUs, a plurality of head SUs among the plurality of SUs such that, based on a ring arrangement of the plurality of SUs, each set of EDSs is distributedly stored among the ring arrangement of the plurality of SUs starting with its respective head EDS at a respective head SU and ending with its respective tail EDS at a respective tail SU, wherein the plurality of head SUs are staggered among the ring arrangement of the plurality of SUs;

generate, based on addition of a SU to the plurality of SUs to generate another plurality of SUs, a second system configuration of the DAP for the another plurality of SUs;

identify, based on difference between the first system configuration of the DAP for the plurality of SUs to the second system configuration of the DAP for the another plurality of SUs, a number of head EDSs and a number of tail EDSs to transfer from head SUs and tail SUs to the SU added to the plurality of SUs to generate the another plurality of SUs; and

transfer the number of head EDSs and the number of tail EDSs to the SU added to the plurality of SUs to generate the another plurality of SUs to balance substantially storage of the plurality of EDSs among the another plurality of SUs.

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:

a first head EDS of a first set of EDSs is stored in a first head SU of the plurality of SUs followed by first tail EDSs of the first set of EDSs and ending with a last tail EDS of the first tail EDSs stored in a first last tail SU of the plurality of SUs; and

a second head EDS of a second set of EDSs is stored in a second head SU of the plurality of SUs followed by second tail EDSs of the second set of EDSs and ending with a last tail EDS of the second tail EDSs stored in a second last tail SU of the plurality of SUs, wherein the second head SU is staggered from the first head SU among the ring arrangement of the plurality of SUs.

11. The computing device of claim 10 , wherein:

a third head EDS of a third set of EDSs is stored in a third head SU of the plurality of SUs followed by third tail EDSs of the third set of EDSs and ending with a last tail EDS of the third tail EDSs stored in a third last tail SU of the plurality of SUs, wherein the third head SU is staggered from the second head SU among the ring arrangement of the plurality of SUs by as same amount that the second head SU is staggered from the first head SU among the ring arrangement of the plurality of SUs.

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:

identifying a plurality of encoded data slices (EDSs) of pillar width and associated with a data object to be stored within a plurality of storage units (SUs) of a dispersed storage network (DSN), wherein the data object is segmented into a plurality of data segments, and 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 that includes a head EDS followed by tail EDSs; and

identifying a plurality of head SUs among the plurality of SUs such that, based on a ring arrangement of the plurality of SUs, each set of EDSs being distributedly stored among the ring arrangement of the plurality of SUs starting with its respective head EDS at a respective head SU and ending with a last tail EDS at a respective last tail SU, wherein the plurality of head SUs are staggered among the ring arrangement of the plurality of SUs.

15. The method of claim 14 further comprising:

identifying the plurality of head SUs based on a first system configuration of a Decentralized, or Distributed, Agreement Protocol (DAP) for the plurality of SUs;

generating, based on addition of a SU to the plurality of SUs that generates another plurality of SUs, a second system configuration of the DAP for the another plurality of SUs;

identifying, based on difference between the first system configuration of the DAP for the plurality of SUs to the second system configuration of the DAP for the another plurality of SUs, a number of head EDSs and a number of tail EDSs to transfer from head SUs and tail SUs to the SU added to the plurality of SUs to generate the another plurality of SUs; and

transferring the number of head EDSs and the number of tail EDSs to the SU added to the plurality of SUs to generate the another plurality of SUs.

16. The method of claim 14 , wherein:

a first head EDS of a first set of EDSs is stored in a first head SU of the plurality of SUs followed by first tail EDSs of the first set of EDSs and ending with a last tail EDS of the first tail EDSs stored in a first last tail SU of the plurality of SUs; and

a second head EDS of a second set of EDSs is stored in a second head SU of the plurality of SUs followed by second tail EDSs of the second set of EDSs and ending with a last tail EDS of the second tail EDSs stored in a second last tail SU of the plurality of SUs, wherein the second head SU is staggered from the first head SU among the ring arrangement of the plurality of SUs.

17. The method of claim 16 , wherein:

a third head EDS of a third set of EDSs is stored in a third head SU of the plurality of SUs followed by third tail EDSs of the third set of EDSs and ending with a last tail EDS of the third tail EDSs stored in a third last tail SU of the plurality of SUs, wherein the third head SU is staggered from the second head SU among the ring arrangement of the plurality of SUs by as same amount that the second head SU is staggered from the first head SU among the ring arrangement of the plurality of SUs.

18. The method of claim 16 , wherein:

a third head EDS of a third set of EDSs is stored in a third head SU of the plurality of SUs followed by third tail EDSs of the third set of EDSs and ending with a last tail EDS of the third tail EDSs stored in a third last tail SU of the plurality of SUs, wherein the third head SU is staggered from the second head SU among the ring arrangement of the plurality of SUs by as different amount that the second head SU is staggered from the first head SU among the ring arrangement of the plurality of SUs.

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 Sep 30, 2016
From: WOZNIAK, ETHAN S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039915/0685 →