IP Library Granted Patent US 10,503,598
Granted Patent B2
US 10,503,598 · App. 16/151,108 · Granted Dec 10, 2019

Rebuilding data while reading data in a dispersed storage network

Inventors: Brennan James Trichardt (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F2211/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,503,598
App. No.
16/151,108
Granted
Dec 10, 2019
Kind
B2
Abstract

A method includes executing a read request regarding a set of encoded data slices stored in storage units of the DSN, where a data segment of data is encoded in accordance with a dispersed storage error coding function to produce the set of encoded data slices, and where a decode threshold number of encoded data slices of the set of encoded data slices is required to rebuild the data segment. The method further includes reconstructing the data segment from at least the decode threshold number of encoded data slices of the set of encoded data slices, where the at least the decode threshold number of encoded data slices are included in read responses from the storage units. The method further includes determining an encoded data slice not used in the reconstructing needs to be rebuilt and rebuilding the encoded data slice using the reconstructed data segment.

Claims (47)

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

executing a read request regarding a set of encoded data slices stored in storage units of the DSN, wherein a data segment of data is encoded in accordance with a dispersed storage error coding function to produce the set of encoded data slices, and wherein a decode threshold number of encoded data slices of the set of encoded data slices is required to rebuild the data segment;

reconstructing the data segment from at least the decode threshold number of encoded data slices of the set of encoded data slices, wherein the at least the decode threshold number of encoded data slices are included in read responses from the storage units;

determining an encoded data slice of the set of encoded data slices not used in the reconstructing needs to be rebuilt; and

rebuilding the encoded data slice using the reconstructed data segment.

2. The method of claim 1 , wherein the determining the encoded data slice requires rebuilding comprises:

interpreting a read response of the read responses to determine a revision error of the encoded data slice.

3. The method of claim 1 , wherein the determining the encoded data slice requires rebuilding comprises:

determining that an expected read response to the read request was not received.

4. The method of claim 1 , wherein the determining the encoded data slice requires rebuilding comprises:

interpreting a read response of the read responses to determine that the encoded data slice is corrupted.

5. The method of claim 1 , wherein the determining the encoded data slice requires rebuilding comprises:

interpreting a read response of the read responses to determine an integrity check value does not substantially match a known integrity check value for the encoded data slice.

6. The method of claim 1 , wherein the determining the encoded data slice requires rebuilding comprises:

determining the encoded data slice is flagged in a rebuilding list.

7. The method of claim 1 , wherein the determining the encoded data slice requires rebuilding comprises:

determining the encoded data slice as being previously identified during a rebuilding process.

8. The method of claim 1 further comprises:

subsequent to the reconstructing the data segment, determining to temporarily keep the reconstructed data segment until the expiration of a time period.

9. The method of claim 8 further comprises:

receiving a second read request for the set of encoded data slices; and

determining to use the reconstructed data segment in executing the second read request.

10. A computing device of a dispersed storage network (DSN) comprises:

an interface;

memory; and

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

execute a read request regarding a set of encoded data slices stored in storage units of the DSN, wherein a data segment of data is encoded in accordance with a dispersed storage error coding function to produce the set of encoded data slices, and wherein a decode threshold number of encoded data slices of the set of encoded data slices is required to rebuild the data segment;

reconstruct the data segment from at least the decode threshold number of encoded data slices of the set of encoded data slices, wherein the at least the decode threshold number of encoded data slices are included in read responses from the storage units;

determine an encoded data slice of the set of encoded data slices not used in the reconstructing needs to be rebuilt; and

rebuild the encoded data slice using the reconstructed data segment.

11. The computing device of claim 10 , wherein the processing module is operable to determine the encoded data slice requires rebuilding by:

interpreting a read response of the read responses to determine a revision error of the encoded data slice.

12. The computing device of claim 10 , wherein the processing module is operable to determine the encoded data slice requires rebuilding by:

determining that an expected read response to the read request was not received.

13. The computing device of claim 10 , wherein the processing module is operable to determine the encoded data slice requires rebuilding by:

interpreting a read response of the read responses to determine that the encoded data slice is corrupted.

14. The computing device of claim 10 , wherein the processing module is operable to determine the encoded data slice requires rebuilding by:

interpreting a read response of the read responses to determine an integrity check value does not substantially match a known integrity check value for the encoded data slice.

15. The computing device of claim 10 , wherein the processing module is operable to determine the encoded data slice requires rebuilding by:

determining the encoded data slice is flagged in a rebuilding list.

16. The computing device of claim 10 , wherein the processing module is operable to determine the encoded data slice requires rebuilding by:

determining the encoded data slice as being previously identified during a rebuilding process.

17. The computing device of claim 10 , wherein the processing module, subsequent to the reconstructing the data segment, is operable to:

determine to temporarily keep the reconstructed data segment until the expiration of a time period.

18. The computing device of claim 17 , wherein the processing module is further operable to:

receive, via the interface, a second read request for the set of encoded data slices; and

determine to use the reconstructed data segment in processing the second read request.

Assignments (6)
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 Oct 3, 2018
From: TRICHARDT, BRENNAN JAMES; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 047059/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2018
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047190/0069 →
Cited By (6)
US 12,204,403 US 12,242,337 US 12,282,686 US 12,346,561 US 12,405,857 US 12,417,176