IP Library Granted Patent US 10,042,566
Granted Patent B2
US 10,042,566 · App. 15/249,187 · Granted Aug 7, 2018

Intelligent read strategy within a dispersed storage network (DSN)

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,042,566
App. No.
15/249,187
Granted
Aug 7, 2018
Kind
B2
Abstract

A computing device includes an interface configured to interface and communicate with a dispersed storage network (DSN), a memory that stores operational instructions, and a processing module operably coupled to the interface and memory such that the processing module, when operable within the computing device based on the operational instructions, is configured to perform various operations. For example, the computing device generates and transmits a read request for a set of encoded data slices (EDSs) of a data object to primary storage units (SUs). The data object is stored within primary and secondary SUs. The computing device then receives at least the read threshold number of EDSs from the plurality of primary SUs. The primary SUs operate selectively to provide the at least the read threshold number of EDSs to the computing device either from memory of primary SU(s) or from secondary SU(s).

Claims (50)

1. A computing device comprising:

an interface configured to interface and communicate with a dispersed storage network (DSN);

memory that stores operational instructions; and

a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the computing device based on the operational instructions, is configured to:

generate a read request for a set of encoded data slices (EDSs) of a data object that is distributedly stored within a plurality of primary storage units (SUs) and a plurality of secondary SUs within the DSN, wherein the read request includes a read extra request that specifies at least one of more than a read threshold number of EDSs from the plurality of primary SUs or instruction to a SU of the plurality of primary SUs to forward the read request to at least one SU of the plurality of secondary SUs when a DSN operational characteristic compares unfavorably to an acceptable DSN operational characteristic as determined by the computing device, wherein sets of EDSs of the data object are distributedly stored within the plurality of primary SUs and the plurality of secondary SUs within the DSN, wherein the 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 that is of pillar width, wherein a decode threshold number of EDSs are needed to recover the data segment, wherein the read threshold number of EDSs provides for reconstruction of the data segment, wherein a write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN;

transmit via the interface and via the DSN the read request for the set of EDSs of the data object to the plurality of primary SUs within the DSN; and

receive via the interface and via the DSN at least the read threshold number of EDSs from the plurality of primary SUs, wherein:

the SU of the plurality of primary SUs provides an EDS of the set of EDSs from memory of the SU of the plurality of primary SUs to the computing device via the DSN and via the interface when the EDS of the set of EDSs is stored and available within the SU of the plurality of primary SUs; and

the SU of the plurality of primary SUs provides the EDS of the set of EDSs to the computing device via the DSN and via the interface after receipt thereof from a SU of the plurality of secondary SUs when at least one of the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the SU of the plurality of primary SUs or the EDS of the set of EDSs is unavailable within the memory of the SU of the plurality of primary SUs.

2. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

identify the plurality of primary SUs among a plurality of overall SUs of the DSN based on an affinity of the plurality of primary SUs that specifies an estimated likelihood that the set of EDSs are stored within the plurality of primary SUs.

3. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

generate the read request for the set of EDSs of the data object to specify instruction for the SU of the plurality of primary SUs to generate another read extra request that specifies the more than the read threshold number of EDSs based on the read request forwarded from the SU of the plurality of primary SUs and to transmit the another read extra request to the at least one SU of the plurality of secondary SUs.

4. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

generate the read request for the set of EDSs of the data object that is stored within the plurality of primary SUs and the plurality of secondary SUs within the DSN, wherein the read request specifies no more than the read threshold number of EDSs when the DSN operational characteristic compares favorably to the acceptable DSN operational characteristic as determined by the computing device; and

receive the read threshold number of EDSs from the plurality of primary SUs in response to the plurality of primary SUs.

5. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

instruct at least one SU of the plurality of primary SUs to generate at least one redundant EDS based on at least one EDS of the set of EDSs and to transmit the at least one redundant EDS to the at least one SU of the plurality of secondary SUs for storage therein when the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the computing device.

6. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

instruct at least one SU of the plurality of primary SUs to generate a copy of the set of EDSs and to transmit the copy of the set of EDSs to the plurality of secondary SUs for storage therein when the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the computing device.

7. The computing device of claim 1 , wherein:

the read extra request specifies a first number of EDSs that is more than the read threshold number of EDSs from the plurality of primary SUs when the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the computing device within a first unfavorable comparison range; and

the read extra request specifies a second number of EDSs that is more than the read threshold number of EDSs from the plurality of primary SUs when the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the computing device within a second unfavorable comparison range.

