IP Library Granted Patent US 8,949,695
Granted Patent B2
US 8,949,695 · App. 12/712,773 · Granted Feb 3, 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 8,949,695
App. No.
12/712,773
Granted
Feb 3, 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 (57)

1. A method comprises:

encoding, by a distributed storage (DS) processing module, a data segment using a first layer of dispersed storage error encoding to produce a plurality of encoded slices;

identifying, by the DS processing module, storage units for storing the plurality of encoded slices;

selecting, by the DS processing module, an encoded slice of the plurality of encoded slices for a second layer of dispersed storage error encoding to produce a selected encoded slice;

outputting, by the DS processing module, the plurality of encoded slices to the storage units, wherein the storage units store the plurality of encoded data slices;

outputting, by the DS processing module, a command to a storage unit of the storage units corresponding to the selected encoded slice, wherein the command includes an instruction to encoding the selected encoded slice using the second layer of dispersed storage error encoding; and

encoding, by the storage unit, the selected encoded slice using the second layer of dispersed storage error encoding to produce a plurality of encoded sub-slices.

2. The method of claim 1 further comprises:

maintaining, by the DS processing module, a list of the storage units for storing the plurality of encoded slices less the selected encoded slice; and

maintaining, by the DS processing module, in the list the storage units receiving the command.

3. The method of claim 1 , wherein the command further comprises at least one of:

an instruction for storing plurality of encoded sub-slices in other-storage units; and

identity of the second layer of dispersed storage error encoding.

4. The method of claim 1 , wherein the selecting the encoded slice comprises:

determining a security threshold for the plurality of encoded slices based on a read threshold of the error encoding function; and

selecting a set of encoded slices from the plurality of encoded slices based on the security threshold, wherein the set of encoded slices includes the selected encoded slice.

5. The method of claim 1 , wherein the selecting the encoded slice comprises at least one of:

determining retrieval latency for each of the storage units;

determining priority of the selected encoded slice;

determining a data type of the data segment;

determining availability of each of the storage units; and

determining cost of storing an encoded slice of the plurality of encoded slices in each of the storage units.

6. The method of claim 1 further comprises:

outputting a second command to the storage units less the storage unit, wherein the second command includes an instruction not to perform the second layer of dispersed storage error encoding.

7. The method of claim 1 further comprises at least one of:

receiving, from the DS storage unit, information regarding the plurality of encoded sub-slices; and

receiving, from the DS storage unit, information regarding other storage units identified for storing the plurality of encoded sub-slices.

8. A distributed storage (DS) processing system comprises:

a first processing module operable to:

encode a data segment using a first layer of dispersed storage error encoding to produce a plurality of encoded slices;

identify storage units for storing the plurality of encoded slices;

select an encoded slice of the plurality of encoded slices for a second layer of dispersed storage error encoding to produce a selected encoded slice;

output, via a first network interface, the plurality of encoded slices to the storage units, wherein the storage units store the plurality of encoded data slices;

output, via the first network interface, a command to a storage unit of the storage units corresponding to the selected encoded slice, wherein the command includes an instruction to encoding the selected encoded slice using the second layer of dispersed storage error encoding;

a second processing module associated with the storage unit operable to encode the selected encoded slice using the second layer of dispersed storage error encoding to produce a plurality of encoded sub-slices.

9. The DS processing system of claim 8 further comprises:

memory, wherein the first processing module is further operable to:

maintain, in the memory, a list of the storage units for storing the plurality of encoded slices less the selected encoded slice; and

maintain in the list the storage unit receiving the command.

10. The DS processing system of claim 8 , wherein the command further comprises at least one of:

an instruction for storing plurality of encoded sub-slices in other storage units; and

identity of the second layer of dispersed storage error encoding.

11. The DS processing system of claim 8 , wherein the first processing module further functions to select the encoded slice by:

determining a security threshold for the plurality of encoded slices based on a read threshold of the error encoding function; and

selecting a set of encoded slices from the plurality of encoded slices based on the security threshold, wherein the set of encoded slices includes the selected encoded slice.

12. The DS processing system of claim 8 , wherein the first processing module further functions to select the encoded slice by at least one of:

determining retrieval latency for each of the storage units;

determining priority of the selected encoded slice;

determining a data type of the data segment;

determining availability of each of the storage units; and

determining cost of storing an encoded slice of the plurality of encoded slices in each of the storage units.

13. The DS processing system of claim 8 , wherein the first processing module further functions to:

output, via the network interface, a second command to the storage units less the DS storage unit, wherein the second command includes an instruction not to perform the second layer of dispersed storage error encoding.

14. The DS processing system of claim 8 , wherein the first processing module further functions to receive from the storage unit via the network interface at least one of:

information regarding the second layer of dispersed storage error encoding;

information regarding the plurality of encoded sub-slices; and

information regarding other storage units identified for storing the plurality of encoded sub-slices.

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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2010
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 023992/0456 →