IP Library Granted Patent US 10,162,705
Granted Patent B2
US 10,162,705 · App. 15/224,863 · Granted Dec 25, 2018

Storing data in accordance with a performance threshold

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,162,705
App. No.
15/224,863
Granted
Dec 25, 2018
Kind
B2
Abstract

A method includes, for a first phase of a multiple phase write operation, 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. The method further includes, when the write performance threshold number of write requests is to be sent, sending them to the subset of the set of storage units. The method further includes, when the write threshold number of favorable responses have been received, determining whether to change the write performance threshold number for a second phase of the multiple write operation. The method further includes, when the write performance threshold number is to be changed, changing the write performance threshold number. The method further includes sending the changed write performance threshold number of write commit requests to a second subset of the set of storage units.

Claims (59)

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

for a first 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 decode threshold number of encoded data slices of the set of encoded data slices is required to recover the data segment, 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 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, sending the write performance threshold number of write requests to the subset of the set of storage units; 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 second 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 write commit requests to a second subset of the set of storage units.

2. 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, which adversely affects the multiple phase write operation; and

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

3. 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 rank storage units of the set of storage units in accordance with a desired performance level; and

selecting the subset of the set of storage units based on the ranking of the storage units.

4. The method of claim 1 further comprises:

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

determining whether to change the write performance threshold number for a third 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 second changed write performance threshold number; and

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

5. The method of claim 1 , wherein 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 first phase of a multiple phase write operation;

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

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

6. The method of claim 1 further comprises:

when the write performance threshold number of write requests is not to be sent to the subset of the set of storage units, sending the total number of write requests to the set of storage units.

7. The method of claim 1 further comprises:

when the write performance threshold number is not to be changed, sending the write performance threshold number of write commit requests to the subset of the set of storage units.

8. A dispersed storage (DS) module for use in a dispersed storage network (DSN), the DS module comprises:

a first module, when operable within a computing device, causes the computing device to:

for a first 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 decode threshold number of encoded data slices of the set of encoded data slices is required to recover the data segment, 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 performance threshold number is less than the total number and greater than or equal to the write threshold number; and

when the write performance threshold number of write requests is to be sent to the subset of the set of storage units, send the write performance threshold number of write requests to the subset of the set of storage units; and

a second module, when operable within the computing device, causes the computing device to:

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 second 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 the changed write performance threshold number of write commit requests to a second subset of the set of storage units.

9. The DS module of claim 8 , wherein the first module, when operable within the computing device, further causes the computing device 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, which adversely affects the multiple phase write operation; and

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

10. The DS module of claim 8 , wherein the first module, when operable within the computing device, further causes the computing device 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 rank storage units of the set of storage units in accordance with a desired performance level; and

selecting the subset of the set of storage units based on the ranking of the storage units.

11. The DS module of claim 8 further comprises:

a third module, when operable within the computing device, causes the computing device to:

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

determine whether to change the write performance threshold number for a third 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 second changed write performance threshold number; and

send the second changed write performance threshold number of write finalize requests to a third subset of the set of storage units.

12. The DS module of claim 8 , wherein the second module, when operable within the computing device, further causes the computing device 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 first phase of a multiple phase write operation;

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

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

13. The DS module of claim 8 , wherein the first module, when operable within the computing device, further causes the computing device to:

when the write performance threshold number of write requests is not to be sent to the subset of the set of storage units, send the total number of write requests to the set of storage units.

14. The DS module of claim 8 , wherein the second module, when operable within the computing device, further causes the computing device to:

when the write performance threshold number is not to be changed, send the write performance threshold number of write commit requests to the subset of the set of storage units.

Assignments (6)
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 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2017
From: DHUSE, GREG; RESCH, JASON K.; SHIRLEY, THOMAS FRANKLIN, JR.
To: CLEVERSAFE, INC.
Reel/Frame 041158/0307 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041595/0896 →