IP Library Granted Patent US 9,092,294
Granted Patent B2
US 9,092,294 · App. 12/426,623 · Granted Jul 28, 2015

Systems, apparatus, and methods for utilizing a reachability set to manage a network upgrade

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,092,294
App. No.
12/426,623
Granted
Jul 28, 2015
Kind
B2
Abstract

A method of upgrading software components within a dispersed data storage network is disclosed. A list of identifiers corresponding to devices within the dispersed data storage network is assembled. Each member of the list is assigned to an upgrade set based on the devices that are reachable by the vaults associated with the device.

Claims (100)

1. A method for upgrading software in a dispersed data storage network (DDSN), the method comprises:

selecting a vault from a list of vaults within the DDSN, wherein a vault in the list of vaults identifies at least one user account and devices within the DDSN allocated to the vault;

creating an upgrade set in a list of upgrade sets of devices from the selected vault and the devices within the DDSN allocated to the vault by:

determining whether a device in the upgrade set of devices is associated with another vault;

when the device in the upgrade set of devices is associated with another vault of the list of vaults, determining a list of devices in the DDSN identified in the another vault;

adding the list of devices in the DDSN identified in the another vault to the upgrade set of devices; and

adding the upgrade set of devices to the list of upgrade sets of devices, wherein:

a first type of device of the devices within the DDSN allocated to the vault performs a slice server function of storing or retrieving a data slice of a plurality of data slices; and

a second type of device of the devices within the DDSN allocated to the vault performs a grid access function of:

executing an information dispersal algorithm to convert data into the plurality of data slices or to convert at least a threshold number of the plurality of data slices into the data; and

executing a write operation or a read operation regarding at least some of the plurality of data slices;

determining whether the upgrade set in the list of upgrade sets is ready for upgrade processing; and

when the upgrade set is ready for upgrade processing:

determining whether the slice server function of a first type of device within the upgrade set is to be upgraded;

when the slice server function of the first type of device is to be upgraded, upgrading the slice server function of the first type of device;

determining whether the grid access function of a second type of device within the upgrade set is to be upgraded; and

when the grid access function of a second type of device within the upgrade set is to be upgraded, upgrading the grid access function of the second type of device.

2. The method of claim 1 further comprises:

determining whether the slice server function of a first type of device within the upgrade set is to be upgraded by:

determining whether a status indicator for the first type of device is set to verified; and

when the status indicator is not set to verified, indicating the slice server function of the first type of device is to be upgraded; and

determining whether the grid access function of a second type of device within the upgrade set is to be upgraded by:

determining whether a status indicate for the second type of device is set to verified; and

when the status indicator is not set to verified, indicating the grid access function of the second type of device is to be upgraded.

3. The method of claim 1 further comprises:

upgrading the slice server function of the first type of device by:

disabling the slice server function;

upgrading the slice server function of the first type of device; and

rebooting the first type of device; and

upgrading the grid access function of the second type of device by:

disabling the grid access function;

upgrading the grid access function of the second type of device; and

rebooting the second type of device.

4. A device comprises:

a network node in a dispersed data storage network (DDSN);

a storage device; and

a processor coupled to the network node and the storage device, wherein the processor is operable to:

identify a set of devices within the DDSN for upgrading by:

creating an upgrade set of devices in a list of upgrade sets from a list of vaults within the DDSN and a list of devices within the DDSN by:

for at least one vault from the list of vaults, identifying an initial set of devices from the list of devices within the DDSN associated with the at least one vault;

determining whether a device of the initial set of devices is associated with another vault;

when the device of the initial set of devices is associated with another vault, identifying a second initial set of devices from the list of devices within the DDSN associated with the another vault;

creating the upgrade set of devices based on the initial set of devices and the second initial set of devices; and

adding the upgrade set of devices to the list of upgrade sets, wherein the upgrade set of devices includes one or more devices from the list of devices within the DDSN associated with at least one vault from the list of vaults and wherein the at least one vault in the list of vaults identifies at least one user account and one or more devices within the DDSN allocated to the vault;

identifying the upgrade set of devices from the list of upgrade sets, wherein the upgrade set of devices includes:

one or more first type of devices associated with the vault, each performing a slice server function of storing or retrieving a data slice of a plurality of data slices; and

one or more second type of devices associated with the vault, each performing a grid access function of:

executing an information dispersal algorithm to convert data into the plurality of data slices or to convert the plurality of data slices into the data; and

executing a write operation or a read operation regarding at least some of the plurality of data slices;

execute a shutdown function to prepare the upgrade set of devices for upgrading;

