IP Library Granted Patent US 10,970,168
Granted Patent B2
US 10,970,168 · App. 16/378,041 · Granted Apr 6, 2021

Adjusting dispersed storage error encoding parameters 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 10,970,168
App. No.
16/378,041
Granted
Apr 6, 2021
Kind
B2
Abstract

A method includes determining, by a computing device of a dispersed storage network (DSN), routing path performance information of a set of routing paths with respect to a set of storage units of the DSN. The method further includes adjusting a pillar width to decode threshold ratio of a dispersed storage error encoding function when the routing path performance information deviates from a performance threshold. The performance threshold includes a first error rate threshold and a second error rate threshold. The method further includes dispersed storage error encoding a data object using the adjusted 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 (59)

1. A method comprises:

determining, by a computing device of a storage network, routing path performance information of a set of routing paths with respect to a set of storage units of the storage network;

determining, by the computing device, whether the routing path performance information has deviated from a performance threshold, wherein the performance threshold includes a first error rate threshold and a second error rate threshold; and

when the routing path performance information has deviated from the performance threshold:

adjusting, by the computing device, a pillar width to decode threshold ratio of a dispersed storage error encoding function based on the deviation;

dispersed storage error encoding, by the computing device, a data object using the adjusted 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 the 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 the 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. 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 routing path performance information of a set of routing paths with respect to a set of storage units of the storage network;

determining whether the routing path performance information has deviated from a performance threshold, wherein the performance threshold includes a first error rate threshold and a second error rate threshold; and

when the routing path performance information has deviated from the performance threshold:

adjust a pillar width to decode threshold ratio of a dispersed storage error encoding function based on the deviation;

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

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

7. The computing device of claim 6 , 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.

8. The computing device of claim 7 , 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 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 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 the one or more encoded data slice set error rates to produce the error rate.

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

compare the error rate to the 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.

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

compare the error rate to the 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.

Assignments (5)
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 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 Apr 8, 2019
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 048822/0666 →