IP Library Granted Patent US 11,599,419
Granted Patent B2
US 11,599,419 · App. 17/334,168 · Granted Mar 7, 2023

Determining a performance threshold for a write operation

Inventors: Greg R. Dhuse (Chicago, IL); Jason K. Resch (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI); Ilya Volvovski (Chicago, IL)
Assignee: Pure Storage, Inc.
G06F11/1076G06F3/064G06F3/067G06F3/0619G06F11/1092G06F16/2379H04L67/1097G06F2211/1028
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,599,419
App. No.
17/334,168
Granted
Mar 7, 2023
Kind
B2
Abstract

A method for execution by a computing device of a storage network includes obtaining storage performance information for a set of storage units of the storage network, where data segments are dispersed storage error encoded into pluralities of sets of encoded data slices in accordance with error encoding parameters that include a pillar width number and a decode threshold number, which is a number of encoded data slices the set of encode data slices is required to reconstruct a data segment of data segments. The method further includes determining, based on the storage performance information and the error encoding parameters, a performance threshold number for a write request to store a set of encoded data slices of the pluralities of sets of encoded data slices in the set of storage units, where the performance threshold number is greater than the decode threshold number and less than the pillar width number.

Claims (35)

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

obtaining storage performance information for a set of storage units of the storage network, wherein the one or more computing devices dispersed storage error encodes data segments into pluralities of sets of encoded data slices in accordance with error encoding parameters, wherein the error encoding parameters include a pillar width number and a decode threshold number, and wherein the decode threshold number of encoded data slices of a set of encoded data slices of the pluralities of sets of encoded data slices is required to reconstruct a data segment of data segments;

determining, based on the storage performance information and the error encoding parameters, a performance threshold number for a write request to store a set of encoded data slices of the pluralities of sets of encoded data slices in the set of storage units, wherein the performance threshold number is greater than the decode threshold number and less than the pillar width number; and

executing the write request to store the set of encoded data slices in the set of storage units in accordance with the performance threshold number.

2. The method of claim 1 , wherein the determining the performance threshold number comprises:

interpreting the storage performance information to identify storage units of the set of storage units having a less than desired storage performance level; and

determining the performance threshold number based on the pillar width number and the storage units.

3. The method of claim 1 , wherein the performance threshold number is a number of encoded data slices of the set of encoded data slices needed to be written to the set of storage units for the write request to be deemed successful.

4. The method of claim 1 further comprises:

generating an estimated performance availability number based on the storage performance information, the pillar width number and the performance threshold number; and

comparing the estimated performance availability number to a goal performance availability number;

when a difference between the estimated performance availability number and the goal performance availability number exceeds a difference threshold, updating the performance threshold number based on the difference.

5. The method of claim 4 , wherein the updating includes affecting the performance threshold number to lower the difference.

6. The method of claim 4 , wherein the generating the estimated performance availability number includes utilizing a cumulative binomial distribution function.

7. The method of claim 1 , wherein the determining the performance threshold number comprises:

generating an initial number for the performance threshold number as a previous performance threshold number.

8. The method of claim 7 further comprises:

generating the initial number as an error encoding parameter based number in accordance with an expression of a performance threshold number being equal to the pillar width number minus a difference of a write threshold number minus the decode threshold number.

9. The method of claim 1 , wherein the obtaining the storage performance information includes retrieving the storage performance information from memory of the storage network.

10. The method of claim 1 , wherein the obtaining storage performance information includes initiating a query for the storage performance information.

11. The method of claim 1 , wherein the obtaining storage performance information includes accessing a historical record.

12. The method of claim 1 , wherein the obtaining storage performance information includes identifying a predetermination.

13. The method of claim 1 , wherein the storage performance information comprises storage capacity.

14. The method of claim 1 , wherein the storage performance information comprises storage availability.

15. The method of claim 1 , wherein the storage performance information comprises access response latency.

16. The method of claim 1 , wherein the storage performance information comprises hardware failure data.

17. The method of claim 1 , wherein the storage performance information comprises storage access bandwidth.

18. The method of claim 1 , wherein the write request is a multiple phase write operation.

19. The method of claim 18 , wherein multiple phase write operation comprises:

a write initialize phase;

a write commit phase; and

a write finalize phase.

20. The method of claim 1 further comprises:

obtaining updated storage performance information for the set of storage units; and

determining, based on the updated storage performance information and the error encoding parameters, an updated performance threshold number for a second write request to store a second set of encoded data slices of the pluralities of sets of encoded data slices in the set of storage units.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2021
From: DHUSE, GREG R.; RESCH, JASON K.; BAPTIST, ANDREW D.; VOLVOVSKI, ILYA
To: PURE STORAGE, INC.
Reel/Frame 056412/0281 →
Continuity (6)
Continuation 16526723 · Jul 30, 2019
Continuation 16128730 · Sep 12, 2018
Continuation 15224863 · Aug 1, 2016
Continuation 14256536 · Apr 18, 2014
Provisional Application 61826316 · May 22, 2013
Related Publication 20210286675A1 · Sep 16, 2021