IP Library Granted Patent US 8,683,286
Granted Patent B2
US 8,683,286 · App. 13/611,803 · Granted Mar 25, 2014

Storing data 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 8,683,286
App. No.
13/611,803
Granted
Mar 25, 2014
Kind
B2
Abstract

A method begins for a first group of data segments by a dispersed storage (DS) processing module selecting a first vault parameter set from a plurality of vault parameter sets and generating a first plurality of sets of slice names for a first plurality of sets of encoded slices in accordance with the first vault parameter set. The method continues for a second group of data segments with the DS processing module selecting a second vault parameter set from the plurality of vault parameter sets and generating a second plurality of sets of slice names for a second plurality of sets of encoded slices in accordance with the second vault parameter set.

Claims (90)

1. A method for execution by a computing device, the method comprises:

receiving first data for storage in a vault of a dispersed storage network (DSN) memory, wherein the DSN memory includes a plurality of storage nodes, wherein the vault is a virtual memory within the DSN memory and includes multiple storage nodes;

selecting, for storing the first data in the vault, a first vault parameter set from a plurality of vault parameter sets associated with the vault, wherein the first vault parameter set includes a first per set decode threshold and a first total number of encoded data slices per set regarding dispersed error encoding data segments of the first data;

encoding the data segments of the first data in accordance with the first vault parameter set to produce a first plurality of sets of encoded slices;

outputting the first plurality of sets of encoded data slices for storage in the vault;

receiving second data for storage in the vault of the DSN memory;

selecting, for storing the second data, a second vault parameter set from the plurality of vault parameter sets associated with the vault, wherein the second vault parameter set includes a second per set decode threshold and a first total number of encoded data slices per set regarding dispersed error encoding data segments of the second data;

encoding the data segments of the second data in accordance with the second vault parameter set to produce a second plurality of sets of encoded slices, wherein a set of encoded data slices of the first plurality of sets of encoded data slices includes less encoded data slices than a set of encoded data slices of the second plurality of sets of encoded data slices; and

outputting the second plurality of sets of encoded data slices for storage in the vault.

2. The method of claim 1 further comprises:

selecting the first vault parameter set based on one or more of:

identifying a storage requirement for the first data; and

interpreting metadata associated with the first data; and

selecting the second vault parameter set based on one or more of:

identifying a storage requirement for the second data; and

interpreting metadata associated with the second data.

3. The method of claim 1 further comprises:

the first set of parameters including identity of a first dispersed storage error encoding algorithm and first error coding redundancy information; and

the second set of parameters including identity of a second dispersed storage error encoding algorithm and second error coding redundancy information.

4. The method of claim 1 further comprises:

generating a first plurality of sets of slice names for the first plurality of sets of encoded slices in accordance with the first vault parameter set, wherein a slice name of the first plurality of sets of slice names includes a vault identifier, a first vault parameter set identifier, and a common object name for the first data; and

generating a second plurality of sets of slice names for the second plurality of sets of encoded slices in accordance with the second vault parameter set, wherein a slice name of the second plurality of sets of slice names includes the vault identifier, a second vault parameter set identifier, and a common object name for the second data.

5. The method of claim 4 further comprises:

the slice name of the first plurality of sets of slice names further including a first slice index and a first segment number, wherein the first slice index corresponds to a slice number within a set of the first plurality of sets of encoded slices and the first segment number corresponds to a data segment number of the first group of data segments; and

the slice name of the second plurality of sets of slice names further including a second slice index and a second segment number, wherein the second slice index corresponds to a slice number within a set of the second plurality of sets of encoded slices and the second segment number corresponds to a data segment number of the second group of data segments.

6. The method of claim 1 further comprises:

obtaining first metadata regarding the first data; and

for the first metadata:

selecting a third vault parameter set from the plurality of vault parameter sets, wherein the third vault parameter set includes a third set of parameters regarding dispersed error encoding the first metadata;

encoding the first metadata in accordance with the third vault parameter set to produce a first set of metadata encoded slices; and

outputting the first set of metadata encoded slices for storage in a third set of the multiple storage nodes of the vault.

7. The method of claim 1 further comprises:

obtaining second metadata regarding the second data; and

for the second metadata:

selecting a third vault parameter set from the plurality of vault parameter sets, wherein the third vault parameter set includes a third set of parameters regarding dispersed error encoding the second metadata;

encoding the second metadata in accordance with the third vault parameter set to produce a second set of metadata encoded slices; and

outputting the second set of metadata encoded slices for storage in a third set of the multiple storage nodes of the vault.

8. The method of claim 1 further comprises:

the first data including one of a first file, a first data object, a first data block, a first data stream, and a first file directory object; and

