IP Library Granted Patent US 10,642,489
Granted Patent B2
US 10,642,489 · App. 15/837,536 · Granted May 5, 2020

Determining when to initiate an intra-distributed storage unit rebuild vs. an inter-distributed storage unit rebuild

Inventors: Asimuddin Kazi (Naperville, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F3/0604G06F3/06G06F3/067G06F3/0611G06F3/0622G06F3/0629G06F3/0659G06F11/1076G06F11/1092G06F11/2094G06F11/3006G06F11/3034G06F11/3055G06F2211/1028
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,642,489
App. No.
15/837,536
Granted
May 5, 2020
Kind
B2
Abstract

A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method begins by identifying an encoded data slice to be rebuilt within a DS unit, obtaining DS unit status information, selecting a rebuilding approach based on the DS unit status information, the rebuilding approach including an internal approach or an external approach. The method continues by obtaining, upon selecting the internal approach, internal rebuilding information from one or more memories of the DS unit and rebuilding the encoded data slice to be rebuilt utilizing the internal rebuilding information. The method continues by obtaining, upon selecting the external approach, external rebuilding information from at least a decode threshold number of other DS units of a set of DS units that includes the DS unit and rebuilding the encoded data slice to be rebuilt utilizing the external rebuilding information.

Claims (45)

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

identifying an encoded data slice to be rebuilt within a distributed storage (DS) unit;

obtaining status information of the DS unit;

selecting a rebuilding approach based on the status information, the rebuilding approach including an internal approach or an external approach, where the internal approach and the external approach are both available based on the status information;

obtaining, upon selecting the internal approach, internal rebuilding information from one or more memories of the DS unit, wherein the internal rebuilding information includes a decode threshold number of rebuilding elements; and

rebuilding the encoded data slice to be rebuilt utilizing the internal rebuilding information, wherein the threshold number of rebuilding elements includes at least a decode threshold number of internal memories of a plurality of internal memories within the DS unit;

obtaining, upon selecting the external approach, external rebuilding information from at least a decode threshold number of other DS units of a set of DS units that includes the DS unit; and

rebuilding the encoded data slice to be rebuilt utilizing the external rebuilding information.

2. The method of claim 1 , wherein the identifying includes at least one of: receiving an error message, comparing storage integrity information to calculated integrity information, or comparing a slice name list from the DS unit and from other DS units of a DS unit set that includes the DS unit.

3. The method of claim 1 , wherein the status information includes one or more of: a network traffic level, a number of available other DS units of the set of DS units, estimated network traffic costs, a loading level of the DS unit, available resources of the DS unit, or active operation types of the DS unit.

4. The method of claim 1 , wherein the threshold number includes at least one of: a threshold number of encoded data slices of a set of encoded data slices when a dispersed storage error coding function is utilized or a threshold number of data blocks or parity blocks when a redundant array of independent disks (RAID) function is utilized.

5. The method of claim 4 , wherein the internal rebuilding information includes retrieving the threshold number of data blocks and parity blocks from a threshold number of the internal memories of the DS unit when the redundant array of independent disks (RAID) function is utilized.

6. The method of claim 1 , wherein the internal rebuilding information further includes retrieving the threshold number of encoded data slices from a threshold number of the internal memories of the DS unit when a dispersed storage error coding function is utilized.

7. The method of claim 1 , wherein the external approach includes utilizing the external rebuilding information for at least the threshold number of other DS units of the set of DS units, where data is encoded using a dispersed storage error coding function to produce a set of encoded data slices, including the encoded data slice to be rebuilt, that are stored in the set of DS units.

8. The method of claim 7 , wherein the rebuilding includes decoding a retrieved threshold number of encoded data slices using a dispersed storage error coding function to produce a rebuilt slice.

9. The method of claim 1 further comprises determining a storage approach for the DS unit based on one or more of receiving the storage approach, a lookup, or selecting the storage approach based on storage requirements when initially storing data.

10. The method of claim 1 , wherein the rebuilding the encoded data slice to be rebuilt utilizing the internal rebuilding information includes utilizing a RAID function on the threshold number of data blocks and parity blocks to produce the rebuilt encoded data slice.

11. The method of claim 1 , wherein the obtain external rebuilding information includes issuing at least a decode threshold number of reads slice requests to other DS units and receiving at least a decode threshold number of read slice responses.

12. The method of claim 11 , wherein the rebuildng the encoded data slice to be rebuilt utilizing the external rebuilding information includes decoding at least a decode threshold number of encoded data slices from the at least a decode threshold number of received read slice responses to produce the encoded data slice to be rebuilt.

13. A computing device of a group of computing devices of a distributed 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:

identify an encoded data slice to be rebuilt within a distributed storage (DS) unit;

obtain status information of the DS unit;

select a rebuilding approach based on the status information, the rebuilding approach including an internal approach or an external approach, where the internal approach and the external approach are both available based on the status information;

obtain, upon selecting the internal approach, internal rebuilding information from one or more memories of the DS unit, wherein the internal rebuilding information includes a threshold number of rebuilding elements; and

rebuild the encoded data slice to be rebuilt utilizing the internal rebuilding information wherein the threshold number of rebuilding elements includes at least a decode threshold number of internal memories of a plurality of internal memories within the DS unit;

obtain, upon selecting the external approach, external rebuilding information from at least a decode threshold number of other DS units of a set of DS units that includes the DS unit; and

rebuild the encoded data slice to be rebuilt utilizing the external rebuilding information.

14. The computing device of claim 13 , wherein the status information includes one or more of: a network traffic level, a number of available other DS units of the set of DS units, estimated network traffic costs, a loading level of the DS unit, available resources of the DS unit, or active operation types of the DS unit.

15. The computing device of claim 13 , wherein the external approach includes utilizing the external rebuilding information for at least a threshold number of other DS units of the set of DS units, where data is encoded using a dispersed storage error coding function to produce a set of encoded data slices, including the encoded data slice to be rebuilt, that are stored in the set of DS units.

16. The computing device of claim 13 , wherein the threshold number includes at least one of: a threshold number of encoded data slices of a set of encoded data slices when a dispersed storage error coding function is utilized or a threshold number of data blocks and parity blocks when a redundant array of independent disks (RAID) function is utilized.

17. The computing device of claim 13 , wherein the obtain external rebuilding information includes issuing at least a decode threshold number of reads slice requests to other DS units and receiving at least a decode threshold number of read slice responses.

18. A system 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:

identify an encoded data slice to be rebuilt within a distributed storage (DS) unit;

obtain status information of the DS unit;

select a rebuilding approach based on the status information, the rebuilding approach including an internal approach or an external approach, where the internal approach and the external approach are both available based on the status information;

obtain, upon selecting the internal approach, internal rebuilding information from one or more memories of the DS unit, wherein the internal rebuilding information includes a threshold number of rebuilding elements; and

rebuild the encoded data slice to be rebuilt utilizing the internal rebuilding information wherein the threshold number of rebuilding elements includes at least a decode threshold number of internal memories of a plurality of internal memories within the DS unit;

obtain, upon selecting the external approach, external rebuilding information from at least a decode threshold number of other DS units of a set of DS units that includes the DS unit; and

rebuild the encoded data slice to be rebuilt utilizing the external rebuilding information.

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 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 Dec 12, 2017
From: KAZI, ASIMUDDIN; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044363/0115 →
Continuity (5)
Continuation In Part 15656245 · Jul 21, 2017
Continuation In Part 15011807 · Feb 1, 2016
Continuation 14153366 · Jan 13, 2014
Provisional Application 61769595 · Feb 26, 2013
Related Publication 20180101305A1 · Apr 12, 2018