8. The computing device of claim 1 , wherein the computing device is located at a first premises that is remotely located from at least one SU of the plurality of primary SUs or plurality of secondary SUs the within the DSN.

9. The computing device of claim 1 further comprising:

a SU of the plurality of primary SUs or the plurality of secondary SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

10. The computing device of claim 1 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

11. A method for execution by a computing device, the method comprising:

generating a read request for a set of encoded data slices (EDSs) of a data object that is distributedly stored within a plurality of primary storage units (SUs) and a plurality of secondary SUs within a dispersed storage network (DSN), wherein the read request includes a read extra request that specifies at least one of more than a read threshold number of EDSs from the plurality of primary SUs or instruction to a SU of the plurality of primary SUs to forward the read request to at least one SU of the plurality of secondary SUs when a DSN operational characteristic compares unfavorably to an acceptable DSN operational characteristic as determined by the computing device, wherein sets of EDSs of the data object are distributedly stored within the plurality of primary SUs and the plurality of secondary SUs within the DSN, wherein the 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 that is of pillar width, wherein a decode threshold number of EDSs are needed to recover the data segment, wherein the read threshold number of EDSs provides for reconstruction of the data segment, wherein a write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN;

transmitting, via an interface of the computing device configured to interface and communicate with the DSN and via the DSN, the read request for the set of EDSs of the data object to the plurality of primary SUs within the DSN; and

receiving, via the interface of the computing device configured to interface and communicate with the DSN and via the DSN, at least the read threshold number of EDSs from the plurality of primary SUs, wherein:

the SU of the plurality of primary SUs provides an EDS of the set of EDSs from memory of the SU of the plurality of primary SUs to the computing device via the DSN and via the interface when the EDS of the set of EDSs is stored and available within the SU of the plurality of primary SUs; and

the SU of the plurality of primary SUs provides the EDS of the set of EDSs to the computing device via the DSN and via the interface after receipt thereof from a SU of the plurality of secondary SUs when at least one of the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the SU of the plurality of primary SUs or the EDS of the set of EDSs is unavailable within the memory of the SU of the plurality of primary SUs.

12. The method of claim 11 further comprising:

identifying the plurality of primary SUs among a plurality of overall SUs of the DSN based on an affinity of the plurality of primary SUs that specifies an estimated likelihood that the set of EDSs are stored within the plurality of primary SUs.

13. The method of claim 11 further comprising:

generating the read request for the set of EDSs of the data object to specify instruction for the SU of the plurality of primary SUs to generate another read extra request that specifies the more than the read threshold number of EDSs based on the read request forwarded from the SU of the plurality of primary SUs and to transmit the another read extra request to the at least one SU of the plurality of secondary SUs.

14. The method of claim 11 further comprising:

generating the read request for the set of EDSs of the data object that is stored within the plurality of primary SUs and the plurality of secondary SUs within the DSN, wherein the read request specifies no more than the read threshold number of EDSs when the DSN operational characteristic compares favorably to the acceptable DSN operational characteristic as determined by the computing device; and

receiving, via the interface of the computing device configured to interface and communicate with the DSN, the read threshold number of EDSs from the plurality of primary SUs in response to the plurality of primary SUs.

15. The method of claim 11 further comprising:

instructing at least one SU of the plurality of primary SUs to generate at least one redundant EDS based on at least one EDS of the set of EDSs and to transmit the at least one redundant EDS to the at least one SU of the plurality of secondary SUs for storage therein when the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the computing device.

16. The method of claim 11 further comprising:

instructing at least one SU of the plurality of primary SUs to generate a copy of the set of EDSs and to transmit the copy of the set of EDSs to the plurality of secondary SUs for storage therein when the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the computing device.

17. The method of claim 11 , wherein:

the read extra request specifies a first number of EDSs that is more than the read threshold number of EDSs from the plurality of primary SUs when the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the computing device within a first unfavorable comparison range; and

the read extra request specifies a second number of EDSs that is more than the read threshold number of EDSs from the plurality of primary SUs when the DSN operational characteristic compares unfavorably to the acceptable DSN operational characteristic as determined by the computing device within a second unfavorable comparison range.

18. The method of claim 11 , wherein the computing device is located at a first premises that is remotely located from at least one SU of the plurality of primary SUs of the plurality of secondary SUs within the DSN.

19. The method of claim 11 , wherein the computing device is a SU of the plurality of primary SUs of the plurality of secondary SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

20. The method of claim 11 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

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 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 Aug 26, 2016
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039558/0580 →