IP Library Granted Patent US 10,558,819
Granted Patent B2
US 10,558,819 · App. 16/410,419 · Granted Feb 11, 2020

Updating distributed storage network software

Inventor: Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F21/6227G06F3/0604G06F3/067G06F3/0644G06F8/65G06F11/10G06F11/1076G06F11/2089G06F12/1408G06F21/602G06F21/6218G06F21/64H04L9/085H04L9/0861G06F15/17331G06F16/27G06F2212/263G06F2221/2107H04L2209/24H04L2209/34
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 10,558,819
App. No.
16/410,419
Granted
Feb 11, 2020
Kind
B2
Abstract

A method begins by a management unit of a distributed storage network (DSN) sending a software update notice to a plurality of dispersed storage (DS) units, wherein the plurality of DS units supports a plurality of digital storage vaults, and wherein a set of DS units of the plurality of DS units supports a digital storage vault of the plurality of digital storage vaults. The method continues with a DS processing module determining an update strategy for updating software of the plurality of DS units such that at least a decode threshold number of DS units of the set of DS units is continually available to service access requests to the digital storage vault and updating the software of at least some of the plurality of DS units in accordance with the update strategy.

Claims (49)

1. A method of updating software in a dispersed storage network (DSN), where the DSN includes a plurality of dispersed storage (DS) units having respective software, the method comprising:

identifying, by one DS unit of the plurality of DS units, a subset of other DS units of the plurality of DS units, wherein the one DS unit and the subset of other DS units comprise a set of DS units of the plurality of DS units that store encoded data slices associated with a storage vault, and wherein a decode threshold number of DS units is needed to reconstruct data encoded in the encoded data slices;

determining, by the one DS unit, that a number of available DS units in the set of DS units is greater than the decode threshold number of DS units based on an update status of the set of DS units; and

updating, by the one DS unit, the respective software of the set of DS units including the respective software of the one DS unit itself, while maintaining availability of the decode threshold number of DS units of the set of DS units to service access requests to the data encoded in the encoded data slices.

2. The method of claim 1 , wherein updating the respective software of the set of DS units is based on a status of a software update, and wherein the status of the software update includes one or more of a mandatory critical status, a mandatory non-critical status, and an optional status.

3. The method of claim 1 , wherein the update status includes one or more of available, unavailable, already updated, and not already updated.

4. The method of claim 1 , further comprising:

identifying, by the one DS unit, a plurality of storage vaults supported by the one DS unit, wherein the plurality of storage vaults includes the storage vault;

identifying, by the one DS unit, a plurality of subsets of other DS units of the plurality of DS units, wherein the plurality of subsets of other DS units includes the subset of other DS units, wherein the one DS unit and each of the plurality of subsets of other DS units comprise each of a plurality of sets of DS units that support one of the plurality of storage vaults, and wherein the plurality of sets of DS units includes the set of DS units; and

updating, by the one DS unit, the respective software of the set of DS units, including the respective software of the one DS unit itself, while maintaining availability of decode threshold numbers of DS units of each set of DS units in the plurality of sets of DS units.

5. The method of claim 4 , wherein another set of DS units of the plurality of sets of DS units stores other encoded data slices associated with another one of the plurality of storage vaults, wherein the decode threshold number of DS units is needed to reconstruct other data encoded in the other encoded data slices, further comprising:

determining, by the one DS unit, that another number of available DS units in the another set of DS units is equal to the decode threshold number of DS units; and

determining, by the one DS unit, to update the respective software of the another set of DS units later in response to determining the another number of available DS units is equal to the decode threshold number of DS units.

6. The method of claim 4 , wherein another set of DS units of the plurality of sets of DS units stores other encoded data slices associated with another storage vault, wherein another decode threshold number of DS units is needed to reconstruct other data encoded in other encoded data slices, and wherein the another decode threshold number of DS units is different from the decode threshold number of DS units, further comprising:

determining, by the one DS unit, that another number of available DS units in the another set of DS units is greater than the another decode threshold number of DS units.

7. The method of claim 6 , further comprising:

determining a priority for each of the plurality of storage vaults, wherein a first one of the plurality of storage vaults corresponding the set of DS units has a first priority, and wherein a second one of the plurality of storage vaults corresponding to the another set of DS units has a second priority.

8. The method of claim 7 , further comprising:

updating, by the one DS unit the respective software of the another set of DS units while maintaining availability of the another decode threshold number of DS units of the another set of DS units, wherein the set of DS units is updated before the another set of DS units in response to the first priority being greater than the second priority.

9. A dispersed storage (DS) unit of a dispersed storage network (DSN), where the DSN includes a plurality of DS units, including the DS unit, having respective software, the DS unit comprising:

