IP Library Granted Patent US 10,445,179
Granted Patent B2
US 10,445,179 · App. 15/612,082 · Granted Oct 15, 2019

Securely storing data in a dispersed storage network

Inventor: Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F11/1044G06F11/142G06F11/2094G06F21/10G06F21/60G06F21/6272H03M13/611H04L9/0861H04L9/0894H04L67/1097G06F11/0712G06F11/0784G06F11/0787G06F11/1004G06F11/1092H03M13/616H04L2209/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,445,179
App. No.
15/612,082
Granted
Oct 15, 2019
Kind
B2
Abstract

Methods and systems for changing dispersed storage error encoding parameters of sets of encoded data slices relating to portions of a data file involve determining one or more dispersed storage error encoding parameters are to be changed, selecting one or more changes to the dispersed storage error encoding parameters, and applying the changes to the parameters. The parameters include an error coding number and a decode threshold. Changes can include normalizing the parameters of the portions of a data file. Determining changes are to be made may be based on read processing performance, expiration of a time frame or based on a request. Changes can be selected based a lookup, a request, received parameters, a history of read performance, read processing performance, data type, an owner of the data file and a data size. Changes can include adding slices, deleting slices and re-encoding of data.

Claims (42)

1. A method for execution by a computing device in a dispersed storage network (DSN) comprising:

storing a first plurality of sets of encoded data slices (EDSs) in a first set of storage units of a dispersed storage network (DSN), wherein the first plurality of sets of EDSs are stored in accordance with first dispersed storage error encoding parameters, and wherein the first plurality of sets of encoded data slices are associated with a first portion of a data object;

storing a second plurality of sets of EDSs in a second set of storage units of a dispersed storage network (DSN), wherein the second plurality of sets of EDSs are stored in accordance with second dispersed storage error encoding parameters, wherein at least one of the second dispersed storage error encoding parameters is different from the first dispersed storage error encoding parameters and wherein the second plurality of sets of encoded data slices are associated with a second portion of a data object;

determining whether one or more of the first dispersed storage error encoding parameters is to be changed, wherein the determining whether one or more of the first dispersed storage error encoding parameters is to be changed is based on at least one of analyzing a history of read performance, expiration of a time frame since the data object was stored and receiving a request;

in response to a determination that one or more of the first dispersed storage error encoding parameters is to be changed selecting one or more changes to the first dispersed storage error encoding parameters; and

applying the one or more changes to the first dispersed storage error encoding parameters.

2. The method of claim 1 , wherein the first dispersed storage error encoding parameters include an error coding number and a decode threshold.

3. The method of claim 1 , wherein the selecting one or more changes to the first dispersed storage error encoding parameters includes changing the first dispersed storage error encoding parameters to be the same as the second dispersed storage error encoding parameters.

4. The method of claim 3 , further comprising:

determining whether one or more of the second dispersed storage error encoding parameters is to be changed;

selecting one or more changes to the second dispersed storage error encoding parameters; and

applying the one or more changes to the second dispersed storage error encoding parameters.

5. The method of claim 1 , further comprising monitoring reading of the first plurality of sets of EDSs to produce read processing performance information, wherein the determining whether one or more of the first dispersed storage error encoding parameters is to be changed is based on the read processing performance information.

6. The method of claim 1 , wherein the selecting one or more changes to the first dispersed storage error encoding parameters is based on one or more of a lookup, a request, receiving parameters, a history of read performance, read processing performance, data type of the data object an owner of the data object and a data size of the data object.

7. The method of claim 1 , wherein the applying the one or more changes to the first dispersed storage error encoding parameters includes adding an additional data slice to the first plurality of sets of encoded data slices.

8. The method of claim 1 , wherein the step of applying the one or more changes to the first dispersed storage error encoding parameters includes deleting an encoded data slice from the first plurality of sets of EDSs.

9. The method of claim 1 , wherein the applying the one or more changes to the first dispersed storage error encoding parameters includes recovering a data segment from a first set of EDSs of the first plurality of sets of EDSs and encoding the data segment using a modified encoding matrix.

