IP Library Granted Patent US 8,627,178
Granted Patent B2
US 8,627,178 · App. 13/946,136 · Granted Jan 7, 2014

Adjusting data dispersal in a dispersed storage network

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 8,627,178
App. No.
13/946,136
Granted
Jan 7, 2014
Kind
B2
Abstract

A method begins with a processing module determining that storage of data requires updating, wherein the data is stored as a plurality of sets of encoded data slices in DSN memory. For a first type of updating, the processing module increases the total number while maintaining the decode threshold number. The processing module then, for each set of encoded data slices, creates another encoded data slice in accordance with the dispersed storage error encoding function and the increased total number and sends the new encoded data slices to the DSN memory. For a second type of updating, the processing module increases the total number and the decode threshold number. The processing module then recovers the data and encodes it in accordance with the dispersed storage error encoding function using the increased total number and the increased decode threshold number to produce an updated plurality of sets of encoded data slices.

Claims (95)

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

determining that storage of data requires updating, wherein the data is encoded in accordance with a dispersed storage error encoding function using dispersed storage error encoding parameters to produce a plurality of sets of encoded data slices, which is stored in memory of the DSN, wherein the dispersed storage error encoding parameters includes a total number of encoded data slices per set of encoded data slices and a decode threshold number of encoded data slices that are required from a set of encoded data slices to recover a data segment of the data;

for a first type of updating of the storage of the data:

increasing the total number while maintaining the decode threshold number;

for each of the sets of encoded data slices of the plurality of sets of encode data slices:

creating at least one more encoded data slice in accordance with the dispersed storage error encoding function and the increased total number; and

sending the at least one more encoded data slice to the memory of the DSN for storage therein; and

for a second type of updating of the storage of the data:

increasing the total number and increasing the decode threshold number;

recovering the data from retrieved encoded data slices of the plurality of sets of encoded data slices;

encoding the recovered data in accordance with the dispersed storage error encoding function using the increased total number and the increased decode threshold number to produce an updated plurality of sets of encoded data slices; and

sending the updated plurality of sets of encoded data slices to the memory of the DSN for storage therein.

2. The method of claim 1 , wherein the determining that storage of data requires updating comprises one of:

determining under performance of the DSN with respect to accessing the plurality of sets of encoded data slices; and

determining over performance of the DSN with respect to accessing the plurality of sets of encoded data slices.

3. The method of claim 1 further comprises:

for a third type of updating of the storage of the data:

decreasing the total number while maintaining the decode threshold number;

for each of the sets of encoded data slices of the plurality of sets of encode data slices:

selecting at least one encoded data slice based on the decreased total number and the total number; and

deleting the selected at least one encoded data slice from the memory of the DSN.

4. The method of claim 1 further comprises:

for a third type of updating of the storage of the data:

decreasing the decode threshold number and maintaining the total number;

recovering the data from retrieved encoded data slices of the plurality of sets of encoded data slices;

encoding the recovered data in accordance with the dispersed storage error encoding function using the total number and the decreased decode threshold number to produce another updated plurality of sets of encoded data slices; and

sending the other updated plurality of sets of encoded data slices to the memory of the DSN for storage therein.

5. The method of claim 1 further comprises:

for a third type of updating of the storage of the data:

decreasing the decode threshold number and decreasing the total number;

recovering the data from retrieved encoded data slices of the plurality of sets of encoded data slices;

encoding the recovered data in accordance with the dispersed storage error encoding function using the decreased total number and the decreased decode threshold number to produce another updated plurality of sets of encoded data slices; and

sending the other updated plurality of sets of encoded data slices to the memory of the DSN for storage therein.

6. The method of claim 1 further comprises:

determining the type of updating based on a comparison of a performance based indication with a performance threshold.

7. The method of claim 1 further comprises:

for each of the at least one more encoded data slice created for the first type of updating of the storage of the data:

creating a slice name to links the at least one more encoded data slice to a correspond set of encoded data slices of the plurality of sets of encoded data slices; and

updating a storage location table to include the slices names.

8. The method of claim 1 , wherein the sending the at least one more encoded data slice to the memory of the DSN comprises:

identifying storage units of the DSN that are storing the plurality of sets of encoded data slices;

selecting at least one more storage unit of the DSN; and

sending the at least one more encoded data slice of each of the plurality of sets of encoded data slices to the selected at least one more storage unit.

9. The method of claim 1 , wherein the sending the updated plurality of sets of encoded data slices to the memory of the DSN comprises:

selecting storage units of the DSN; and

sending the updated plurality of sets of encoded data slices to the selected storage units.

10. A computer comprises:

an interface;

a memory; and

a processing module coupled to the interface and the memory, wherein the processing module is operable to:

determine that storage of data requires updating, wherein the data is encoded in accordance with a dispersed storage error encoding function using dispersed storage error encoding parameters to produce a plurality of sets of encoded data slices, which is stored in memory of the DSN, wherein the dispersed storage error encoding parameters includes a total number of encoded data slices per set of encoded data slices and a decode threshold number of encoded data slices that are required from a set of encoded data slices to recover a data segment of the data;

for a first type of updating of the storage of the data:

increase the total number while maintaining the decode threshold number;

for each of the sets of encoded data slices of the plurality of sets of encode data slices:

create at least one more encoded data slice in accordance with the dispersed storage error encoding function and the increased total number; and

send, via the interface, the at least one more encoded data slice to the memory of the DSN for storage therein; and

for a second type of updating of the storage of the data:

increase the total number and increasing the decode threshold number;

recover the data from retrieved encoded data slices of the plurality of sets of encoded data slices;

encode the recovered data in accordance with the dispersed storage error encoding function using the increased total number and the increased decode threshold number to produce an updated plurality of sets of encoded data slices; and

send, via the interface, the updated plurality of sets of encoded data slices to the memory of the DSN for storage therein.

11. The computer of claim 10 , wherein the processing module is further operable to determine that storage of data requires updating by one of:

determining under performance of the DSN with respect to accessing the plurality of sets of encoded data slices; and

determining over performance of the DSN with respect to accessing the plurality of sets of encoded data slices.

12. The computer of claim 10 , wherein the processing module is further operable to:

for a third type of updating of the storage of the data:

decrease the total number while maintaining the decode threshold number;

for each of the sets of encoded data slices of the plurality of sets of encode data slices:

select at least one encoded data slice based on the decreased total number and the total number; and

delete the selected at least one encoded data slice from the memory of the DSN.

13. The computer of claim 10 , wherein the processing module is further operable to:

for a third type of updating of the storage of the data:

decrease the decode threshold number and maintaining the total number;

recover the data from retrieved encoded data slices of the plurality of sets of encoded data slices;

encode the recovered data in accordance with the dispersed storage error encoding function using the total number and the decreased decode threshold number to produce another updated plurality of sets of encoded data slices; and

send, via the interface, the other updated plurality of sets of encoded data slices to the memory of the DSN for storage therein.

14. The computer of claim 10 , wherein the processing module is further operable to:

for a third type of updating of the storage of the data:

decrease the decode threshold number and decreasing the total number;

recover the data from retrieved encoded data slices of the plurality of sets of encoded data slices;

encode the recovered data in accordance with the dispersed storage error encoding function using the decreased total number and the decreased decode threshold number to produce another updated plurality of sets of encoded data slices; and

send, via the interface, the other updated plurality of sets of encoded data slices to the memory of the DSN for storage therein.

15. The computer of claim 10 , wherein the processing module is further operable to:

determine the type of updating based on a comparison of a performance based indication with a performance threshold.

16. The computer of claim 10 , wherein the processing module is further operable to:

for each of the at least one more encoded data slice created for the first type of updating of the storage of the data:

create a slice name to links the at least one more encoded data slice to a correspond set of encoded data slices of the plurality of sets of encoded data slices; and

update a storage location table to include the slices names.

17. The computer of claim 10 , wherein the processing module is further operable to send the at least one more encoded data slice to the memory of the DSN by:

identifying storage units of the DSN that are storing the plurality of sets of encoded data slices;

selecting at least one more storage unit of the DSN; and

sending, via the interface, the at least one more encoded data slice of each of the plurality of sets of encoded data slices to the selected at least one more storage unit.

18. The computer of claim 10 , wherein the processing module is further operable to send the updated plurality of sets of encoded data slices to the memory of the DSN by:

selecting storage units of the DSN; and

sending, via the interface, the updated plurality of sets of encoded data slices to the selected storage units.

Assignments (5)
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 →