when the upgrade set of devices are in a shutdown state, upgrade the upgrade set of devices to produce a set of upgraded devices by at least one of:

download, via a network port, an upgraded slice server function to at least one of the one or more first type of devices;

download, via the network port, an upgraded grid access function to at least one of the one or more second type of devices; and

facilitate rebooting of the set of upgraded devices.

5. The device of claim 4 , wherein the processor is further operable to execute the shutdown function by:

for each of the one or more first type of devices, issuing a stop command to disable the slice server function; and

for each of the one or more second type of devices, issuing a stop command to disable the grid access function.

6. The device of claim 4 , wherein the processor is further operable to upgrade the set of devices by:

when the one or more first type of devices includes a plurality of first type of devices, determining whether a number of the plurality of first type of devices compares unfavorably to a first download threshold;

when the number of the plurality of first type of devices compares unfavorably to the first download threshold, concurrently downloading the upgraded slice server function to at most some of the plurality of first type of devices and, subsequently, downloading the upgraded slice server function to remaining first type of devices of the plurality of first type of devices;

when the one or more second type of devices includes a plurality of second type of devices, determining whether a number of the plurality of second type of devices compares unfavorably to a second download threshold; and

when the number of the plurality of second type of devices compares unfavorably to the second download threshold, concurrently downloading the upgraded grid access function to at most some of the plurality of second type of devices and, subsequently, downloading the upgraded grid access function to remaining second type of devices of the plurality of second type of devices.

7. A device comprises:

a network node in a dispersed data storage network (DDSN);

a storage device; and

a processor coupled to the network node and the storage device, wherein the processor is operable to:

select at least one vault from a list of vaults, wherein the at least one vault identifies a user account and identifies a set of devices of a list of devices associated with the user account;

determine an initial set of devices in an upgrade set in a list of upgrade sets of devices, wherein the initial set of devices includes the list of devices associated with the user account identified by the at least one vault, wherein:

a first type of device in the initial set of devices performs a slice server function of storing or retrieving a data slice of a plurality of data slices for the user account identified by the vault; and

a second type of device in the initial set of devices performs a grid access function for the user account identified by the vault of:

executing an information dispersal algorithm to convert data into the plurality of data slices or to convert the plurality of data slices into the data; and

executing a write operation or a read operation regarding at least some of the plurality of data slices;

wherein the upgrade set in the list of upgrade sets is created by:

determining whether a device of the initial set of devices is associated with another vault;

when the device of the initial set of devices is associated with another vault of the list of vaults, identifying a second initial set of devices of the list of devices associated with the another vault;

creating the upgrade set of devices based on the initial set of devices and the second initial set of devices; and

adding the upgrade set of devices to the list of upgrade sets of devices;

determine whether the upgrade set in the list of upgrade sets is ready for upgrade processing; and

when the upgrade set is ready for upgrade processing:

determine whether the slice server function of a first type of device within the upgrade set is to be upgraded;

when the slice server function of the first type of device is to be upgraded, download an upgraded slice server function to the first type of device;

determine whether the grid access function of a second type of device within the upgrade set is to be upgraded; and

when the grid access function of a second type of device within the upgrade set is to be upgraded, download an upgraded grid access function to the second type of device.

8. The device of claim 7 , wherein the processor is further operable to:

determine whether the slice server function of a first type of device within the upgrade set is to be upgraded by:

determining whether a status indicator for the first type of device is set to verified; and

when the status indicator is not set to verified, indicating the slice server function of the first type of device is to be upgraded; and

determine whether the grid access function of a second type of device within the upgrade set is to be upgraded by:

determining whether a status indicate for the second type of device is set to verified; and

when the status indicator is not set to verified, indicating the grid access function of the second type of device is to be upgraded.

9. The device of claim 7 , wherein the processor is further operable to:

download the upgraded slice server function to the first type of device by:

sending a stop command to disable the slice server function of the first type of device;

downloading the upgraded slice server function to the first type of device; and

facilitating rebooting of the first type of device; and

download the upgraded grid access function of the second type of device by:

sending a stop command to disable the grid access function of the second type of device;

downloading the upgraded grid access function to the second type of device; and

facilitating rebooting of the second type of device.

10. The device of claim 7 , wherein the at least one vault in the list of vaults associates at least one client account with one or more devices in the list of devices in the DDSN.

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 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2009
From: KUMAR, SANJAYA; HOFFMAN, STEVE; HENDRICKSON, DUSTY; CILFONE, BART
To: CLEVERSAFE, INC.
Reel/Frame 022720/0839 →