IP Library Granted Patent US 8,566,354
Granted Patent B2
US 8,566,354 · App. 13/021,537 · Granted Oct 22, 2013

Storage and retrieval of required slices 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,566,354
App. No.
13/021,537
Granted
Oct 22, 2013
Kind
B2
Abstract

A method begins by a processing module determining whether one or more encoded data slices of a set of encoded data slices of a plurality of sets of encoded data slices are required encoded data slices to produce one or more required encoded data slices. When the one or more of the encoded data slices are required, the method continues with the processing module generating specific dispersed storage network (DSN) storage information for each of the one or more required encoded data slices, generating general DSN storage information for remaining encoded data slices of the set of encoded data slices, and sending the set of encoded data slices to a dispersed storage network in accordance with the specific DSN storage information and the general DSN storage information.

Claims (106)

1. A method comprises:

error encoding a data segment in accordance with a dispersed storage error coding function to produce a set of encoded data slices, wherein the dispersed storage error coding function allows for loss of some encoded data slices of the set of encoded data slices while still allowing the data segment to be recovered from the set of encoded data slices as long as a threshold number of encoded data slices of the set of encoded data slices are retrievable;

determining, for security, whether one or more of the encoded data slices of the set of encoded data slices are to be required encoded data slices to produce one or more required encoded data slices, wherein the one or more required encoded data slices are required to be retrieved when at least the threshold number of encoded data slices of the set of encoded data slices are retrieved for recovering the data segment; and

when the one or more of the encoded data slices are required:

generating specific dispersed storage network (DSN) storage information for each of the one or more required encoded data slices;

generating general DSN storage information for remaining encoded data slices of the set of encoded data slices; and

sending the set of encoded data slices to a dispersed storage network in accordance with the specific DSN storage information and the general DSN storage information.

2. The method of claim 1 , wherein the specific DSN storage information comprises:

for a first one of the one or more required encoded data slices, a first dispersed storage (DS) unit identification code, a first slice name, and a first instruction to store the first one of the one or more required encoded data slices based on the first slice name at a first DS unit that corresponds to the first DS unit identification code; and

for a second one of the one or more required encoded data slices, a second DS unit identification code, a second slice name, and a second instruction to store the second one of the one or more required encoded data slices based on the second slice name at a second DS unit that corresponds to the second DS unit identification code.

3. The method of claim 1 , wherein the general DSN storage information comprises:

identification codes for a set of dispersed storage (DS) units and an instruction to store the remaining encoded data slices in the set of DS units.

4. The method of claim 1 , wherein the determining whether the one or more of the encoded data slices are required comprises at least one of:

determining a security protocol for the plurality of sets of encoded data slices, wherein the security protocol indicates a use of required encoded data slices; and

determining a performance protocol for the plurality of sets of encoded data slices, wherein the performance protocol indicates the use of required encoded data slices.

5. The method of claim 4 , wherein the indication of use comprises at least one of:

identifying one or more specific encoded data slices as the one or more required encoded data slices; and

determining the one or more required data slices based on one or more of:

selecting one or more dispersed storage error coding parameters;

analyzing a DS unit operational information;

performing a vault lookup;

interpreting a storage request message; and

interpreting a command.

6. The method of claim 1 further comprises:

appending additional data to at least one of the one or more required encoded data slices.

7. The method of claim 1 further comprises:

determining whether a favorable storage response message was received within a storage time period for the one or more required encoded data slices;

when the favorable storage response message was not received, determining alternate specific DSN storage information for at least one of the one or more required encoded data slices; and

sending the at least one of the one or more required encoded data slices to the dispersed storage network in accordance with the alternate specific DSN storage information.

8. A method comprises:

receiving at least a threshold number of encoded data slices of a set of encoded data slices wherein a data segment was encoded in accordance with a dispersed storage error coding function to produce a set of encoded data slices that is stored in a distributed storage network (DSN) memory, wherein the dispersed storage error coding function allows for loss of some encoded data slices of the set of encoded data slices while still allowing the data segment to be recovered from the set of encoded data slices as long as the threshold number of encoded data slices of the set of encoded data slices are retrievable;

determining whether one or more encoded data slices of the set of encoded data slices are required encoded data slices to produce one or more required encoded data slices; and

when the one or more of the encoded data slices are required:

determining whether the one or more required encoded data slices are included in the at least the threshold number of encoded data slices;

when at least one of the one or more required encoded data slices was not received, determining a subsequent data retrieval approach based on specific DSN retrieval information; and

requesting retrieval of the at least one of the one or more required encoded data slices in accordance with the subsequent data retrieval approach.

9. The method of claim 8 , wherein the determining whether the one or more of the encoded data slices are required comprises:

determining a security protocol for the set of encoded data slices, wherein the security protocol indicates a use of required encoded data slices; and

determining a performance protocol for the set of encoded data slices, wherein the performance protocol indicates the use of required encoded data slices.

10. The method of claim 9 , wherein the indication of use comprises at least one of:

identifying one or more specific encoded data slices as the one or more required encoded data slices; and

determining the one or more required data slices based on one or more of:

selecting one or more dispersed storage error coding parameters;

performing a vault lookup;

interpreting a storage request message; and

interpreting a command.

11. The method of claim 8 , wherein the determining the subsequent data retrieval approach comprises:

