IP Library Granted Patent US 10,445,006
Granted Patent B2
US 10,445,006 · App. 15/350,762 · Granted Oct 15, 2019

Adjusting a dispersal parameter of dispersedly stored data

Inventors: Jason K Resch (Chicago, IL); Gary W. Grube (Barrington Hills, IL); Timothy W. Markison (Mesa, AZ)
Assignee: PURE STORAGE, INC.
G06F3/0619G06F3/064G06F3/0604G06F3/065G06F3/067G06F3/0646G06F3/0653G06F11/1044G06F11/1076G06F11/1441G06F11/3006G06F11/3051G06F11/3055H03M13/2707H04L67/1097H03M13/09H03M13/1515H03M13/23
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,445,006
App. No.
15/350,762
Granted
Oct 15, 2019
Kind
B2
Abstract

A method includes dispersed storage error encoding a data object into a plurality of sets of encoded data slices. The method further includes determining a local slice storage number, a local area network (LAN) slice storage number, and a wide area network (WAN) slice storage number, wherein a sum of the local slice number, the LAN slice storage number, and the WAN slice storage number equals the pillar width number. For at least some sets of encoded data slices, the method further includes sending the local slice storage number of encoded data slices to the local slice storage number of local memory devices; sending the LAN slice storage number of encoded data slices to the LAN slice storage number of LAN storage units of the DSN; and sending the WAN slice storage number of encoded data slices to the WAN slice storage number of WAN storage units of the DSN.

Claims (71)

1. A method for execution by a computing device of a dispersed storage network (DSN), the method comprises:

dispersed storage error encoding, by the computing device and based on distributed data storage parameters, a data object into a plurality of sets of encoded data slices, wherein a data segment of the data object is recoverable from a decode threshold number of encoded data slices of a set of encoded data slices of the plurality of sets of encoded data slices, and wherein the set of encoded data slices includes a pillar width number of encoded data slices;

determining, by the computing device and based on the distributed data storage parameters, a local slice storage number, a local area network (LAN) slice storage number, and a wide area network (WAN) slice storage number, wherein the local slice storage number is less than or equal to the decode threshold number, and wherein a sum of the local slice number, the LAN slice storage number, and the WAN slice storage number equals the pillar width number; and

for each set of at least some sets of encoded data slices of the plurality of sets of encoded data slices:

sending, by the computing device, the local slice storage number of encoded data slices to the local slice storage number of local memory devices for storage therein;

sending, by the computing device, the LAN slice storage number of encoded data slices to the LAN slice storage number of LAN storage units of the DSN for storage therein; and

sending, by the computing device, the WAN slice storage number of encoded data slices to the WAN slice storage number of WAN storage units of the DSN for storage therein.

2. The method of claim 1 , wherein the determining the local slice storage number, the LAN slice storage number, and the WAN slice storage number comprises:

determining availability of the local memory devices;

based on the availability of the local memory devices, determining the local slice storage number;

determining the LAN slice storage number based a difference between the decode threshold number and the local slice storage number; and

determining the WAN slice storage number based on a difference between the pillar width number and the LAN slice storage number.

3. The method of claim 1 , wherein the determining the local slice storage number, the LAN slice storage number, and the WAN slice storage number comprises:

determining a priority indicator for the data object;

when the priority indicator is high:

determining the local slice storage number to be equal to or less than the decode threshold number;

determining the LAN slice storage number to be equal to or greater than the local slice storage number; and

determining the WAN slice storage number based on a difference between the pillar width number and the LAN slice storage number.

4. The method of claim 3 further comprises:

when the priority indicator is low:

determining the local slice storage number to be zero;

determining the LAN slice storage number equals zero; and

determining the WAN slice storage number to be equal the pillar width number.

5. The method of claim 1 further comprises:

detecting a shutdown;

when the shutdown is detected:

determining whether the local slice storage number is equal to the decode threshold number;

when the local slice storage number is less than the decode threshold number, determining to transfer a remaining number of encoded data slices of each set of the at least some sets of encoded data slices of the plurality of sets of encoded data slices, wherein the remaining number equals a difference between the decode threshold number and the local slice storage number;

when determined to transfer the remaining number of encoded data slices, transferring the remaining number of encoded data slices to the remaining number local memory devices.

6. The method of claim 5 , wherein the determining to transfer the remaining number of encoded data slices comprises:

