IP Library Granted Patent US 10,620,878
Granted Patent B2
US 10,620,878 · App. 15/843,834 · Granted Apr 14, 2020

Write threshold plus value in dispersed storage network write operations

Inventors: Jason K. Resch (Chicago, IL); Greg R. Dhuse (Chicago, IL); Ravi V. Khadiwala (Bartlett, IL); Wesley B. Leggette (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F3/0659G06F3/0604G06F3/064G06F3/067G06F3/0619G06F11/1076
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,620,878
App. No.
15/843,834
Granted
Apr 14, 2020
Kind
B2
Abstract

A method includes receiving a write operation request for storage of a data segment of a data object in at least a portion of a dispersed storage network (DSN). The method further includes determining a write target number based on information related to the data segment and a write extra number based on system error rate. The method further includes establishing a write threshold plus value based on the write target number and the write extra number, where the write target number is greater than or equal to a write threshold number. The method further includes generating a set of write requests for a subset of the set of encoded data slices, where the subset includes the write threshold plus value of encoded data slices of the set of encoded data slices. The method further includes sending the set of write requests to a set of storage units.

Claims (59)

1. A method comprises:

receiving, by a computing device of a dispersed storage network (DSN), a write operation request for storage of a data segment of a data object in at least a portion of the DSN;

determining, by the computing device, a write target number based on information related to the data segment;

determining, by the computing device, a write extra number based on system error rate of the at least a portion of the DSN;

establishing, by the computing device, a write threshold plus value based on the write target number and the write extra number, wherein, for a set of encoded data slices, a decode threshold number of encoded data slices is required to reconstruct the data segment, wherein a write threshold number corresponds to a number of successful write responses to initiate execution of a next phase of the write operation, and wherein the write target number is greater than or equal to the write threshold number;

generating, by the computing device, a set of write requests for a subset of the set of encoded data slices, wherein the subset includes the write threshold plus value of encoded data slices of the set of encoded data slices; and

sending, by the computing device, the set of write requests to a set of storage units affiliated with the at least a portion of the DSN.

2. The method of claim 1 further comprises:

receiving, by the computing device, successful write responses from storage units in the set of storage units; and when the write target number of successful write responses have been received from a subset of storage units of the storage units:

generating, by the computing device, one or more rollback requests; and

sending, by the computing device, the one or more rollback requests to one or more storage units of the set of storage units, wherein the one or more storage units are not within the subset of storage units.

3. The method of claim 1 further comprises:

receiving, by the computing device, successful write responses from storage units in the set of storage units; and

when a write threshold number of successful write responses have been received from a subset of storage units of the storage units, sending, by the computing device, a set of next phase write operation requests to the subset of storage units.

4. The method of claim 1 , wherein the determining the write extra number comprises:

performing, by the computing device, a function on an error rate parameter and the system error rate to determine the write extra number.

5. The method of claim 1 further comprises:

dispersed storage error encoding, by the computing device, the data segment in accordance with dispersed storage error parameters to produce the set of encoded data slices.

6. The method of claim 5 further comprises:

receiving, by the computing device, a second write operation request for storage of a second data segment of the data object in the at least a portion of the DSN;

dispersed storage error encoding, by the computing device, the second data segment in accordance with the dispersed storage error parameters to produce a second set of encoded data slices;

determining, by the computing device, a second write target number based on information related to the second data segment;

determining, by the computing device, a second write extra number based on the system error rate of the at least a portion of the DSN;

establishing, by the computing device, a second write threshold plus value based on the second write target number and the second write extra number;

generating, by the computing device, a second set of write requests for the subset of the set of encoded data slices, wherein the subset includes the second write threshold plus value of encoded data slices of the second set of encoded data slices; and

sending, by the computing device, the second set of write requests to the set of storage units affiliated with the at least a portion of the DSN.

7. The method of claim 1 further comprises:

when the write target number of successful responses have not been received from the set of storage units within a given time period, sending, by the computing device, at least one new write request to a storage unit not already sent a write request of the set of write requests.

8. A computing device of a dispersed storage network (DSN), the computing device comprises:

an interface;

memory; and

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

receive a write operation request for storage of a data segment of a data object in at least a portion of the DSN;

determine a write target number based on information related to the data segment;

determine a write extra number based on system error rate of the at least a portion of the DSN;

establish a write threshold plus value based on the write target number and the write extra number, wherein, for a set of encoded data slices, a decode threshold number of encoded data slices is required to reconstruct the data segment, wherein a write threshold number corresponds to a number of successful write responses to initiate execution of a next phase of the write operation, and wherein the write target number is greater than or equal to the write threshold number;

generate a set of write requests for a subset of the set of encoded data slices, wherein the subset includes the write threshold plus value of encoded data slices of the set of encoded data slices; and

send the set of write requests to a set of storage units affiliated with the at least a portion of the DSN.

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

receive successful write responses from storage units in the set of storage units; and when the write target number of successful write responses have been received from a subset of storage units of the storage units:

generate one or more rollback requests; and

send the one or more rollback requests to one or more storage units of the set of storage units, wherein the one or more storage units are not within the subset of storage units.

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

receive successful write responses from storage units in the set of storage units; and

when a write threshold number of successful write responses have been received from a subset of storage units of the storage units, send a set of next phase write operation requests to the subset of storage units.

11. The computing device of claim 8 , wherein the processing circuit is further operable to determine the write extra number by:

performing a function on an error rate parameter and the system error rate to determine the write extra number.

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

dispersed storage error encode the data segment in accordance with dispersed storage error parameters to produce the set of encoded data slices.

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

receive a second write operation request for storage of a second data segment of the data object in the at least a portion of the DSN;

dispersed storage error encode the second data segment in accordance with the dispersed storage error parameters to produce a second set of encoded data slices;

determine a second write target number based on information related to the second data segment;

determine a second write extra number based on the system error rate of the at least a portion of the DSN;

establish a second write threshold plus value based on the second write target number and the second write extra number;

generate a second set of write requests for the subset of the set of encoded data slices, wherein the subset includes the second write threshold plus value of encoded data slices of the second set of encoded data slices; and

send the second set of write requests to the set of storage units affiliated with the at least a portion of the DSN.

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

when the write target number of successful responses have not been received from the set of storage units within a given time period, send at least one new write request to a storage unit not already sent a write request of the set of write requests.

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 Dec 15, 2017
From: RESCH, JASON K.; DHUSE, GREG R.; KHADIWALA, RAVI V.; LEGGETTE, WESLEY B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044409/0589 →
Continuity (4)
Continuation In Part 15671746 · Aug 8, 2017
Continuation In Part 14955200 · Dec 1, 2015
Provisional Application 62109700 · Jan 30, 2015
Related Publication 20180107429A1 · Apr 19, 2018