IP Library Granted Patent US 10,289,319
Granted Patent B2
US 10,289,319 · App. 15/252,444 · Granted May 14, 2019

Varying rebuild task priorities

Inventor: Jason K. Resch (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0619G06F3/064G06F3/067G06F3/0611G06F3/0622G06F3/0637G06F3/0644G06F3/0659G06F3/0665G06F3/0689G06F11/1076G06F11/1092G06F11/3034G06F11/3409G06F12/1408H04L67/1097G06F2212/1052H03M13/1515
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,289,319
App. No.
15/252,444
Granted
May 14, 2019
Kind
B2
Abstract

A method begins by determining whether at least one encoded data slice of a corresponding set of encoded data slices associated with a primary storage unit requires rebuilding and includes one or more excess encoded data slices of the set of encoded data slices stored in a secondary storage unit. The method continues by identifying the excess encoded data slices based on scan response messages from the secondary storage units. The method continues by assigning, for each data segment associated with at least one of an encoded data slice requiring rebuilding and an excess encoded data slice, a priority level in accordance with a prioritization scheme. The method continues by facilitating, for each data segment, rebuilding of the encoded data slices requiring rebuilding and deletion of excess encoded data slices requiring deletion in accordance with the assigned priority level of the data segment.

Claims (45)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

determining, for each data segment of a plurality of data segments stored as a plurality of sets of encoded data slices in one or more of primary storage units and secondary storage units of a DSN, whether at least one encoded data slice of a corresponding set of encoded data slices associated with a primary storage unit requires rebuilding and includes one or more excess encoded data slices of the plurality of sets of encoded data slices stored in the secondary storage units;

identifying the excess encoded data slices based on scan response messages from the secondary storage units;

assigning, for each data segment of the plurality of data segments stored as a plurality of sets of encoded data slices and including, in the plurality of sets of encoded data slices, both an encoded data slice requiring rebuilding and an excess encoded data slice, a priority level in accordance with a prioritization scheme; and

facilitating, for each data segment, rebuilding of the at least one encoded data slice requiring rebuilding and deletion of excess encoded data slices requiring deletion in accordance with the assigned priority level of the data segment.

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

issuing a scan request to rebuild messages to at least one of each of the primary storage units and secondary storage units for the plurality of data segments, receive scan response rebuilding messages; and

identifying the at least one of an encoded data slice requiring rebuilding based on the scan response rebuilding messages from the primary storage units.

3. The method of claim 2 , wherein the identifying the at least one of an encoded data slice requiring rebuilding is based on identifying a missing encoded data slice based on a desired pattern.

4. The method of claim 1 further comprising identifying the excess encoded data slice based on a desired pattern.

5. The method of claim 1 , wherein the prioritization scheme comprises: highest priority for at least one encoded data slice to be rebuilt, one corresponding replacement encoded data slice to be deleted, and at least one excess encoded data slice to be deleted; next highest priority for at least one encoded data slice to be rebuilt, one corresponding replacement encoded data slice to be deleted; next lowest priority for at least one encoded data slice to be rebuilt; and lowest priority for only one or more encoded data slices to be deleted.

6. The method of claim 1 further comprising performing the facilitation on data segments associated with a highest priority first followed by a next highest priority.

7. The method of claim 1 , wherein the rebuilding comprises:

issuing read slice request rebuilding messages;

receiving read slice response rebuilding messages;

generating a rebuilt encoded data slice;

issuing a write slice request rebuilding message that includes the rebuilt encoded data slice to the primary storage unit;

receiving a write slice response confirming storage of the rebuilt encoded data slice; and deleting excess encoded data slices.

8. The method of claim 1 , wherein the deletion comprises:

issuing a delete slice request affinity message to a corresponding one of the secondary storage units; and

receiving a delete slice response affinity message confirming deletion of the encoded data slice.

9. A computing device of a group of computing devices of a dispersed storage network (DSN), the computing device comprises:

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:

determine, for each data segment of a plurality of data segments stored as a plurality of sets of encoded data slices in one or more of primary storage units and secondary storage units of a DSN, whether at least one encoded data slice of a corresponding set of encoded data slices associated with a primary storage unit requires rebuilding and includes one or more excess encoded data slices of the plurality of sets of encoded data slices stored in the secondary storage units;

identify the excess encoded data slices based on scan response messages from the secondary storage units;

assign, for each data segment of the plurality of data segments stored as a plurality of sets of encoded data slices and including, in the plurality of sets of encoded data slices, both an encoded data slice requiring rebuilding and an excess encoded data slice, a priority level in accordance with a prioritization scheme; and

facilitate, for each data segment, rebuilding of the at least one encoded data slice requiring rebuilding and deletion of excess encoded data slices requiring deletion in accordance with the assigned priority level of the data segment.

10. The computing device of claim 9 , wherein the processing module functions to determine comprises:

issuing a scan request to rebuild messages to primary storage units and secondary storage units for the plurality of data segments, receive scan response rebuilding messages; and

identifying the at least one encoded data slice requiring rebuilding based on the scan response rebuilding messages from the primary storage units.

11. The computing device of claim 10 , wherein the identifying the one encoded data slice requiring rebuilding comprises identifying a missing encoded data slice based on a desired pattern.

12. The computing device of claim 9 wherein identifying the excess encoded data slice is based on a desired pattern.

13. The computing device of claim 9 , wherein the prioritization scheme comprises: highest priority for at least one encoded data slice to be rebuilt, one corresponding replacement encoded data slice to be deleted, and at least one excess encoded data slice to be deleted; next highest priority for at least one encoded data slice to be rebuilt, one corresponding replacement encoded data slice to be deleted; next lowest priority for at least one encoded data slice to be rebuilt; and lowest priority for only one or more encoded data slices to be deleted.

14. The computing device of claim 9 , wherein the rebuilding is performed on data segments associated with a highest priority first followed by a next highest priority.

15. The computing device of claim 9 , wherein the rebuilding comprises:

issuing read slice request rebuilding messages;

receiving read slice response rebuilding messages;

generating a rebuilt encoded data slice;

issuing a write slice request rebuilding message that includes the rebuilt encoded data slice to a primary storage unit;

receiving a write slice response confirming storage of the rebuilt encoded data slice; and deleting excess encoded data slices.

16. The computing device of claim 9 , wherein the deletion of excess encoded data slices comprises:

issuing a delete slice request affinity message to a corresponding one of the secondary storage units; and

receiving a delete slice response affinity message confirming deletion of the encoded data slice.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2016
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039599/0873 →
Continuity (2)
Provisional Application 62211975 · Aug 31, 2015
Related Publication 20170060689A1 · Mar 2, 2017