IP Library Granted Patent US 11,815,998
Granted Patent B2
US 11,815,998 · App. 18/054,992 · Granted Nov 14, 2023

Selecting routing paths for sending encoded data slices

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/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 11,815,998
App. No.
18/054,992
Granted
Nov 14, 2023
Kind
B2
Abstract

A method includes dispersed storage error encoding a data object to produce a set of encoded data slices. The method further includes obtaining routing path performance information for a plurality of routing paths from the computing device to a set of storage units. The method further includes selecting a first routing path for sending a first subset of the set of encoded data slices, where the first routing path has a performance level greater than a first performance threshold. The method further includes selecting a second routing path for sending a second subset of the set of encoded data slices, where the second routing path has a performance level less than or equal to the first performance threshold. The method further includes sending the first and second subsets of encoded data slices to the set of storage units via the first and second routing paths for storage therein.

Claims (34)

1. A method comprises:

dispersed storage error encoding, by a computing device of a storage network, a data object to produce a set of encoded data slices;

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

selecting, by the computing device, a first routing path from the plurality of routing paths for sending a first subset of the set of encoded data slices, wherein the first routing path has a performance level greater than a first performance threshold;

selecting, by the computing device, a second routing path from the plurality of routing paths for sending a second subset of the set of encoded data slices, wherein the second routing path has a performance level less than or equal to the first performance threshold; and

sending, by the computing device, the first and second subsets of encoded data slices to the set of storage units via the first and second routing paths for storage therein.

2. The method of claim 1 further comprises:

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

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

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

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

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

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

8. The method of claim 3 , wherein the routing path quality of service information comprises security information.

9. The method of claim 1 further comprises:

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

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

11. The method of claim 9 , wherein the error coding distributed routing protocol comprises a number of subsets of encoded data slices for the set of encoded data slices.

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

13. The method of claim 9 , 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.

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

15. The method of claim 9 , wherein the error coding distributed routing protocol comprises a priority indicator for at least one of the first and second subsets of the set of encoded data slices.

16. The method of claim 9 , wherein the error coding distributed routing protocol comprises a performance indicator for at least one of the first and second subsets of the set of encoded data slices.

17. The method of claim 1 , wherein the first routing path comprises a first plurality of relay units, and wherein the second routing path comprises a second plurality of relay units.

18. The method of claim 17 , wherein a relay unit of the second plurality of relay units is included in the first plurality of relay units.

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

20. The method of claim 19 , 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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2022
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 061957/0666 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2022
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 061788/0211 →
Continuity (7)
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 20230072456A1 · Mar 9, 2023