a communications interface;

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

identify a subset of other DS units of the plurality of DS units, wherein the DS unit and the subset of other DS units comprise a set of DS units of the plurality of DS units that store encoded data slices associated with a storage vault, wherein a decode threshold number of DS units is needed to reconstruct data encoded in the encoded data slices;

determine that a number of available DS units in the set of DS units is greater than the decode threshold number of DS units based on an update status of the set of DS units; and

update the respective software of the set of DS units, including the respective software of the DS unit itself, while maintaining availability of the decode threshold number of DS units of the set of DS units to service access requests to the data encoded in the encoded data slices.

10. The DS unit of claim 9 , wherein the memory further comprises instructions for causing the computer processor to update the respective software of the set of DS units based on a status of a software update and wherein the status of the software update includes one or more of a mandatory critical status, a mandatory non-critical status, and an optional status.

11. The DS unit of claim 9 , wherein the update status includes one or more of available, unavailable, already updated, and not already updated.

12. The DS unit of claim 9 , wherein the memory further comprises instructions for causing the computer processor to:

identify a plurality of storage vaults supported by the DS unit, wherein the plurality of storage vaults includes the storage vault;

identify a plurality of subsets of other DS units of the plurality of DS units, wherein the plurality of subsets of other DS units includes the subset of other DS units, wherein the DS unit and each of the plurality of subsets of other DS units comprise each of a plurality of sets of DS units that support one of the plurality of storage vaults, and wherein the plurality of sets of DS units includes the set of DS units; and

update the respective software of the set of DS units, including the respective software of the DS unit itself, while maintaining availability of decode threshold numbers of DS units of each set of DS units in the plurality of sets of DS units.

13. The DS unit of claim 12 , wherein another set of DS units of the plurality of sets of DS units stores other encoded data slices associated with another one of the plurality of storage vaults, wherein the decode threshold number of DS units is needed to reconstruct other data encoded in the other encoded data slices, and wherein the memory further comprises instructions for causing the computer processor to:

determine that another number of available DS units in the another set of DS units is equal to the decode threshold number of DS units.

14. The DS unit of claim 13 , wherein the memory further comprises instructions for causing the computer processor to:

determine to update the respective software of the another set of DS units later in response to determining the another number of available DS units is equal to the decode threshold number of DS units.

15. The DS unit of claim 12 , wherein another set of DS units of the plurality of sets of DS units stores other encoded data slices associated with another storage vault, wherein another decode threshold number of DS units is needed to reconstruct other data encoded in other encoded data slices, wherein the another decode threshold number of DS units is different from the decode threshold number of DS units, and wherein the memory further comprises instructions for causing the computer processor to:

determine that another number of available DS units in the another set of DS units is greater than the another decode threshold number of DS units.

16. The DS unit of claim 15 , wherein the memory further comprises instructions for causing the computer processor to:

determine a priority for each of the plurality of storage vaults, wherein a first one of the plurality of storage vaults corresponding the set of DS units has a first priority, and wherein a second one of the plurality of storage vaults corresponding to the another set of DS units has a second priority.

17. The DS unit of claim 16 , wherein the memory further comprises instructions for causing the computer processor to:

update the respective software of the another set of DS units while maintaining the availability of the another decode threshold number of DS units of the another set of DS units, wherein the set of DS units is updated before the another set of DS units in response to the first priority being greater than the second priority.

18. A method of updating software in a dispersed storage network (DSN), where the DSN includes a plurality of dispersed storage (DS) units, each of the plurality of DS units having corresponding software, the method comprising:

identifying, by one DS unit of the plurality of DS units, a subset of other DS units of the plurality of DS units, wherein the one DS unit and the subset of other DS units comprise a set of DS units of the plurality of DS units that store encoded data slices associated with a storage vault, and wherein a decode threshold number of DS units is needed to reconstruct data encoded in the encoded data slices;

determining, by the one DS unit, that a number of available DS units in the set of DS units is greater than the decode threshold number of DS units based on an update status of the set of DS units; and

updating, by the one DS unit, the corresponding software of the set of DS units, while maintaining availability of the decode threshold number of DS units of the set of DS units to service access requests to the data encoded in the encoded data slices.

19. The method of claim 18 , wherein updating the corresponding software of the set of DS units is based on a status of a software update, and wherein the status of the software update includes one or more of a mandatory critical status, a mandatory non-critical status, and an optional status.

20. The method of claim 18 , wherein the update status includes one or more of available, unavailable, already updated, and not already updated.

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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2019
From: RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 049184/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2019
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049188/0926 →