IP Library Granted Patent US 10,740,180
Granted Patent B2
US 10,740,180 · App. 15/671,746 · Granted Aug 11, 2020

Storing and retrieving data using proxies

Inventors: Jason K. Resch (Chicago, IL); Wesley B. Leggette (Chicago, IL); Greg R. Dhuse (Chicago, IL); S. Christopher Gladwin (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/064G06F3/067G06F3/0619
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 10,740,180
App. No.
15/671,746
Granted
Aug 11, 2020
Kind
B2
Abstract

A method begins by a storage unit receiving a read request for a decode threshold number of encoded data slices (EDSs) of a set of EDSs. The method continues with the first storage unit determining whether to service the read request for an EDS stored in the storage unit, and when determining not to service the request, generating, by the storage unit, a read request for a second storage unit, where the second storage unit is in substantially the same geographic location, and stores one or more EDS of the set of EDSs that is not included in the decode threshold number of EDSs. The storage unit then transmits the read request for the second SU, instructing the second SU to service the request.

Claims (31)

1. A method for execution by a storage unit (SU), the method comprises:

receiving by an SU, via a dispersed or distributed storage network (DSN) from a requesting user device using an interface of the SU that is configured to interface and communicate with the DSN, a read request for a decode threshold number of encoded data slices (EDSs) of a set of EDSs that are distributedly stored among a plurality of SUs including the SU, wherein a data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs, and wherein the decode threshold number of EDSs are needed to recover the data segment, wherein the read request specifies a decode threshold number of SUs of the plurality of SUs that distributedly store the decode threshold number of EDSs of the set of EDSs;

determining, by the SU, whether to service the read request with a first encoded data slice (EDS) of the set of EDSs that is stored within the SU;

based on a determination not to respond to the read request, generating, by the SU, another read request for a second EDS of the set of EDSs that is stored within another SU of the plurality of SUs that is excluded from the decode threshold number of SUs, wherein the another SU is located in substantially a same geographic location as the SU; and

transmitting the another read request, by the SU, via the interface of the SU to the another SU to instruct the another SU to service the read request.

2. The method of claim 1 , wherein the read request for the decode threshold number of EDSs includes information sufficient to identify each EDS of the decode threshold number of EDSs and one or more EDSs of the set of EDS that is stored within another SU of the plurality of SUs that is excluded from the decode threshold number of SUs.

3. The method of claim 2 , wherein the read request for the decode threshold number of EDSs includes information sufficient to identify the another storage unit.

4. The method of claim 3 , wherein the read request for the decode threshold number of EDSs includes information sufficient to identify a third SU of the plurality of SUs that is excluded from the decode threshold number of SUs that stores one or more EDSs of the set of EDS and further wherein the third SU is in substantially the same geographic location as the SU and the another SU.

5. The method of claim 1 , wherein the SU and the another SU are associated with the same local area network.

6. The method of claim 1 , wherein the another read request is generated based on at least one of a performance level for the SU, interpreting system registry information, interpreting a predetermination, and interpreting the read request for the first EDS.

7. The method of claim 1 , wherein the determining whether to service the read request with the first EDS of the set of EDSs that is stored within the SU is based on a negotiation between the SU and the another SU.

8. The method of claim 1 , wherein the determining whether to service the read request with the first EDS of the set of EDSs that is stored within the SU is based on executing, by the SU, a deterministic algorithm.

9. The method of claim 1 , wherein the determining whether to service the read request with the first EDS of the set of EDSs that is stored within the SU, is at least partially based on interpreting, by the SU, a slice availability table.

10. The method of claim 1 , wherein the determining whether to service the read request with an EDS of the set of EDSs that is stored within the SU, is at least partially based on integrity of the first EDS.

11. A computer readable memory comprises:

a first memory element that stores operational instructions that, when executed by a first storage unit (SU) of a dispersed or distributed storage network (DSN), causes the first SU to:

receive, via the DSN, a read request for a decode threshold number of encoded data slices (EDSs) of a set of EDSs that are distributedly stored among a plurality of SUs including the first SU, wherein a data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs, and wherein the decode threshold number of EDSs are needed to recover the data segment, wherein the read request specifies a decode threshold number of SUs of the plurality of SUs that distributedly store the decode threshold number of EDSs of the set of EDSs;

a second memory element that stores operational instructions that, when executed by the first SU of the DSN, causes the first SU to:

determine whether to service the read request with a first EDS of the set of EDSs that is stored within the first SU;

based on a determination not to respond to the read request, generate another read request for a second EDS of the set of EDSs that is stored within a second SU of the plurality of SUs that is excluded from the decode threshold number of SUs, wherein the second SU is located in substantially a same geographic location as the SU; and

a third memory element that stores operational instructions that, when executed by the first SU of the DSN, causes the first SU to:

transmit the another read request via the interface of the SU to the second SU to instruct the second SU to service the read request.

12. The computer readable memory of claim 11 , wherein the read request for the decode threshold number of EDSs includes information sufficient to identify each EDS of the decode threshold number of EDSs and one or more EDSs of the set of EDS that is stored within the second SU of the plurality of SUs that is excluded from the decode threshold number of SUs.

13. The computer readable memory of claim 12 , wherein the read request for the decode threshold number of EDSs includes information sufficient to identify the second SU.

14. The computer readable memory of claim 13 , wherein the read request for the decode threshold number of EDSs includes information sufficient to identify a third SU of the plurality of SUs that is excluded from the decode threshold number of SUs that stores one or more EDSs of the set of EDS and further wherein the third SU is in substantially the same geographic location as the first SU and the second SU.

15. The computer readable memory of claim 11 wherein the SU and the second SU are associated with the same local area network.

16. The computer readable memory of claim 11 , wherein the another read request is generated based on at least one of a performance level for the first SU, interpreting system registry information, interpreting a predetermination, and interpreting the read request for the first EDS.

17. The computer readable memory of claim 11 wherein the determining whether to service the read request with the first EDS of the set of EDSs that is stored within the first SU is based on a negotiation between the first SU and the second SU.

18. The computer readable memory of claim 11 , wherein the determining whether to service the read request with the first EDS of the set of EDSs that is stored within the first SU is based on executing, by the first SU, a deterministic algorithm.

19. The computer readable memory of claim 11 , wherein the determining whether to service the read request with the first EDS of the set of EDSs that is stored within the first SU is, at least partially, based on interpreting, by the first SU, a slice availability table.

20. The computer readable memory of claim 11 , wherein the determining whether to service the read request with the first EDS of the set of EDSs that is stored within the first SU is, at least partially, based on integrity of the first EDS.

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 DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: RESCH, JASON K.; LEGGETTE, WESLEY B.; DHUSE, GREG R.; GLADWIN, S. CHRISTOPHER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043232/0852 →
Continuity (3)
Continuation In Part 14955200 · Dec 1, 2015
Provisional Application 62109700 · Jan 30, 2015
Related Publication 20170337108A1 · Nov 23, 2017