IP Library Granted Patent US 11,036,584
Granted Patent B1
US 11,036,584 · App. 16/526,723 · Granted Jun 15, 2021

Dynamically adjusting write requests for a multiple phase write operation

Inventors: Greg Dhuse (Chicago, IL); Jason K. Resch (Chicago, IL); Thomas Franklin Shirley, Jr. (Wauwatosa, WI)
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,036,584
App. No.
16/526,723
Granted
Jun 15, 2021
Kind
B1
Abstract

A method includes, for a current phase of a multiple phase write operation to write a set of encoded data slices to a set of storage units, determining whether to send a write performance threshold number of write requests to a subset of the set of storage units regarding a write performance threshold number of encoded data slices of the set of encoded data slices, where the set of encoded data slices includes a total number of encoded data slices, and wherein the write performance threshold number is less than the total number and greater than or equal to the write threshold number. When the write performance threshold number of write requests is to be sent to the subset of the set of storage units, the method continues by sending the write performance threshold number of write requests to the subset of the set of storage units.

Claims (63)

1. A method for execution by a computing device of a dispersed storage network (DSN), the method comprises:

for a current phase of a multiple phase write operation to write a set of encoded data slices to a set of storage units of the DSN, determining whether to send a write performance threshold number of write requests to a subset of the set of storage units regarding a write performance threshold number of encoded data slices of the set of encoded data slices, wherein a data segment of data is dispersed storage error encoded into the set of encoded data slices, wherein a write threshold number of favorable write responses is required to move to a next phase of the multiple phase write operation, wherein the set of encoded data slices includes a total number of encoded data slices, and wherein the write threshold number is less than the total number and greater than or equal to the write performance threshold number; and

when the determination is to send the write performance threshold number of write requests to the subset of the set of storage units, sending the write performance threshold number of write requests to the subset of the set of storage units.

2. The method of claim 1 further comprises:

when the determination is not to send the write performance threshold number of write requests to the subset of the set of storage units and the current phase is an initial phase of the multiple phase write operation, sending the total number of write requests to the set of storage units.

3. The method of claim 1 further comprises:

when the determination is not to send the write performance threshold number of write requests to the subset of the set of storage units and the current phase is a non-initial phase of the multiple phase write operation:

changing the write performance threshold number to produce a changed write performance threshold number; and

sending the changed write performance threshold number of write requests to a second subset of the set of storage units, wherein a number of the second subset of storage units is equal to the changed write performance threshold number.

4. The method of claim 1 further comprises:

receiving favorable responses to the write performance threshold number of write requests; and

when the write threshold number of favorable responses to the write performance threshold number of write requests have been received:

determining whether to change the write performance threshold number for a next phase of the multiple phase write operation; and

when the write performance threshold number is to be changed, changing the write performance threshold number to produce a changed write performance threshold number; and

sending the changed write performance threshold number of next phase write requests to a second subset of the set of storage units.

5. The method of claim 4 , wherein the determining whether to change the write performance threshold number comprises:

obtaining a set of current storage performance data regarding storage performance by the subset of storage units for the current phase of the multiple phase write operation;

interpreting the set of current storage performance data to identify one or more storage units having a less than a desired performance level; and

excluding the one or more storage units to produce the second subset of the set of storage units.

6. The method of claim 4 , wherein the determining whether to change the write performance threshold number comprises:

determining a number of unfavorable responses to the write performance threshold number of write requests; and

reducing the write performance threshold number by the number of unfavorable responses to produce the changed write performance threshold number.

7. The method of claim 1 , wherein the determining whether to send the write performance threshold number of write requests comprises:

obtaining a set of storage performance information regarding the set of storage units;

interpreting the set of storage performance information to identify one or more storage units having a less than a desired performance level, wherein a storage unit of the one or more storage units having the less than desired performance level adversely affects the multiple phase write operation; and

excluding the one or more storage units from the set of storage units to produce the subset of the set of storage units, wherein a number of the subset of the set of storage units is equal to the write performance threshold number.

8. The method of claim 1 , wherein a phase of the multiple phase write operation is one of:

a write initialize phase;

a write commit phase; and

a write finalize phase.

9. A computing device of a dispersed storage network (DSN) comprises:

an interface;

memory; and

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

for a current phase of a multiple phase write operation to write a set of encoded data slices to a set of storage units of the DSN, determine whether to send a write performance threshold number of write requests to a subset of the set of storage units regarding a write performance threshold number of encoded data slices of the set of encoded data slices, wherein a data segment of data is dispersed storage error encoded into the set of encoded data slices, wherein a write threshold number of favorable write responses is required to move to a next phase of the multiple phase write operation, wherein the set of encoded data slices includes a total number of encoded data slices, and wherein the write threshold number is less than the total number and greater than or equal to the write threshold number; and

when the determination is to send the write performance threshold number of write requests to the subset of the set of storage units, send, via the interface, the write performance threshold number of write requests to the subset of the set of storage units.

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

when the determination is not to send the write performance threshold number of write requests to the subset of the set of storage units and the current phase is an initial phase of the multiple phase write operation, send, via the interface, the total number of write requests to the set of storage units.

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

when the determination is not to send the write performance threshold number of write requests to the subset of the set of storage units and the current phase is a non-initial phase of the multiple phase write operation:

change the write performance threshold number to produce a changed write performance threshold number; and

send, via the interface, the changed write performance threshold number of write requests to a second subset of the set of storage units, wherein a number of the second subset of storage units is equal to the changed write performance threshold number.

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

receive favorable responses to the write performance threshold number of write requests; and

when the write threshold number of favorable responses to the write performance threshold number of write requests have been received:

determine whether to change the write performance threshold number for a next phase of the multiple phase write operation; and

when the write performance threshold number is to be changed, change the write performance threshold number to produce a changed write performance threshold number; and

send, via the interface, the changed write performance threshold number of next phase write requests to a second subset of the set of storage units.

13. The computing device of claim 12 , wherein the processing module is further operable to determine whether to change the write performance threshold number by:

obtaining a set of current storage performance data regarding storage performance by the subset of storage units for the current phase of the multiple phase write operation;

interpreting the set of current storage performance data to identify one or more storage units having a less than a desired performance level; and

excluding the one or more storage units to produce the second subset of the set of storage units.

14. The computing device of claim 12 , wherein the processing module is further operable to determine whether to change the write performance threshold number by:

determining a number of unfavorable responses to the write performance threshold number of write requests; and

reducing the write performance threshold number by the number of unfavorable responses to produce the changed write performance threshold number.

15. The computing device of claim 9 , wherein the processing module is further operable to determine whether to send the write performance threshold number of write requests by:

obtaining a set of storage performance information regarding the set of storage units;

interpreting the set of storage performance information to identify one or more storage units having a less than a desired performance level, wherein a storage unit of the one or more storage units having the less than desired performance level adversely affects the multiple phase write operation; and

excluding the one or more storage units from the set of storage units to produce the subset of the set of storage units, wherein a number of the subset of the set of storage units is equal to the write performance threshold number.

16. The computing device of claim 9 , wherein a phase of the multiple phase write operation is one of:

a write initialize phase;

a write commit phase; and

a write finalize phase.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2019
From: DHUSE, GREG; RESCH, JASON K.; SHIRLEY, THOMAS FRANKLIN, JR.
To: CLEVERSAFE, INC.
Reel/Frame 049908/0415 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2019
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049912/0840 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049913/0064 →