IP Library Patent Application 15976341
Patent Application
App. No. 15/976,341

INTELLIGENT READ STRATEGY WITHIN A DISPERSED STORAGE NETWORK (DSN)

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 None
App. No.
15/976,341
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 (67)

1 . A computing device comprising:

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

memory that stores operational instructions; and

processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions 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, 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, wherein the read threshold number of EDSs provides for reconstruction of the data segment;

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 to the computing device via the DSN and via the interface after receipt thereof from a SU of the plurality of secondary SUs based on at least one of unfavorable comparison of a DSN operational characteristic to an 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 other memory of the SU of the plurality of primary SUs.

2 . The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

compare the DSN operational characteristic to the acceptable DSN operational characteristic; and

generate the instruction to the SU of the plurality of primary SUs to forward the read request to at least one SU of the plurality of secondary SUs based on unfavorable comparison of the DSN operational characteristic compares to the acceptable DSN operational characteristic.

3 . The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

receive, via the interface and via the DSN, the at least the read threshold number of EDSs from the plurality of primary SUs, wherein the SU of the plurality of primary SUs provides the EDS of the set of EDSs from the 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.

4 . 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 based on unfavorable comparison of the DSN operational characteristic 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 based on unfavorable comparison the DSN operational characteristic to the acceptable DSN operational characteristic as determined by the computing device within a second unfavorable comparison range.

5 . The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions 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 based on unfavorable comparison of the DSN operational characteristic to the acceptable DSN operational characteristic as determined by the computing device.

6 . The computing device of claim 1 , wherein:

a decode threshold number of EDSs are needed to recover the data segment;

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;

the set of EDSs is of pillar width and includes a pillar number of EDSs;

each of the decode threshold number, the read threshold number, and the write threshold number is less than the pillar number; and

the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.

7 . The computing device of claim 1 further comprising:

another 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.

8 . 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).

9 . A computing device comprising:

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

memory that stores operational instructions; and

processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions 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, 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, wherein the read threshold number of EDSs provides for reconstruction of the data segment;

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;

compare a DSN operational characteristic to an acceptable DSN operational characteristic; 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 to the computing device via the DSN and via the interface after receipt thereof from a SU of the plurality of secondary SUs based on at least one of unfavorable comparison of the DSN operational characteristic 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 other memory of the SU of the plurality of primary SUs; and

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 based on unfavorable comparison of the DSN operational characteristic to the acceptable DSN operational characteristic as determined by the computing device.

10 . The computing device of claim 9 , wherein the processing circuitry is further configured to execute the operational instructions to:

generate the instruction to the SU of the plurality of primary SUs to forward the read request to at least one SU of the plurality of secondary SUs based on unfavorable comparison of the DSN operational characteristic compares to the acceptable DSN operational characteristic.

11 . The computing device of claim 9 , wherein the processing circuitry is further configured to execute the operational instructions to:

receive, via the interface and via the DSN, the at least the read threshold number of EDSs from the plurality of primary SUs, wherein the SU of the plurality of primary SUs provides the EDS of the set of EDSs from the other 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.

12 . The computing device of claim 9 , 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 based on unfavorable comparison of the DSN operational characteristic 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 based on unfavorable comparison the DSN operational characteristic to the acceptable DSN operational characteristic as determined by the computing device within a second unfavorable comparison range.

13 . The computing device of claim 9 , 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).

14 . 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 or distributed 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, 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, wherein the read threshold number of EDSs provides for reconstruction of the data segment;

transmitting, via an interface of the computing device that is 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 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 to the computing device via the DSN and via the interface after receipt thereof from a SU of the plurality of secondary SUs based on at least one of unfavorable comparison of a DSN operational characteristic to an 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 memory of the SU of the plurality of primary SUs.

15 . The method of claim 14 further comprising:

comparing the DSN operational characteristic to the acceptable DSN operational characteristic; and

generating the instruction to the SU of the plurality of primary SUs to forward the read request to at least one SU of the plurality of secondary SUs based on unfavorable comparison of the DSN operational characteristic compares to the acceptable DSN operational characteristic.

16 . The method of claim 14 further comprising:

receiving, via the interface and via the DSN, the at least the read threshold number of EDSs from the plurality of primary SUs, wherein the SU of the plurality of primary SUs provides the EDS of the set of EDSs from the 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.

17 . The method of claim 14 , 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 based on unfavorable comparison of the DSN operational characteristic 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 based on unfavorable comparison the DSN operational characteristic to the acceptable DSN operational characteristic as determined by the computing device within a second unfavorable comparison range.

18 . The method of claim 14 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 based on unfavorable comparison of the DSN operational characteristic to the acceptable DSN operational characteristic as determined by the computing device.

19 . The method of claim 14 , wherein:

a decode threshold number of EDSs are needed to recover the data segment;

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;

the set of EDSs is of pillar width and includes a pillar number of EDSs;

each of the decode threshold number, the read threshold number, and the write threshold number is less than the pillar number; and

the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.

20 . The method of claim 14 , 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 (3)
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 May 10, 2018
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045770/0045 →