IP Library Granted Patent US 9,591,076
Granted Patent B2
US 9,591,076 · App. 14/805,637 · Granted Mar 7, 2017

Maintaining a desired number of storage units

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,591,076
App. No.
14/805,637
Granted
Mar 7, 2017
Kind
B2
Abstract

A method begins by a processing module of a dispersed storage network (DSN) determining that a set of storage units has less than a desired number of active storage units, where the DSN includes a plurality of storage units that randomly are active or inactive. The method continues with the processing module identifying another active storage unit of the storage units that is not currently part of the set of storage units and adding the other active storage unit to the set of storage units. For encoded data stored by the set of storage units, the method continues with the processing module increasing a pillar width number of a dispersed storage error encoding function, maintaining a decode threshold number of the dispersed storage error encoding function, creating new encoded data slices for the encoded data, and storing the new encoded data slices in the other active storage unit.

Claims (110)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), wherein the DSN includes a plurality of storage units that randomly are active or inactive in the DSN, the method comprises:

determining that a set of the storage units has less than a desired number of active storage units;

identifying another active storage unit of the storage units that is not currently part of the set of storage units;

adding the other active storage unit to the set of storage units;

for encoded data stored by the set of storage units:

increasing a pillar width number of a dispersed storage error encoding function;

maintaining a decode threshold number of the dispersed storage error encoding function;

creating new encoded data slices for the encoded data in accordance with the increased pillar width number and the maintained decode threshold number of the dispersed storage error encoding function; and

storing the new encoded data slices in the other active storage unit.

2. The method of claim 1 , wherein the determining that the set of the storage units has less than a desired number of active storage units comprises:

determining, after a predetermined time period, that a storage unit of the set of storage units has not provided a status response; and

when the storage unit has not provided the status response in the predetermined time period, indicating that the storage unit is inactive and that the set of storage units has less than the desired number of active storage units.

3. The method of claim 1 , wherein the identifying the other active storage unit comprises one of:

identifying the other active storage unit from another set of storage units;

identifying the other active storage unit from a reserve pool of storage units; and

identifying the other active storage unit based on storage characteristics of the other active storage unit corresponding to storage requirements of the set of storage units.

4. The method of claim 1 further comprises:

the set of storage units supporting a logical storage vault, wherein a data object is stored in the logical storage vault as a plurality of sets of encoded data slices, wherein the decode threshold number of encoded data slices of a set of encoded data slices of the plurality of sets of encoded data slices is needed to decode a data segment of the data object, and wherein the set of encoded data slices includes the pillar width number of encoded data slices;

retrieving the decode threshold number of encoded data slices;

decoding the decode threshold number of encoded data slices to recover the data segment; and

partially encoding the recovered data segment to produce one of the new encoded data slices.

5. The method of claim 1 further comprises:

determining that an inactive storage unit associated with the set of storage units has become active to produce a newly activated storage unit; and

when the set of storage units includes the desired number of storage units:

determining whether the newly activated storage unit has storage characteristics more favorably suited to the set of storage units than a first storage unit of the set of storage units; and

when the newly activated storage unit has the storage characteristics more favorably suited to the set of storage units than the first storage unit of the set of storage units:

excluding the first storage unit from the set of storage units; and

adding the newly activated storage unit to the set of storage units.

6. The method of claim 5 further comprises:

when the newly activated storage unit does not have storage characteristics more favorably suited to the set of storage units than the first storage unit of the set of storage units, flagging the newly activated storage unit as a potential storage unit for the set of storage units when a current number of active storage units in the set of storage units becomes less than the desired number of active storage units.

7. The method of claim 5 further comprises:

when the set of storage units includes less than the desired number of storage units, adding the newly active storage unit to the set of storage units.

8. The method of claim 1 , wherein the desired number of active storage units comprises:

a number equal to or greater than the pillar width number.

9. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), wherein the DSN includes a plurality of storage units that randomly are active or inactive in the DSN, causes the one or more computing devices to:

determine that a set of the storage units has less than a desired number of active storage units;

identify another active storage unit of the storage units that is not currently part of the set of storage units;

add the other active storage unit to the set of storage units;

for encoded data stored by the set of storage units:

increase a pillar width number of a dispersed storage error encoding function;

maintain a decode threshold number of the dispersed storage error encoding function;

create new encoded data slices for the encoded data in accordance with the increased pillar width number and the maintained decode threshold number of the dispersed storage error encoding function; and

store the new encoded data slices in the other active storage unit.

10. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to determine that the set of the storage units has less than a desired number of active storage units by:

determining, after a predetermined time period, that a storage unit of the set of storage units has not provided a status response; and

when the storage unit has not provided the status response in the predetermined time period, indicating that the storage unit is inactive and that the set of storage units has less than the desired number of active storage units.

11. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices of the DSN to identify the other active storage unit by:

identifying the other active storage unit from another set of storage units;

identifying the other active storage unit from a reserve pool of storage units; and

identifying the other active storage unit based on storage characteristics of the other active storage unit corresponding to storage requirements of the set of storage units.

