IP Library Granted Patent US 9,571,230
Granted Patent B2
US 9,571,230 · App. 14/615,701 · Granted Feb 14, 2017

Adjusting routing of data within a network path

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,571,230
App. No.
14/615,701
Granted
Feb 14, 2017
Kind
B2
Abstract

A method begins by a first computing device generating an initial routing plan that identifies network paths for transmitting encoded data slices of an encoded data segment from the first computing device to a second computing device. The method continues with the first computing device sending a plurality of subsets of encoded data slices to network paths. Within a network path, the method continues by a relay unit determining whether the network path defined by the initial routing plan requires adjusting. When the network path requires adjusting, the method continues with the relay unit establishing an adjusted network path by at least one of adding a relay unit and deleting a relay unit. The method continues with the relay unit sending, via the adjusted network path, the corresponding subset of encoded data slices to the second computing device.

Claims (45)

1. A method comprises:

generating, by a first computing device, an initial routing plan that identifies a plurality of network paths for transmitting encoded data slices of an encoded data segment from the first computing device to a second computing device, wherein each network path of the plurality of network paths includes one or more relay units, wherein a data segment was dispersed storage error encoded to produce the encoded data segment, wherein the encoded data segment includes a set of encoded data slices, and wherein a decode threshold number of encoded data slices of the set of encoded data slices is needed to recover the data segment by the second computing device;

sending, by the first computing device, a plurality of subsets of encoded data slices to the plurality of network paths; and

within a network path of the plurality of network paths:

determining, by a relay unit of the one or more relay units of the network path, whether the network path defined by the initial routing plan requires adjusting based on characteristics of other network paths of the plurality of network paths and the decode threshold number of encoded data slices being received by the second computing device;

when the network path requires adjusting, establishing, by the relay unit, an adjusted network path by at least one of:

adding a relay unit to the one or more relay units; and

deleting a relay unit from the one or more relay units; and

sending, via the adjusted network path, a corresponding subset of the plurality of subsets of encoded data slices to the second computing device.

2. The method of claim 1 , wherein the sending the plurality of subsets of encoded data slices comprises:

dividing, by the first computing device, the set of encoded data slices into the plurality of subsets of encoded data slices, wherein a network path of the plurality of network paths is allocated to transmit a subset of encoded data slices of the plurality of subsets of encoded data slices from the first computing device to the second computing device.

3. The method of claim 1 further comprises:

generating, by the second computing device, an updated routing plan based on receiving the corresponding subset of the plurality of subsets of encoded data slices via the adjusted network path.

4. The method of claim 1 , wherein the establishing the adjusted network path further comprises:

dividing the network path into two or more network paths to produce the adjusted network path.

5. The method of claim 1 , wherein the determining, by the relay unit, that the network path defined by the initial routing plan requires adjusting comprises:

determining that the decode threshold number of encoded data slices will be received by the second computing device prior to receiving one or more encoded data slices of the corresponding subset of the plurality of subsets of encoded data slices.

6. The method of claim 1 further comprises:

within the network path of the plurality of network paths:

determining, by the relay unit, whether the decode threshold number of encoded data slices will be received by the second computing device prior to receiving one or more encoded data slices of the corresponding subset of the plurality of subsets of encoded data slices; and

when the decode threshold number of encoded data slices will be received by the second computing device prior to receiving the one or more encoded data slices, pausing, by the relay unit, routing of the one or more encoded data slices to the second computing device.

7. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices, causes the one or more computing devices to:

generate, by a first computing device of the one or more computing devices, an initial routing plan that identifies a plurality of network paths for transmitting encoded data slices of an encoded data segment from the first computing device to a second computing device of the one or more computing devices, wherein each network path of the plurality of network paths includes one or more relay units of the one or more computing devices, wherein a data segment was dispersed storage error encoded to produce the encoded data segment, wherein the encoded data segment includes a set of encoded data slices, and wherein a decode threshold number of encoded data slices of the set of encoded data slices is needed to recover the data segment by the second computing device;

send, by the first computing device, a plurality of subsets of encoded data slices to the plurality of network paths; and

within a network path of the plurality of network paths:

determine, by a relay unit of the one or more relay units of the network path, whether the network path defined by the initial routing plan requires adjusting based on characteristics of other network paths of the plurality of network paths and the decode threshold number of encoded data slices being received by the second computing device;

when the network path requires adjusting, establish, by the relay unit, an adjusted network path by at least one of:

adding a relay unit to the one or more relay units; and

deleting a relay unit from the one or more relay units; and

send, via the adjusted network path, a corresponding subset of the plurality of subsets of encoded data slices to the second computing device.

8. The non-transitory computer readable storage medium of claim 7 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices to send the plurality of subsets of encoded data by:

dividing, by the first computing device, the set of encoded data slices into the plurality of subsets of encoded data slices, wherein a network path of the plurality of network paths is allocated to transmit a subset of encoded data slices of the plurality of subsets of encoded data slices from the first computing device to the second computing device.

9. The non-transitory computer readable storage medium of claim 7 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices to:

generate, by the second computing device, an updated routing plan based on receiving the corresponding subset of the plurality of subsets of encoded data slices via the adjusted network path.

10. The non-transitory computer readable storage medium of claim 7 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices to further establish the adjusted network path by:

dividing the network path into two or more network paths to produce the adjusted network path.

11. The non-transitory computer readable storage medium of claim 7 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices to determine, by the relay unit, that the network path defined by the initial routing plan requires adjusting by:

determining that the decode threshold number of encoded data slices will be received by the second computing device prior to receiving one or more encoded data slices of the corresponding subset of the plurality of subsets of encoded data slices.

12. The non-transitory computer readable storage medium of claim 7 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the one or more computing devices to:

within the network path of the plurality of network paths:

determine, by the relay unit, whether the decode threshold number of encoded data slices will be received by the second computing device prior to receiving one or more encoded data slices of the corresponding subset of the plurality if subsets of encoded data slices; and

when the decode threshold number of encoded data slices will be received by the second computing device prior to receiving the one or more encoded data slices, pause, by the relay unit, routing of the one or more encoded data slices to the second computing device.

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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2015
From: VOLVOVSKI, ILYA; BAPTIST, ANDREW; GRUBE, GARY W.; MARKISON, TIMOTHY W.; GLADWIN, S. CHRISTOPHER; DHUSE, GREG; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 034906/0106 →