10. A dispersed storage (DS) module comprises:

a first processing module, when operable within a computing device, causes the computing device to:

receive a data object for storage;

store a first plurality of sets of encoded data slices (EDSs) in a first set of storage units of a dispersed storage network (DSN), wherein the first plurality of sets of EDSs are stored in accordance with first dispersed storage error encoding parameters, and wherein the first plurality of sets of encoded data slices are associated with a first portion of the data object;

store a second plurality of sets of EDSs in a second set of storage units of a dispersed storage network (DSN), wherein the second plurality of sets of EDSs are stored in accordance with second dispersed storage error encoding parameters, wherein at least one of the second dispersed storage error encoding parameters is different from the first dispersed storage error encoding parameters and wherein the second plurality of sets of encoded data slices are associated with a second portion of the data object;

a second processing module, when operable within a computing device, causes the computing device to:

determine whether one or more of the first dispersed storage error encoding parameters is to be changed, wherein the determination whether one or more of the first dispersed storage error encoding parameters is to be changed is based on at least one of a history of read performance, a time frame since the data object was stored and a request;

in response to a determination that one or more of the first dispersed storage error encoding parameters is to be changed, select one or more changes to the first dispersed storage error encoding parameters; and

apply the one or more changes to the first dispersed storage error encoding parameters.

11. The DS module of claim 10 , wherein the first dispersed storage error encoding parameters include an error coding number and a decode threshold.

12. The DS module of claim 10 , wherein the second processing module, when operable within the computing device, further causes the computing device to:

select one or more changes to the first dispersed storage error encoding parameters to change the first dispersed storage error encoding parameters to be the same as the second dispersed storage error encoding parameters.

13. The DS module of claim 12 , wherein the second processing module, when operable within the computing device, further causes the computing device to:

determine one or more of the second dispersed storage error encoding parameters is to be changed;

select one or more changes to the second dispersed storage error encoding parameters; and apply the one or more changes to the second dispersed storage error encoding parameters.

14. The DS module of claim 10 , further comprising a third processing module, when operable within the computing device, causes the computing device to monitor reading of the first plurality of sets of encoded data slices to produce read processing performance information, and wherein the first processing module, when operable within the computing device, further causes the computing device to determine the one or more of the first dispersed storage error encoding parameters to be changed based on the read processing performance information.

15. The DS module of claim 10 , wherein the second processing module, when operable within the computing device, further causes the computing device to select the one or more changes to the first dispersed storage error encoding parameters based on at least one of a lookup, a request, receiving parameters, a history of read performance, read processing performance, data type of the data object an owner of the data object and a data size of the data object.

16. The DS module of claim 10 , wherein the second processing module, when operable within the computing device, further causes the computing device to apply the one or more changes to the first dispersed storage error encoding parameters by adding an additional data slice to the first plurality of sets of encoded data slices.

17. The DS module of claim 10 , wherein the second processing module, when operable within the computing device, further causes the computing device to apply the one or more changes to the first dispersed storage error encoding parameters by deleting a data slice from the first plurality of sets of encoded data slices.

18. A dispersed storage network (DSN) comprising:

storage units in which a first plurality of sets of encoded data slices relating to a first portion of a data file are stored in accordance with first dispersed storage error encoding parameters, and in which in a second plurality of sets of encoded data slices relating to a second portion of the data file are stored in accordance with second dispersed storage error encoding parameters, wherein at least one of the second dispersed storage error encoding parameters is different from the first dispersed storage error encoding parameters; and

a DS module including a first processing module, when operable within a computing device, causes the computing device to:

determine whether one or more of the first dispersed storage error encoding parameters is to be changed, wherein the determining whether one or more of the first dispersed storage error encoding parameters is to be changed is based on at least one of analyzing a history of read performance, expiration of a time frame since the data object was stored and receiving a request;

in response to a determination that one or more of the first dispersed storage error encoding parameters is to be changed, select one or more changes to the first dispersed storage error encoding parameters; and

apply the one or more changes to the first dispersed storage error encoding parameters.

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 Jun 2, 2017
From: RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 042573/0157 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042669/0601 →