IP Library Patent Application 15660135
Patent Application
App. No. 15/660,135

USING LOCKS TO PREVENT MULTIPLE REBUILDS OF THE SAME SOURCE

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 None
App. No.
15/660,135
Abstract

A method includes determining to rebuild one or more encoded data slices (EDSs) of a plurality of sets of EDSs. When determined to rebuild the one or more EDSs, the method includes sending a lock request to a set of storage units (SUs) regarding the plurality of sets of EDSs. The method further includes determining whether at least a decode threshold number of favorable lock responses is received from the set of SUs. When the at least the decode threshold number is received, the method further includes recovering one or more sets of EDSs to rebuild the one or more EDSs to produce one or more rebuilt EDSs. For a rebuilt EDS, the method further includes determining whether a SU that is targeted to receive the rebuilt EDS is available to store the rebuilt EDS, and when the SU is available, sending the rebuilt EDS to the SU.

Claims (55)

1 . A method comprises:

determining, by a first rebuilding agent of a plurality of rebuilding agents of a dispersed storage network (DSN), to rebuild one or more encoded data slices of a plurality of sets of encoded data slices;

when determined to rebuild the one or more encoded data slices, sending, by the first rebuilding agent, a lock request to a set of storage units of the DSN regarding the plurality of sets of encoded data slices;

determining, by the first rebuilding agent, whether at least a decode threshold number of favorable lock responses is received from the set of storage units;

when the at least the decode threshold number of favorable lock responses is received, recovering, by the first rebuilding agent, one or more sets of encoded data slices of the plurality of sets of encoded data slices to rebuild the one or more encoded data slices to produce one or more rebuilt encoded data slices;

for a rebuilt encoded data slice of the one or more rebuilt encoded data slices, determining, by the first rebuilding agent, whether a storage unit of the set of storage units that is targeted to receive the rebuilt encoded data slice is available to store the rebuilt encoded data slice; and

when the storage unit is available to store the rebuilt encoded data slice, sending, by the first rebuilding agent, the rebuilt encoded data slice to the storage unit.

2 . The method of claim 1 , wherein the plurality of sets of encoded data slices comprises one of:

a plurality of sets of encoded data slices of a data object; and

a plurality of sets of encoded data slices of multiple data objects.

3 . The method of claim 1 further comprises:

when the at least the decode threshold number of favorable lock responses is not received, sending, by the first rebuilding agent, a withdraw lock request message to the set of storage units; and

determining, by the first rebuilding agent, to rebuild one or more encoded data slices of another plurality of sets of encoded data slices.

4 . The method of claim 3 further comprises:

when the first rebuilding agent has rebuilt the one or more encoded data slices of the another plurality of sets of encoded data slices, sending, by the first rebuilding agent, another lock request to the set of storage units regarding the plurality of sets of encoded data slices.

5 . The method of claim 1 further comprises:

when the storage unit is not available to store the rebuilt encoded data slice, determining by the first rebuilding agent, whether another storage unit of the DSN is available to store the rebuilt encoded data slice; and

when the another storage unit is available, sending, by the first rebuilding agent, the rebuilt encoded data slice to the another storage unit.

6 . The method of claim 1 further comprises:

when the at least the decode threshold number of favorable lock responses is received, determining, by the first rebuilding agent, whether another rebuilding agent of the plurality of rebuilding agents has identified a different encoded data slice of the one or more sets of encoded data slices rebuilding; and

when the another rebuilding agent has identified a different encoded data slice for rebuilding:

rebuilding, by the first rebuilding agent, the different encoded data slice from the one or more sets of encoded data slices to produce a different rebuilt encoded data slice; and

informing, by the first rebuilding agent, the another rebuilding agent that the different encoded data slice has been rebuilt.

7 . The method of claim 6 , wherein the rebuilding the different encoded data slice comprises:

sending, by the first rebuilding agent, a message to the another rebuilding agent, wherein the message indicates the first rebuilding agent has the at least the decode threshold number of favorable lock responses and includes a request to rebuild the different encoded data slice; and

when a favorable response to the message is received, rebuilding, by the first rebuilding agent, the different encoded data slice.

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

an interface;

memory; and

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

determine to rebuild one or more encoded data slices of a plurality of sets of encoded data slices;

when determined to rebuild the one or more encoded data slices, send a lock request to a set of storage units of the DSN regarding the plurality of sets of encoded data slices;

determine whether at least a decode threshold number of favorable lock responses is received from the set of storage units;

when the at least the decode threshold number of favorable lock responses is received, recover one or more sets of encoded data slices of the plurality of sets of encoded data slices to rebuild the one or more encoded data slices to produce one or more rebuilt encoded data slices;

for a rebuilt encoded data slice of the one or more rebuilt encoded data slices, determine whether a storage unit of the set of storage units that is targeted to receive the rebuilt encoded data slice is available to store the rebuilt encoded data slice; and

when the storage unit is available to store the rebuilt encoded data slice, send the rebuilt encoded data slice to the storage unit.

9 . The computing device of claim 8 , wherein the plurality of sets of encoded data slices comprises one of:

a plurality of sets of encoded data slices of a data object; and

a plurality of sets of encoded data slices of multiple data objects.

10 . The computing device of claim 8 , wherein the processing module further functions to:

when the at least the decode threshold number of favorable lock responses is not received, send a withdraw lock request message to the set of storage units; and

determine to rebuild one or more encoded data slices of another plurality of sets of encoded data slices.

11 . The computing device of claim 10 , wherein the processing module further functions to:

when the processing module has rebuilt the one or more encoded data slices of the another plurality of sets of encoded data slices, send another lock request to the set of storage units regarding the plurality of sets of encoded data slices.

12 . The computing device of claim 8 , wherein the processing module further functions to:

when the storage unit is not available to store the rebuilt encoded data slice, determine whether another storage unit of the DSN is available to store the rebuilt encoded data slice; and

when the another storage unit is available, send the rebuilt encoded data slice to the another storage unit.

13 . The computing device of claim 8 , wherein the processing module further functions to:

when the at least the decode threshold number of favorable lock responses is received, determine whether another processing module of another computing device of the plurality of computing devices of the DSN has identified a different encoded data slice of the one or more sets of encoded data slices rebuilding; and

when the another processing module has identified a different encoded data slice for rebuilding:

rebuild the different encoded data slice from the one or more sets of encoded data slices to produce a different rebuilt encoded data slice; and

inform the another processing module that the different encoded data slice has been rebuilt.

14 . The computing device of claim 13 , wherein the processing module further functions to:

send a message to the another processing module, wherein the message indicates the processing module has the at least the decode threshold number of favorable lock responses and includes a request to rebuild the different encoded data slice; and

when a favorable response to the message is received, rebuild the different encoded data slice.

Assignments (3)
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 Jul 26, 2017
From: BAPTIST, ANDREW D.; LEGGETTE, WESLEY B.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043102/0235 →