determining a transfer indication based on one or more of a storage requirement, a storage indicator, a memory type indicator, a slice priority indicator, a data type indicator, a user identifier (ID), a vault ID, a slice volume indicator,

estimating a time to transfer the remaining number of encoded data slices for the at least some sets of encoded data slices of the plurality of sets of encoded data slices;

estimating time to power off;

when the transfer indication is favorable and the time to transfer is less than the time to power off, determining to transfer the remaining number of encoded data slices.

7. A computing device of a dispersed storage network (DSN) comprises:

a network interface;

local memory devices; and

a processing module operably coupled to the network interface and the local memory devices, wherein the processing module is operable to:

dispersed storage error encode, based on distributed data storage parameters, a data object into a plurality of sets of encoded data slices, wherein a data segment of the data object is recoverable from a decode threshold number of encoded data slices of a set of encoded data slices of the plurality of sets of encoded data slices and wherein the set of encoded data slices includes a pillar width number of encoded data slices;

determine, based on the distributed data storage parameters, a local slice storage number, a local area network (LAN) slice storage number, and a wide area network (WAN) slice storage number, wherein the local slice storage number is less than or equal to the decode threshold number and wherein a sum of the local slice number, the LAN slice storage number, and the WAN slice storage number equals the pillar width number; and

for each set of at least some sets of encoded data slices of the plurality of sets of encoded data slices:

send the local slice storage number of encoded data slices to the local slice storage number of local memory devices for storage therein;

send the LAN slice storage number of encoded data slices to the LAN slice storage number of LAN storage units of the DSN for storage therein; and

send the WAN slice storage number of encoded data slices to the WAN slice storage number of WAN storage units of the DSN for storage therein.

8. The computing device of claim 7 , wherein the processing module is further operable to determine the local slice storage number, the LAN slice storage number, and the WAN slice storage number by:

determining availability of the local memory devices;

based on the availability of the local memory devices, determining the local slice storage number;

determining the LAN slice storage number based a difference between the decode threshold number and the local slice storage number; and

determining the WAN slice storage number based on a difference between the pillar width number and the LAN slice storage number.

9. The computing device of claim 7 , wherein the processing module is further operable to determine the local slice storage number, the LAN slice storage number, and the WAN slice storage number by:

determining a priority indicator for the data object;

when the priority indicator is high:

determining the local slice storage number to be equal to or less than the decode threshold number;

determining the LAN slice storage number to be equal to or greater than the local slice storage number; and

determining the WAN slice storage number based on a difference between the pillar width number and the LAN slice storage number.

10. The computing device of claim 9 , wherein the processing module is further operable to:

when the priority indicator is low:

determine the local slice storage number to be zero;

determine the LAN slice storage number equals zero; and

determine the WAN slice storage number to be equal the pillar width number.

11. The computing device of claim 7 , wherein the processing module is further operable to:

detect a shutdown;

when the shutdown is detected:

determine whether the local slice storage number is equal to the decode threshold number;

when the local slice storage number is less than the decode threshold number, determine to transfer a remaining number of encoded data slices of each set of the at least some sets of encoded data slices of the plurality of sets of encoded data slices, wherein the remaining number equals a difference between the decode threshold number and the local slice storage number;

when determined to transfer the remaining number of encoded data slices, transfer the remaining number of encoded data slices to the remaining number local memory devices.

12. The computing device of claim 11 , wherein the processing module is further operable to determine to transfer the remaining number of encoded data slices by:

determining a transfer indication based on one or more of a storage requirement, a storage indicator, a memory type indicator, a slice priority indicator, a data type indicator, a user identifier (ID), a vault ID, a slice volume indicator,

estimating a time to transfer the remaining number of encoded data slices for the at least some sets of encoded data slices of the plurality of sets of encoded data slices;

estimating time to power off;

when the transfer indication is favorable and the time to transfer is less than the time to power off, determining to transfer the remaining number of encoded data slices.

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 Mar 30, 2017
From: RESCH, JASON K.; GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 041792/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042114/0296 →
Continuity (5)
Continuation 14842129 · Sep 1, 2015
Continuation 14481245 · Sep 9, 2014
Continuation 13413452 · Mar 6, 2012
Provisional Application 61470521 · Apr 1, 2011
Related Publication 20170060457A1 · Mar 2, 2017