IP Library Granted Patent US 12,181,969
Granted Patent B2
US 12,181,969 · App. 18/499,319 · Granted Dec 31, 2024

Sending encoded data slices via multiple routing paths

Inventors: Gary W. Grube (Barrington Hills, IL); Timothy W. Markison (Mesa, AZ); S. Christopher Gladwin (Chicago, IL); Greg R. Dhuse (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI); Ilya Volvovski (Chicago, IL); Jason K. Resch (Warwick, RI)
Assignee: Pure Storage, Inc.
G06F11/1076G06F3/0619G06F3/064G06F3/067
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 12,181,969
App. No.
18/499,319
Granted
Dec 31, 2024
Kind
B2
Abstract

A method for execution by one or more computing devices includes selecting a first routing path from a plurality of routing paths to a set of storage units based on routing path performance information, where the first routing path has a performance level greater than a first performance threshold. The method further includes selecting a second routing path from the plurality of routing paths based on the routing path performance information, where the second routing path has a performance level less than or equal to the first performance threshold. The method further includes sending a first subset of encoded data slices to the set of storage units via the first routing path for storage therein. The method further includes sending a second subset of encoded data slices to the set of storage units via the second routing path for storage therein.

Claims (45)

1. A method for execution by one or more computing devices, the method comprises:

selecting a first routing path from a plurality of routing paths to a set of storage units based on routing path performance information, wherein the first routing path has a performance level greater than a first performance threshold;

selecting a second routing path from the plurality of routing paths based on the routing path performance information, wherein the second routing path has a performance level less than or equal to the first performance threshold;

sending a first subset of encoded data slices to the set of storage units via the first routing path for storage therein; and

sending a second subset of encoded data slices to the set of storage units via the second routing path for storage therein.

2. The method of claim 1 further comprises:

dispersed storage error encoding a data segment to produce a set of encoded data slices, wherein the set of encoded data slices includes the first and second subsets of encoded data slices.

3. The method of claim 2 further comprises:

obtaining data for transmission to the set of storage units, wherein the data includes the data segment.

4. The method of claim 1 further comprises:

obtaining the routing path performance information for the plurality of routing paths from the computing device to a set of storage units of the storage network.

5. The method of claim 1 further comprises:

determining one or more of communication requirements and routing path quality of service information for one or more of the plurality of routing paths; and

determining the performance level of the first routing path based on the one or more of communication requirements and routing path quality of service information.

6. The method of claim 5 , wherein the communication requirements comprises a current reliability level for the one or more of the plurality of routing paths.

7. The method of claim 5 , wherein the routing path quality of service information comprises a reliability history for the one or more of the plurality of routing paths.

8. The method of claim 5 , wherein the routing path quality of service information comprises a future reliability estimate for the one or more of the plurality of routing paths.

9. The method of claim 5 , wherein the routing path quality of service information comprises bit jitter information.

10. The method of claim 5 , wherein the routing path quality of service information comprises security information.

11. The method of claim 1 further comprises:

determining an error coding distributed routing protocol for transmitting the encoded data slices.

12. The method of claim 11 , wherein the error coding distributed routing protocol comprises an identity of the plurality of routing paths.

13. The method of claim 11 , wherein the error coding distributed routing protocol comprises desired routing performance for one or more of the first and second subsets of encoded data slices.

14. The method of claim 11 , wherein the error coding distributed routing protocol comprises a request for multiple path transmission for the sending of the set of encoded data slices to the set of storage units.

15. The method of claim 11 , wherein the error coding distributed routing protocol comprises a capacity estimate of the plurality of routing paths.

16. The method of claim 1 , wherein determining the first subset of the set of encoded data slices comprises:

determining a decode threshold number; and

determining the first subset of encoded data slices includes at least the decode threshold number.

17. The method of claim 16 , wherein determining the second subset of the set of encoded data slices comprises:

determining a first number of encoded data slices that is included in the first subset of encoded data slices;

determining a pillar width number for the set of encoded data slices; and

determining the second subset of encoded data slices is equal to the pillar width number minus the first number.

18. A computing device of a storage network, the computing device comprises:

memory;

an interface; and

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

select a first routing path from a plurality of routing paths to a set of storage units based on routing path performance information, wherein the first routing path has a performance level greater than a first performance threshold;

select a second routing path from the plurality of routing paths based on the routing path performance information, wherein the second routing path has a performance level less than or equal to the first performance threshold;

send, via the interface, a first subset of encoded data slices to the set of storage units via the first routing path for storage therein; and

send, via the interface, a second subset of encoded data slices to the set of storage units via the second routing path for storage therein.

19. The computing device of claim 18 further comprises:

dispersed storage error encoding a data segment to produce a set of encoded data slices, wherein the set of encoded data slices includes the first and second subsets of encoded data slices.

20. The computing device of claim 19 , wherein the processing module is further operable to:

determining a first number of encoded data slices that is included in the first subset of encoded data slices based on a decode threshold number associated with the dispersed storage error encoding; and

determining a second number of encoded data slices that is included in the second subset of encoded data slices based on a pillar width number associated with the dispersed storage error encoding minus the decode threshold number.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2023
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 065431/0077 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2023
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.; GLADWIN, S. CHRISTOPHER; DHUSE, GREG R.; BAPTIST, ANDREW D.; VOLVOVSKI, ILYA; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 065418/0806 →
Continuity (8)
Continuation 18054992 · Nov 14, 2022
Continuation 17249539 · Mar 4, 2021
Continuation 16378041 · Apr 8, 2019
Continuation In Part 15817104 · Nov 17, 2017
Continuation In Part 14615655 · Feb 6, 2015
Continuation In Part 13251603 · Oct 3, 2011
Provisional Application 61390472 · Oct 6, 2010
Related Publication 20240078154A1 · Mar 7, 2024