the second data including one of a second file, a second data object, a second data block, a second data stream, and a second file directory object.

9. A dispersed storage (DS) module comprises:

a first module, when operable within a computing device, causes the computing device to:

receive first data for storage in a vault of a dispersed storage network (DSN) memory, wherein the DSN memory includes a plurality of storage nodes, wherein the vault is a virtual memory within the DSN memory and includes multiple storage nodes; and

receiving second data for storage in the vault of the DSN memory;

a second module, when operable within the computing device, causes the computing device to:

select, for storing the first data in the vault, a first vault parameter set from a plurality of vault parameter sets associated with the vault, wherein the first vault parameter set includes a first per set decode threshold and a first total number of encoded data slices per set regarding dispersed error encoding data segments of the first group of data segments; and

select, for storing the second data in the vault, a second vault parameter set from the plurality of vault parameter sets associated with the vault, wherein the second vault parameter set includes a second per set decode threshold and a second total number of encoded data slices per set regarding dispersed error encoding data segments of the second group of data segments;

a third module, when operable within the computing device, causes the computing device to:

encode the data segments of the first data in accordance with the first vault parameter set to produce a first plurality of sets of encoded slices; and

encode the data segments of the second data in accordance with the second vault parameter set to produce a second plurality of sets of encoded slices, wherein a set of encoded data slices of the first plurality of sets of encoded data slices includes less encoded data slices than a set of encoded data slices of the second plurality of sets of encoded data slices; and

a fourth module, when operable within the computing device, causes the computing device to:

output the first plurality of sets of encoded data slices for storage in the vault; and

output the second plurality of sets of encoded data slices for storage in the vault.

10. The DS module of claim 9 further comprises:

the second module further functions to:

select the first vault parameter set based on one or more of:

identifying a storage requirement for the first data; and

interpreting metadata associated with the first data; and

select the second vault parameter set based on one or more of:

identifying a storage requirement for the second data; and

interpreting metadata associated with the second data.

11. The DS module of claim 9 further comprises:

the first set of parameters including identity of a first dispersed storage error encoding algorithm and first error coding redundancy information; and

the second set of parameters including identity of a second dispersed storage error encoding algorithm and second error coding redundancy information.

12. The DS module of claim 9 further comprises:

a fifth module, when operable within the computing device, causes the computing device to:

generate a first plurality of sets of slice names for the first plurality of sets of encoded slices in accordance with the first vault parameter set, wherein a slice name of the first plurality of sets of slice names includes a vault identifier, a first vault parameter set identifier, and a common object name for the first data; and

generate a second plurality of sets of slice names for the second plurality of sets of encoded slices in accordance with the second vault parameter set, wherein a slice name of the second plurality of sets of slice names includes the vault identifier, a second vault parameter set identifier, and a common object name for the second data.

13. The DS module of claim 12 further comprises:

the slice name of the first plurality of sets of slice names further including a first slice index and a first segment number, wherein the first slice index corresponds to a slice number within a set of the first plurality of sets of encoded slices and the first segment number corresponds to a data segment number of the first group of data segments; and

the slice name of the second plurality of sets of slice names further including a second slice index and a second segment number, wherein the second slice index corresponds to a slice number within a set of the second plurality of sets of encoded slices and the second segment number corresponds to a data segment number of the second group of data segments.

14. The DS module of claim 9 further comprises:

the second module further functions to:

obtain first metadata regarding the first data; and

for the first metadata, select a third vault parameter set from the plurality of vault parameter sets, wherein the third vault parameter set includes a third set of parameters regarding dispersed error encoding the first metadata;

the third module further functions to:

encode the first metadata in accordance with the third vault parameter set to produce a first set of metadata encoded slices; and

the fourth module further functions to:

output the first set of metadata encoded slices for storage in a third set of the multiple storage nodes of the vault.

15. The DS module of claim 9 further comprises:

the second module further functions to:

obtain second metadata regarding the second data; and

for the second metadata, select a third vault parameter set from the plurality of vault parameter sets, wherein the third vault parameter set includes a third set of parameters regarding dispersed error encoding the second metadata;

the third module further functions to:

encode the second metadata in accordance with the third vault parameter set to produce a second set of metadata encoded slices; and

the fourth module further functions to:

output the second set of metadata encoded slices for storage in a third set of the multiple storage nodes of the vault.

16. The DS module of claim 9 further comprises:

the first data includes one of a first file, a first data object, a first data block, a first data stream, and a first file directory object; and

the second data includes one of a second file, a second data object, a second data block, a second data stream, and a second file directory object.

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 Sep 12, 2012
From: GLADWIN, S. CHRISTOPHER; LEGGETTE, WESLEY; BAPTIST, ANDREW; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 028948/0889 →