determining to re-request retrieval of the at least one of the one or more required encoded data slices;

determining whether the specific DSN retrieval information includes alternate specific DSN retrieval information; and

determining whether a lower quality data retrieval method is allowed.

12. A computer comprises:

an interface;

a memory; and

a processing module operable to:

error encode a data segment in accordance with a dispersed storage error coding function to produce a set of encoded data slices, wherein the dispersed storage error coding function allows for loss of some encoded data slices of the set of encoded data slices while still allowing the data segment to be recovered from the set of encoded data slices as long as a threshold number of encoded data slices of the set of encoded data slices are retrievable;

determine, for security, whether one or more of the encoded data slices of the set of encoded data slices are to be required encoded data slices to produce one or more required encoded data slices, wherein the one or more required encoded data slices are required to be retrieved when at least the threshold number of encoded data slices of the set of encoded data slices are retrieved for recovering the data segment; and

when the one or more of the encoded data slices are required:

generate specific dispersed storage network (DSN) storage information for each of the one or more required encoded data slices;

generate general DSN storage information for remaining encoded data slices of the set of encoded data slices; and

send, via the interface, the set of encoded data slices to a dispersed storage network in accordance with the specific DSN storage information and the general DSN storage information.

13. The computer of claim 12 , wherein the specific DSN storage information comprises:

for a first one of the one or more required encoded data slices, a first dispersed storage (DS) unit identification code, a first slice name, and a first instruction to store the first one of the one or more required encoded data slices based on the first slice name at a first DS unit that corresponds to the first DS unit identification code; and

for a second one of the one or more required encoded data slices, a second DS unit identification code, a second slice name, and a second instruction to store the second one of the one or more required encoded data slices based on the second slice name at a second DS unit that corresponds to the second DS unit identification code.

14. The computer of claim 12 , wherein the general DSN storage information comprises:

identification codes for a set of dispersed storage (DS) units and an instruction to store the remaining encoded data slices in the set of DS units.

15. The computer of claim 12 , wherein the processing module functions to determine whether the one or more of the encoded data slices are required by at least one of:

determining a security protocol for the plurality of sets of encoded data slices, wherein the security protocol indicates a use of required encoded data slices; and

determining a performance protocol for the plurality of sets of encoded data slices, wherein the performance protocol indicates the use of required encoded data slices.

16. The computer of claim 15 , wherein the processing module functions to determine the indication of use by at least one of:

identifying one or more specific encoded data slices as the one or more required encoded data slices; and

determining the one or more required data slices based on one or more of:

selecting one or more dispersed storage error coding parameters;

analyzing a DS unit operational information;

performing a vault lookup;

interpreting a storage request message; and

interpreting a command.

17. The computer of claim 12 , wherein the processing module further functions to:

append additional data to at least one of the one or more required encoded data slices.

18. The computer of claim 12 , wherein the processing module further functions to:

determine whether a favorable storage response message was received within a storage time period for the one or more required encoded data slices;

when the favorable storage response message was not received, determine alternate specific DSN storage information for at least one of the one or more required encoded data slices; and

send, via the interface, the at least one of the one or more required encoded data slices to the dispersed storage network in accordance with the alternate specific DSN storage information.

19. A computer comprises:

an interface;

a memory; and

a processing module operable to:

receive, via the interface, at least a threshold number of encoded data slices of a set of encoded data slices wherein a data segment was encoded in accordance with a dispersed storage error coding function to produce a set of encoded data slices that is stored in a distributed storage network (DSN) memory, wherein the dispersed storage error coding function allows for loss of some encoded data slices of the set of encoded data slices while still allowing the data segment to be recovered from the set of encoded data slices as long as the threshold number of encoded data slices of the set of encoded data slices are retrievable;

determine whether one or more encoded data slices of the set of encoded data slices are required encoded data slices to produce one or more required encoded data slices; and

when the one or more of the encoded data slices are required:

determine whether the one or more required encoded data slices are included in the at least the threshold number of encoded data slices;

when at least one of the one or more required encoded data slices was not received, determine a subsequent data retrieval approach based on the specific DSN retrieval information; and

request retrieval of the at least one of the one or more required encoded data slices in accordance with the subsequent data retrieval approach.

20. The computer of claim 19 , wherein the processing module functions to determine whether the one or more of the encoded data slices are required by:

determining a security protocol for the plurality of sets of encoded data slices, wherein the security protocol indicates a use of required encoded data slices; and

determining a performance protocol for the plurality of sets of encoded data slices, wherein the performance protocol indicates the use of required encoded data slices.

21. The computer of claim 20 , wherein the processing module functions to determine the indication of use by at least one of:

identifying one or more specific encoded data slices as the one or more required encoded data slices; and

determining the one or more required data slices based on one or more of:

selecting one or more dispersed storage error coding parameters;

performing a vault lookup;

interpreting a storage request message; and

interpreting a command.

22. The computer of claim 19 , wherein the processing module functions to determine the subsequent data retrieval approach by:

determining to re-request retrieval of the at least one of the one or more required encoded data slices;

determining whether the specific DSN retrieval information includes alternate specific DSN retrieval information; and

determining whether a lower quality data retrieval method is allowed.

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 10, 2011
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 025793/0751 →