IP Library Granted Patent US 9,189,336
Granted Patent B2
US 9,189,336 · App. 14/612,059 · Granted Nov 17, 2015

Method and apparatus for nested dispersed storage

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,189,336
App. No.
14/612,059
Granted
Nov 17, 2015
Kind
B2
Abstract

A method begins by a DS processing module generating a plurality of encoded slices from a data segment using an error encoding function. The method continues with the DS processing module identifying a plurality of DS storage units for storing the plurality of encoded slices. The method continues with the DS processing module selecting an encoded slice of the plurality of encoded slices for sub-slicing using a sub-slicing encoding function to produce a selected encoded slice. The method continues with the DS processing module outputting the plurality of encoded slices to the plurality of DS storage units. The method continues with the DS processing module outputting a command to a DS storage unit of the plurality of DS storage units corresponding to the selected encoded slice, wherein the command includes an instruction to sub-slice the selected encoded slice.

Claims (28)

1. A method for retrieving data from a dispersed storage network comprising:

processing a request to reconstruct a data segment at a processing module, in which the data segment is dispersed error encoded to produce a plurality of data slices and in which at least one data slice of the plurality of data slices is further dispersed error encoded to produce a respective plurality of data sub-slices, wherein the data slices and the data sub-slices are stored in a plurality of dispersed storage units;

identifying locations of the data slices and data sub-slices stored in the plurality of dispersed storage units; and

retrieving a first threshold number of the data slices to reconstruct the data segment and when retrieving a particular data slice, the particular data slice is further sub-sliced, the particular data slice is reconstructed by retrieving a second threshold number of respective data sub-slices corresponding to the particular data slice to reconstruct the particular data slice.

2. The method of claim 1 , wherein when identifying the locations, the processing module identifies the locations of the data slices and data sub-slices stored in the dispersed storage units.

3. The method of claim 2 , wherein the processing module sends instructions to retrieve the data slices and the data sub-slices to the plurality of dispersed storage units.

4. The method of claim 1 , wherein when identifying the locations, the processing module identifies the locations of the data slices stored in the plurality of dispersed storage units and for the at least one data slice having the respective plurality of data sub-slices, a corresponding dispersed storage unit or units storing the at least one data slice identifies the locations of the respective data sub-slices.

5. The method of claim 4 , wherein the processing module sends instructions to retrieve the data slices and corresponding dispersed storage units having the data slices that are further sub-sliced send instructions to retrieve the data sub-slices.

6. The method of claim 1 , wherein when identifying the locations, the locations are stored in a memory accessible by the dispersed storage network.

7. The method of claim 1 , wherein one or more data sub-slices are further sub-sliced into a respective plurality of data sub-sub-slices and, when retrieving a particular data sub-slice, a third threshold number of respective data sub-sub-slices corresponding to the particular data sub-slice is retrieved to reconstruct the particular data sub-slice.

8. The method of claim 1 , further comprising reconstructing the data segment from the retrieved data slices and data sub-slices.

9. An apparatus for retrieving data from a dispersed storage network comprising:

an interface configured to operate with the dispersed storage network; and

a processing module to reconstruct a data segment, in which the data segment is dispersed error encoded to produce a plurality of data slices and in which at least one data slice of the plurality of data slices is further dispersed error encoded to produce a respective plurality of data sub-slices, wherein the data slices and the data sub-slices are stored in a plurality of dispersed storage units, the processing module to identify locations of the data slices stored in the plurality of dispersed storage units, and the processing module to retrieve a first threshold number of the data slices to reconstruct the data segment and when retrieving a particular data slice, the particular data slice is further sub-sliced, the particular data slice is reconstructed by retrieving a second threshold number of respective data sub-slices corresponding to the particular data slice to reconstruct the particular data slice.

10. The apparatus of claim 9 , wherein the processing module also identifies the locations of the data sub-slices stored in the dispersed storage units for the at least one data slice having sub-slices.

11. The apparatus of claim 10 , wherein the processing module sends instructions to retrieve the data slices and the data sub-slices to the plurality of dispersed storage units.

12. The apparatus of claim 9 , wherein when the processing module attempts to retrieve the data slices stored in the plurality of dispersed storage units, for the at least one data slice having respective plurality of data sub-slices, causes a corresponding dispersed storage unit or units storing the at least one data slice to identify the locations of the respective data sub-slices.

13. The apparatus of claim 12 , wherein the processing module sends instructions to retrieve the data slices and corresponding dispersed storage units having the data slices that are further sub-sliced send instructions to retrieve the data sub-slices.

14. The apparatus of claim 9 , further comprising a memory configured to operate with the processing module to store the locations.

15. The apparatus of claim 9 , wherein the processing module reconstructs the data segment from the retrieved data slices and data sub-slices.

16. A non-transitory computer readable medium having stored thereon instructions which, when executed, performs operations to retrieve data from a dispersed storage network comprising:

processing a request to reconstruct a data segment at a processing module, in which the data segment is dispersed error encoded to produce a plurality of data slices and in which at least one data slice of the plurality of data slices is further dispersed error encoded to produce a respective plurality of data sub-slices, wherein the data slices and the data sub-slices are stored in a plurality of dispersed storage units;

identifying locations of the data slices stored in the plurality of dispersed storage units; and

retrieving a first threshold number of the data slices to reconstruct the data segment and when retrieving a particular data slice, the particular data slice is further sub-sliced, the particular data slice is reconstructed by retrieving a second threshold number of respective data sub-slices corresponding to the particular data slice to reconstruct the particular data slice.

17. The non-transitory computer readable medium of claim 16 , wherein the instructions, when executed, cause the processing module to also identify the locations of the data sub-slices stored in the dispersed storage units.

18. The non-transitory computer readable medium of claim 16 , wherein the instructions, when executed, cause the processing module to attempt to retrieve the data slices stored in the plurality of dispersed storage units, for the at least one data slice having respective plurality of data sub-slices, causes a corresponding dispersed storage unit or units storing the at least one data slice to identify the locations of the respective data sub-slices.

19. The non-transitory computer readable medium of claim 18 , wherein the instructions, when executed, cause the processing module to send instructions to retrieve the data slices and causes corresponding dispersed storage unit or units having the data slices that are further sub-sliced to send instructions to retrieve the data sub-slices.

20. The non-transitory computer readable medium of claim 16 , wherein the instructions, when executed, cause the processing module to reconstruct the data segment from the retrieved data slices and data sub-slices.

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 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →