IP Library Granted Patent US 10,061,650
Granted Patent B2
US 10,061,650 · App. 15/414,452 · Granted Aug 28, 2018

Priority based rebuilding

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,061,650
App. No.
15/414,452
Granted
Aug 28, 2018
Kind
B2
Abstract

A method includes determining, by a computing device of a dispersed storage network (DSN), a data priority level for a data object. The method further includes determining, by the computing device, slice priority levels based on the data priority level. The method further includes encoding, by the computing device, the data object into sets of encoded data slices. While writing the sets of encoded data slices to storage units, the method further includes detecting, by a rebuilding module of the DSN, a slice error for an encoded data slice. When the data priority level is below a data priority threshold and the slice has the first slice priority level, the method further includes facilitating rebuilding of the slice. When the data priority level is below the data priority threshold and the slice has the second slice priority level, the method further includes foregoing rebuilding of the slice.

Claims (60)

1. A method comprises:

determining, by a computing device of a dispersed storage network (DSN), a data priority level for a data object to be stored in the DSN in accordance with dispersed storage error encoding parameters;

determining, by the computing device, slice priority levels based on the data priority level;

encoding, by the computing device, the data object in accordance with the dispersed storage error encoding parameters to produce a plurality of sets of encoded data slices, wherein, based on the slice priority levels, a first subset of encoded data slices of a set of encoded data slices of the plurality of sets of encoded data slices has a first slice priority level and wherein, based on the slice priority levels, a second subset of encoded data slices of the set of encoded data slices has a second slice priority level;

while writing the plurality of sets of encoded data slices to storage units of the DSN:

detecting, by a rebuilding module of the DSN, a slice error for an encoded data slice of the set of encoded data slices;

determining, by the rebuilding module, whether the encoded data slice has the first or the second slice priority level;

when the data priority level is below a data priority threshold and the encoded data slice has the first slice priority level, facilitating, by the rebuilding module, rebuilding of the encoded data slice; and

when the data priority level is below the data priority threshold and the encoded data slice has the second slice priority level, foregoing, by the rebuilding module, rebuilding of the encoded data slice.

2. The method of claim 1 , wherein determining the data priority level comprises:

determining a data retention timeframe for storing the data object;

establishing the data priority level to be above the data priority threshold when the data retention timeframe is equal to or greater than an average retention timeframe; and

establishing the data priority level to be below the data priority threshold when the data retention timeframe is less than the average retention timeframe.

3. The method of claim 1 , wherein the determining slice priority levels comprises:

when the data priority level is below the data priority threshold:

establishing the first subset of encoded data slices to include a read threshold number of encoded data slices; and

establishing the second subset of encoded data slices to include a number of encoded data slices equal to a total number less the read threshold number.

4. The method of claim 1 , wherein the determining slice priority levels comprises:

when the data priority level is above the data priority threshold:

establishing the first subset of encoded data slices to include a write threshold number of encoded data slices; and

establishing the second subset of encoded data slices to include a number of encoded data slices equal to a total number less the write threshold number.

5. The method of claim 1 further comprises:

when the data priority level is equal to or above the data priority threshold, facilitating, by the rebuilding module, rebuilding of the encoded data slice.

6. The method of claim 1 further comprises:

determining, by the computing device, the slice priority levels such that a third subset of encoded data slices of the set of encoded data slices has a third slice priority level, wherein the first subset of encoded data slices includes a read threshold number of encoded data slices, the second subset of encoded data slices includes a number of encoded data slices equal to a write number less the read threshold number, and the third subset of encoded data slices includes a number of encoded data slices equal to a total number less the write threshold number.

7. The method of claim 6 further comprises:

when the data priority level is between the data priority level and a second data priority threshold:

facilitating, by the rebuilding module, rebuilding of the encoded data slice when the encoded data slice has the first or the second slice priority level; and

foregoing, by the rebuilding module, rebuilding of the encoded data slice when the encoded data slice has the third slice priority level.

8. A non-transitory computer readable memory comprises:

a first memory section that stores operational instructions that, when executed by a computing device of a dispersed storage network (DSN), causes the computing device to:

determine a data priority level for a data object to be stored in the DSN in accordance with dispersed storage error encoding parameters;

determine slice priority levels based on the data priority level;

encode the data object in accordance with the dispersed storage error encoding parameters to produce a plurality of sets of encoded data slices, wherein a first subset of encoded data slices of a set of encoded data slices of the plurality of sets of encoded data slices has a first slice priority level and wherein a second subset of encoded data slices of the set of encoded data slices has a second slice priority level; and

a second memory section that stores operational instructions that, when executed by a rebuilding module of the DSN, causes the rebuilding module to:

while writing the plurality of sets of encoded data slices to storage units of the DSN:

detect a slice error for an encoded data slice of the set of encoded data slices;

determine whether the encoded data slice has the first or the second slice priority level;

when the data priority level is below a data priority threshold and the encoded data slice has the first slice priority level, facilitate rebuilding of the encoded data slice; and

when the data priority level is below the data priority threshold and the encoded data slice has the second slice priority level, forego rebuilding of the encoded data slice.

9. The non-transitory computer readable memory of claim 8 , wherein the first memory section further stores operational instructions that, when executed by the computing device, causes the computing device to determine the data priority level by:

determining a data retention timeframe for storing the data object;

establishing the data priority level to be above the data priority threshold when the data retention timeframe is equal to or greater than an average retention timeframe; and

establishing the data priority level to be below the data priority threshold when the data retention timeframe is less than the average retention timeframe.

10. The non-transitory computer readable memory of claim 8 , wherein the first memory section further stores operational instructions that, when executed by the computing device, causes the computing device to determine slice priority levels by:

when the data priority level is below the data priority threshold:

establishing the first subset of encoded data slices to include a read threshold number of encoded data slices; and

establishing the second subset of encoded data slices to include a number of encoded data slices equal to a total number less the read threshold number.

11. The non-transitory computer readable memory of claim 8 , wherein the first memory section further stores operational instructions that, when executed by the computing device, causes the computing device to determine slice priority levels by:

when the data priority level is above the data priority threshold:

establishing the first subset of encoded data slices to include a write threshold number of encoded data slices; and

establishing the second subset of encoded data slices to include a number of encoded data slices equal to a total number less the write threshold number.

12. The non-transitory computer readable memory of claim 8 , wherein the second memory section further stores operational instructions that, when executed by the rebuilding module, causes the rebuilding module to:

when the data priority level is equal to or above the data priority threshold, facilitate rebuilding of the encoded data slice.

13. The non-transitory computer readable memory of claim 8 , wherein the first memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

determine the slice priority levels such that a third subset of encoded data slices of the set of encoded data slices has a third slice priority level, wherein the first subset of encoded data slices includes a read threshold number of encoded data slices, the second subset of encoded data slices includes a number of encoded data slices equal to a write number less the read threshold number, and the third subset of encoded data slices includes a number of encoded data slices equal to a total number less the write threshold number.

14. The non-transitory computer readable memory of claim 13 , wherein the second memory section further stores operational instructions that, when executed by the rebuilding module, causes the rebuilding module to:

when the data priority level is between the data priority level and a second data priority threshold:

facilitate rebuilding of the encoded data slice when the encoded data slice has the first or the second slice priority level; and

forego rebuilding of the encoded data slice when the encoded data slice has the third slice priority level.

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 Jan 24, 2017
From: GLADWIN, S. CHRISTOPHER; RESCH, JASON K.; SHIRLEY, THOMAS F., JR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041068/0928 →