IP Library Granted Patent US 9,262,288
Granted Patent B2
US 9,262,288 · App. 14/302,772 · Granted Feb 16, 2016

Autonomous dispersed storage system retrieval method

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,262,288
App. No.
14/302,772
Granted
Feb 16, 2016
Kind
B2
Abstract

A method for execution by a storage unit in a directory-less distributed storage network (DSN) begins by receiving a read request regarding a data segment of data. The method continues by determining, based on the read request, whether an encoded data slice of a set of encoded data slices is locally stored, wherein the data segment was dispersed storage error encoded to produce the set of encoded data slices. When the encoded data slices are locally stored, the method continues by generating a read response. The method continues by determining whether to forward the read request to another storage unit of the directory-less DSN. When the read request is to be forwarded, the method continues by identifying one or more storage units to which the read request is to be forwarded and the read request is then forwarded to the one or more identified storage units.

Claims (79)

1. A method for execution by a storage unit in a directory-less distributed storage network (DSN), the method comprises:

receiving a read request regarding a data segment of data;

determining, based on the read request, whether an encoded data slice of a set of encoded data slices is locally stored, wherein the data segment was dispersed storage error encoded to produce the set of encoded data slices;

when the encoded data slice is locally stored, generating a read response;

outputting the read response;

determining whether to forward the read request to another storage unit of the directory-less DSN;

when the read request is to be forwarded:

identifying one or more storage units of the directory-less DSN to which the read request is to be forwarded, wherein the identifying one or more storage units includes one or more of:

accessing a table of localized mapping regarding one or more neighboring storage units to identify the one or more storage units; and

receiving a message from a network management unit; and

forwarding the read request to the one or more identified storage units.

2. The method of claim 1 further comprises:

receiving a data object identifier within the read request;

determining whether slices names of stored encoded data slices within the storage unit include a corresponding portion that substantially matches the data object identifier; and

when one or more of the slices names of the stored encoded data slices has the corresponding portion that substantially matches the data object identifier, indicating that the encoded data slice is locally stored.

3. The method of claim 1 further comprises:

generating the read response to include the encoded data slice; and

outputting the read response to a request entity that sent the read request.

4. The method of claim 1 further comprises:

generating the read response to include a slice name of the encoded data slice;

outputting the read response to a request entity that sent the read request;

receiving a slice read request from the request entity, wherein the slice read request includes the slice name; and

generating a second read response to include the encoded data slice; and

outputting the second read response to the request entity.

5. The method of claim 1 further comprises:

generating the read response to include the encoded data slice; and

outputting the read response to the identified one or more storage units.

6. The method of claim 1 further comprises:

generating the read response to include a slice name of the encoded data slice; and

outputting the read response to the identified one or more storage units.

7. The method of claim 1 , wherein the determining whether to forward the read request to another storage unit comprises:

receiving the read request for a second other storage unit as a forward read request, wherein the forward read request includes propagated response information regarding a number of encoded data slices of the set of encoded data slices that have been identified in response to the read request;

when the number of encoded data slices that have been identified in response to the request plus the encoded data slice is equal to or greater than a decode threshold, indicating that the read request does not require forwarding; and

when the number of encoded data slices that have been identified in response to the request plus the encoded data slice is less than the decode threshold, indicating that the read request is to be forwarded.

8. The method of claim 1 , wherein the identifying one or more storage units further comprises:

determining whether slices names of stored encoded data slices within the storage unit include a corresponding portion that substantially matches a data object identifier;

when a slice name of the slice names includes a corresponding portion that substantially matches the data object identifier, generating slices names of other slices of the set of encoded data slices; and

identifying the one more storage units based on one or more of the generated slices names of the other slices.

9. A storage unit operable in a directory-less distributed storage network (DSN) comprises:

an interface;

memory; and

a processing module operably coupled to the interface and to the memory, wherein the processing module is operable to:

receive, via the interface, a read request regarding a data segment of data;

determine, based on the read request, whether an encoded data slice of a set of encoded data slices is locally stored, wherein the data segment was dispersed storage error encoded to produce the set of encoded data slices;

when the encoded data slices is locally stored, generate a read response;

output, via the interface, the read response;

determine whether to forward the read request to another storage unit of the directory-less DSN;

when the read request is to be forwarded:

identify one or more storage units of the directory-less DSN to which the read request is to be forwarded, wherein the identifying one or more storage units includes one or more of:

accessing a table of localized mapping regarding one or more neighboring storage units to identify the one or more storage units; and

receiving a message from a network management unit; and

forward, via the interface, the read request to the one or more identified storage units.

10. The storage unit of claim 9 , wherein the processing module further functions to:

receive a data object identifier within the read request;

determine whether slice names of stored encoded data slices within the storage unit include a corresponding portion that substantially matches the data object identifier; and

when one or more of the slice names of the stored encoded data slices has the corresponding portion that substantially matches the data object identifier, indicate that the encoded data slice is locally stored.

11. The storage unit of claim 9 , wherein the processing module further functions to:

generate the read response to include the encoded data slice; and

output the read response to a request entity that sent the read request.

12. The storage unit of claim 9 , wherein the processing module further functions to:

generate the read response to include a slice name of the encoded data slice;

output the read response to a request entity that sent the read request;

receive a slice read request from the request entity, wherein the slice read request includes the slice name; and

generate a second read response to include the encoded data slice; and

output the second read response to the request entity.

13. The storage unit of claim 9 , wherein the processing module further functions to:

generate the read response to include the encoded data slice; and

output the read response to the identified one or more storage units.

14. The storage unit of claim 9 , wherein the processing module further functions to:

generate the read response to include a slice name of the encoded data slice; and

output the read response to the identified one or more storage units.

15. The storage unit of claim 9 , wherein the processing module in the determining whether to forward the read request to another storage unit further functions to:

receive the read request for a second other storage unit as a forward read request, wherein the forward read request includes propagated response information regarding a number of encoded data slices of the set of encoded data slices that have been identified in response to the read request;

when the number of encoded data slices that have been identified in response to the request plus the encoded data slice is equal to or greater than a decode threshold, indicate that the read request does not require forwarding; and

when the number of encoded data slices that have been identified in response to the request plus the encoded data slice is less than the decode threshold, indicate that the read request is to be forwarded.

16. The storage unit of claim 9 , wherein the processing module in the identifying the one or more storage units further functions to:

determine whether slice names of stored encoded data slices within the storage unit include a corresponding portion that substantially matches a data object identifier;

when a slice name of the slice names includes a corresponding portion that substantially matches the data object identifier, generate slice names of other slices of the set of encoded data slices; and

identify the one more storage units based on one or more of the generated slice names of the other 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 Jul 20, 2014
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 033347/0903 →