IP Library Granted Patent US 11,526,398
Granted Patent B1
US 11,526,398 · App. 17/249,539 · Granted Dec 13, 2022

Determining an error encoding function ratio based on path performance

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 (Chicago, IL)
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,526,398
App. No.
17/249,539
Granted
Dec 13, 2022
Kind
B1
Abstract

A method includes determining, by a computing device of a storage network, a pillar width to decode threshold ratio of a dispersed storage error encoding function based on routing path performance information of a set of routing paths with respect to a set of storage units of the storage network. The method further includes dispersed storage error encoding a data object in accordance with the pillar width to decode threshold ratio to produce a plurality of sets of encoded data slices. The method further includes sending the plurality of sets of encoded data slices to the set of storage units via the set of routing paths for storage therein.

Claims (69)

1. A method comprises:

determining, by a computing device of a storage network, a pillar width to decode threshold ratio of a dispersed storage error encoding function based on routing path performance information of a set of routing paths with respect to a set of storage units of the storage network;

dispersed storage error encoding, by the computing device, a data object in accordance with the pillar width to decode threshold ratio to produce a plurality of sets of encoded data slices; and

sending, by the computing device, the plurality of sets of encoded data slices to the set of storage units via the set of routing paths for storage therein.

2. The method of claim 1 , wherein the routing path performance information comprises:

a number of encoded data slices of each of one or more sets of encoded data slices sent to the set of storage units during a time period;

a number of encoded data slices of each of the one or more sets of encoded data slices successfully stored by the set of storage units during the time period; and

an error rate associated with the set of storage units based on the number of encoded data slices sent and the number of encoded data slices successfully stored.

3. The method of claim 2 , wherein determining the error rate associated with the set of storage units comprises:

for each of the one or more sets of encoded data slices sent to the set of storage units during the time period:

subtracting, by the computing device, the number of encoded data slices successfully stored from the number of encoded data slices sent during the time period to determine one or more error amounts;

dividing, by the computing device, the one or more error amounts by the number of encoded data slices sent during the time period to produce one or more encoded data slice set error rates; and

averaging, by the computing device, the one or more encoded data slice set error rates to produce the error rate.

4. The method of claim 2 further comprises:

comparing, by the computing device, the error rate to first and second error rate thresholds;

when the error rate compares favorably to the first error rate threshold:

adjusting, by the computing device, the pillar width to decode threshold ratio by decreasing a pillar width number and maintaining a decode threshold number; and

when the error rate compares unfavorably to the second error rate threshold:

adjusting, by the computing device, the pillar width to decode threshold ratio by increasing the pillar width number and maintaining the decode threshold number.

5. The method of claim 2 further comprises:

comparing, by the computing device, the error rate to first and second error rate thresholds;

when the error rate compares favorably to the first error rate threshold:

adjusting, by the computing device, the pillar width to decode threshold ratio by increasing a decode threshold number and maintaining a pillar width number; and

when the error rate compares unfavorably to the second error rate threshold:

adjusting, by the computing device, the pillar width to decode threshold ratio by increasing the pillar width number and increasing the decode threshold number.

6. The method of claim 1 further comprises:

obtaining the routing path performance information for the set of routing paths.

7. The method of claim 1 further comprises:

determining, based on the routing path performance information, to take a defective storage unit offline.

8. The method of claim 1 further comprises:

determining, based on the routing path performance information, to modify the set of routing paths.

9. The method of claim 8 , wherein the modifying the set of routing paths comprises removing a routing path from the set of routing paths to produce an updated set of routing paths.

10. The method of claim 8 , wherein the modifying the set of routing paths comprises adding a new routing path to the set of routing paths to produce an updated set of routing paths.

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

an interface;

memory; and

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

determine a pillar width to decode threshold ratio of a dispersed storage error encoding function based on routing path performance information of a set of routing paths with respect to a set of storage units of the storage network;

dispersed storage error encode a data object in accordance with the pillar width to decode threshold ratio to produce a plurality of sets of encoded data slices; and

send, via the interface, the plurality of sets of encoded data slices to the set of storage units via the set of routing paths for storage therein.

12. The computing device of claim 11 , wherein the routing path performance information comprises:

a number of encoded data slices of each of one or more sets of encoded data slices sent to the set of storage units during a time period;

a number of encoded data slices of each of the one or more sets of encoded data slices successfully stored by the set of storage units during the time period; and

an error rate associated with the set of storage units based on the number of encoded data slices sent and the number of encoded data slices successfully stored.

13. The computing device of claim 12 , wherein the processing module is operable to determine the error rate associated with the set of storage units by:

for each of the one or more sets of encoded data slices sent to the set of storage units during the time period:

subtracting, by the computing device, the number of encoded data slices successfully stored from the number of encoded data slices sent during the time period to determine one or more error amounts;

dividing, by the computing device, the one or more error amounts by the number of encoded data slices sent during the time period to produce one or more encoded data slice set error rates; and

averaging, by the computing device, the one or more encoded data slice set error rates to produce the error rate.

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

compare the error rate to first and second error rate thresholds;

when the error rate compares favorably to the first error rate threshold:

adjust the pillar width to decode threshold ratio by decreasing a pillar width number and maintaining a decode threshold number; and

when the error rate compares unfavorably to the second error rate threshold:

adjust the pillar width to decode threshold ratio by increasing the pillar width number and maintaining the decode threshold number.

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

compare the error rate to first and second error rate thresholds;

when the error rate compares favorably to the first error rate threshold:

adjust the pillar width to decode threshold ratio by increasing a decode threshold number and maintaining a pillar width number; and

when the error rate compares unfavorably to the second error rate threshold:

adjust the pillar width to decode threshold ratio by increasing the pillar width number and increasing the decode threshold number.

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

obtain the routing path performance information for the set of routing paths.

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

determine, based on the routing path performance information, to take a defective storage unit offline.

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

determine, based on the routing path performance information, to modify the set of routing paths.

19. The computing device of claim 18 , wherein the processing module is operable to modify the set of routing paths by removing a routing path from the set of routing paths to produce an updated set of routing paths.

20. The computing device of claim 18 , wherein the processing module is operable to modify the set of routing paths by adding a new routing path to the set of routing paths to produce an updated set of routing paths.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2021
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 055502/0533 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 055512/0193 →