12. The non-transitory computer readable storage medium of claim 9 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

the set of storage units support a logical storage vault, wherein a data object is stored in the logical storage vault as a plurality of sets of encoded data slices, wherein the decode threshold number of encoded data slices of a set of encoded data slices of the plurality of sets of encoded data slices is needed to decode a data segment of the data object, and wherein the set of encoded data slices includes the pillar width number of encoded data slices;

retrieve the decode threshold number of encoded data slices;

decode the decode threshold number of encoded data slices to recover the data segment; and

partially encode the recovered data segment to produce one of the new encoded data slices.

13. The non-transitory computer readable storage medium of claim 9 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

determine that an inactive storage unit associated with the set of storage units has become active to produce a newly activated storage unit; and

when the set of storage units includes the desired number of storage units:

determine whether the newly activated storage unit has storage characteristics more favorably suited to the set of storage units than a first storage unit of the set of storage units; and

when the newly activated storage unit has the storage characteristics more favorably suited to the set of storage units than the first storage unit of the set of storage units:

exclude the first storage unit from the set of storage units; and

add the newly activated storage unit to the set of storage units.

14. The non-transitory computer readable storage medium of claim 13 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

when the newly activated storage unit does not have storage characteristics more favorably suited to the set of storage units than the first storage unit of the set of storage units, flag the newly activated storage unit as a potential storage unit for the set of storage units when a current number of active storage units in the set of storage units becomes less than the desired number of active storage units.

15. The non-transitory computer readable storage medium of claim 13 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices of the DSN to:

when the set of storage units includes less than the desired number of storage units, add the newly active storage unit to the set of storage units.

16. The non-transitory computer readable storage medium of claim 9 , wherein the desired number of active storage units comprises:

a number equal to or greater than the pillar width number.

17. A computing device of a group of computing devices of a dispersed storage network (DSN), wherein the DSN includes a plurality of storage units that randomly are active or inactive in the DSN, the computing device comprises:

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:

determine that a set of the storage units has less than a desired number of active storage units;

identify another active storage unit of the storage units that is not currently part of the set of storage units;

add the other active storage unit to the set of storage units;

for encoded data stored by the set of storage units:

increase a pillar width number of a dispersed storage error encoding function;

maintain a decode threshold number of the dispersed storage error encoding function;

create new encoded data slices for the encoded data in accordance with the increased pillar width number and the maintained decode threshold number of the dispersed storage error encoding function; and

store, via the interface, the new encoded data slices in the other active storage unit.

18. The computing device of claim 17 , wherein the processing module functions to determine that the set of the storage units has less than a desired number of active storage units by:

determining, after a predetermined time period, that a storage unit of the set of storage units has not provided a status response; and

when the storage unit has not provided the status response in the predetermined time period, indicating that the storage unit is inactive and that the set of storage units has less than the desired number of active storage units.

19. The computing device of claim 17 , wherein the processing module functions to identify the other active storage unit by:

identifying the other active storage unit from another set of storage units;

identifying the other active storage unit from a reserve pool of storage units; and

identifying the other active storage unit based on storage characteristics of the other active storage unit corresponding to storage requirements of the set of storage units.

20. The computing device of claim 17 , wherein the processing module further functions to:

the set of storage units support a logical storage vault, wherein a data object is stored in the logical storage vault as a plurality of sets of encoded data slices, wherein the decode threshold number of encoded data slices of a set of encoded data slices of the plurality of sets of encoded data slices is needed to decode a data segment of the data object, and wherein the set of encoded data slices includes the pillar width number of encoded data slices;

retrieve, via the interface, the decode threshold number of encoded data slices;

decode the decode threshold number of encoded data slices to recover the data segment; and

partially encode the recovered data segment to produce one of the new encoded data slices.

21. The computing device of claim 17 , wherein the processing module further functions to:

determine that an inactive storage unit associated with the set of storage units has become active to produce a newly activated storage unit; and

when the set of storage units includes the desired number of storage units:

determine whether the newly activated storage unit has storage characteristics more favorably suited to the set of storage units than a first storage unit of the set of storage units; and

when the newly activated storage unit has the storage characteristics more favorably suited to the set of storage units than the first storage unit of the set of storage units:

exclude the first storage unit from the set of storage units; and

add the newly activated storage unit to the set of storage units.

22. The computing device of claim 21 , wherein the processing module further functions to:

when the newly activated storage unit does not have storage characteristics more favorably suited to the set of storage units than the first storage unit of the set of storage units, flag the newly activated storage unit as a potential storage unit for the set of storage units when a current number of active storage units in the set of storage units becomes less than the desired number of active storage units.

23. The computing device of claim 21 , wherein the processing module further functions to:

when the set of storage units includes less than the desired number of storage units, add the newly active storage unit to the set of storage units.

24. The computing device of claim 17 , wherein the desired number of active storage units comprises:

a number equal to or greater than the pillar width number.

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 →
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 May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2015
From: ALGIE, TEAGUE SCOTT; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 036151/0425 →