IP Library Granted Patent US 9,563,507
Granted Patent B2
US 9,563,507 · App. 14/679,578 · Granted Feb 7, 2017

Rebuilding a data revision in a dispersed storage network

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 9,563,507
App. No.
14/679,578
Granted
Feb 7, 2017
Kind
B2
Abstract

A method begins by a processing module storing a set of encoded data slices in storage units. A data segment of data is encoded, in accordance with dispersed storage error encoding parameters, to produce the set of encoded data slices. The dispersed storage error encoding parameters include a decode threshold number and a pillar width number, which is at least twice the decode threshold number. The method continues with the processing module processing a first request for retrieval of the data segment by retrieving a first sub-set of encoded data slices, which includes the decode threshold number, and decoding them to produce a first recovered data segment. The method continues with the processing module processing a second request for retrieval of the data segment by retrieving a second sub-set of encoded data slices, which includes the decode threshold number, and decoding them to produce a second recovered data segment.

Claims (70)

1. A method for execution by a processing module of a computing device, the method comprises the steps of:

storing a set of encoded data slices in storage units of a dispersed storage network, wherein a data segment of data is encoded, in accordance with dispersed storage error encoding parameters, to produce the set of encoded data slices, wherein the dispersed storage error encoding parameters include a pillar width number that represents a total number of encoded data slices in the set of encoded data slices and a decode threshold number with represents a minimum number of encoded data slices that is needed to recover the data segment, and wherein the pillar width number is at least twice the decode threshold number;

processing a first request for retrieval of the data segment by:

retrieving a first sub-set of encoded data slices of the set of encoded data slices, wherein the first sub-set of encoded data slices includes the decode threshold number of encoded data slices;

decoding the first sub-set of encoded data slices to produce a first recovered data segment; and

processing a second request for retrieval of the data segment by:

retrieving a second sub-set of encoded data slices of the set of encoded data slices, wherein the second sub-set of encoded data slices includes the decode threshold number of encoded data slices;

decoding the second sub-set of encoded data slices to produce a second recovered data segment.

2. The method of claim 1 further comprises:

determining that the first sub-set of encoded data slices and the second sub-set of encoded data slices have different revision levels; and

determining a remedy for the difference in revision levels.

3. The method of claim 2 , wherein the remedy comprises one or more of:

rebuilding the first or the second sub-set of encoded data slices;

maintaining the first and second sub-set of encoded data slices; and

deleting the first or the second sub-set of encoded data slices.

4. The method of claim 1 further comprises:

processing a third request for retrieval of the data segment by:

retrieving a third sub-set of encoded data slices of the set of encoded data slices, wherein the third sub-set of encoded data slices includes the decode threshold number of encoded data slices;

decoding the third sub-set of encoded data slices to produce a third recovered data segment.

5. The method of claim 1 further comprises:

updating the first sub-set of encoded data slices with a more current revision level.

6. A computer comprises:

an interface;

a memory; and

a processing module operable to:

store a set of encoded data slices in storage units of a dispersed storage network, wherein a data segment of data is encoded, in accordance with dispersed storage error encoding parameters, to produce the set of encoded data slices, wherein the dispersed storage error encoding parameters include a pillar width number that represents a total number of encoded data slices in the set of encoded data slices and a decode threshold number with represents a minimum number of encoded data slices that is needed to recover the data segment, and wherein the pillar width number is at least twice the decode threshold number;

process a first request for retrieval of the data segment by:

retrieving a first sub-set of encoded data slices of the set of encoded data slices, wherein the first sub-set of encoded data slices includes the decode threshold number of encoded data slices;

decoding the first sub-set of encoded data slices to produce a first recovered data segment; and

process a second request for retrieval of the data segment by:

retrieving a second sub-set of encoded data slices of the set of encoded data slices, wherein the second sub-set of encoded data slices includes the decode threshold number of encoded data slices;

decoding the second sub-set of encoded data slices to produce a second recovered data segment.

7. The computer of claim 6 , wherein the processing module is further operable to:

determine that the first sub-set of encoded data slices and the second sub-set of encoded data slices have different revision levels; and

determine a remedy for the difference in revision levels.

8. The computer of claim 7 , wherein the remedy comprises one or more of:

rebuilding the first or the second sub-set of encoded data slices;

maintaining the first and second sub-set of encoded data slices; and

deleting the first or the second sub-set of encoded data slices.

9. The computer of claim 6 , wherein the processing module is further operable to:

process a third request for retrieval of the data segment by:

retrieving a third sub-set of encoded data slices of the set of encoded data slices, wherein the third sub-set of encoded data slices includes the decode threshold number of encoded data slices;

decoding the third sub-set of encoded data slices to produce a third recovered data segment.

10. The computer of claim 6 , wherein the processing module is further operable to:

update the first sub-set of encoded data slices with a more current revision level.

11. A non-transitory computer readable storage device comprises:

a first memory section that stores operational instructions that, when executed by a computing device, causes the computing device to:

store a set of encoded data slices in storage units of a dispersed storage network, wherein a data segment of data is encoded, in accordance with dispersed storage error encoding parameters, to produce the set of encoded data slices, wherein the dispersed storage error encoding parameters include a pillar width number that represents a total number of encoded data slices in the set of encoded data slices and a decode threshold number with represents a minimum number of encoded data slices that is needed to recover the data segment, and wherein the pillar width number is at least twice the decode threshold number; and

a second memory section that stores operational instructions that, when executed by the computing device, causes the computing device to:

process a first request for retrieval of the data segment by:

retrieving a first sub-set of encoded data slices of the set of encoded data slices, wherein the first sub-set of encoded data slices includes the decode threshold number of encoded data slices;

decoding the first sub-set of encoded data slices to produce a first recovered data segment; and

process a second request for retrieval of the data segment by:

retrieving a second sub-set of encoded data slices of the set of encoded data slices, wherein the second sub-set of encoded data slices includes the decode threshold number of encoded data slices;

decoding the second sub-set of encoded data slices to produce a second recovered data segment.

12. The non-transitory computer readable storage device of claim 11 further comprises:

a third memory section that stores operational instructions that, when executed by the computing device, causes the computing device to:

determine that the first sub-set of encoded data slices and the second sub-set of encoded data slices have different revision levels; and

determine a remedy for the difference in revision levels.

13. The non-transitory computer readable storage device of claim 12 , wherein the remedy comprises one or more of:

rebuilding the first or the second sub-set of encoded data slices;

maintaining the first and second sub-set of encoded data slices; and

deleting the first or the second sub-set of encoded data slices.

14. The non-transitory computer readable storage device of claim 11 , wherein the second memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

process a third request for retrieval of the data segment by:

retrieving a third sub-set of encoded data slices of the set of encoded data slices, wherein the third sub-set of encoded data slices includes the decode threshold number of encoded data slices;

decoding the third sub-set of encoded data slices to produce a third recovered data segment.

15. The non-transitory computer readable storage device of claim 11 further comprises:

a third memory section that stores operational instructions that, when executed by the computing device, causes the computing device to:

update the first sub-set of encoded data slices with a more current revision 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 May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →