IP Library Granted Patent US 9,277,011
Granted Patent B2
US 9,277,011 · App. 14/029,124 · Granted Mar 1, 2016

Processing an unsuccessful write request in a dispersed storage network

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 9,277,011
App. No.
14/029,124
Granted
Mar 1, 2016
Kind
B2
Abstract

A method begins by a first device of a dispersed storage network (DSN), when a number of successful write requests of a set of write requests is equal to or greater than a threshold number but less than all, identifying one or more unsuccessful write requests of the set of write requests. The method continues with first device sending the one or more unsuccessful write requests to an auxiliary writing unit of the DSN. The method continues with the auxiliary writing unit, for an unsuccessful write request, identifying a storage unit of the DSN to produce an identified storage unit, sending the unsuccessful write request to the identified storage unit, and verifying successful execution of the unsuccessful write request by the identified storage unit.

Claims (65)

1. A method for execution by one or more processing modules of one or more devices of a dispersed storage network (DSN), the method comprises:

when a number of successful write requests of a set of write requests is equal to or greater than a threshold number but less than all, identifying, by a first device of the DSN, one or more unsuccessful write requests of the set of write requests, wherein the set of write requests is regarding writing one or more sets of encoded data slices to storage units of the DSN, wherein a write request of the set of write requests includes one or more encoded data slices of the one or more sets of encoded data slices, wherein a set of encoded data slices of the one or more sets of encoded data slices is a dispersed storage error encoded representation of a data segment of data, and wherein at least a threshold number of encoded data slices of the set of encoded data slices is required to reproduce the data segment;

sending, by the first device, the one or more unsuccessful write requests to an auxiliary writing unit of the DSN; and

for an unsuccessful write request of the one or more unsuccessful write requests:

identifying, by the auxiliary writing unit, a storage unit of the DSN to produce an identified storage unit;

sending, by the auxiliary writing unit, the unsuccessful write request to the identified storage unit; and

verifying, by the auxiliary writing unit, successful execution of the unsuccessful write request by the identified storage unit.

2. The method of claim 1 further comprises:

when the unsuccessful write request was unsuccessful due to a particular storage unit of the DSN being unavailable, identifying, by the auxiliary writing unit, the particular storage unit as the identified storage unit when the particular storage unit becomes available.

3. The method of claim 1 further comprises:

when the unsuccessful write request was unsuccessful due to a particular storage unit of the DSN being unavailable, identifying, by the auxiliary writing unit, another storage unit of the DSN as the identified storage unit.

4. The method of claim 1 , wherein the write request further comprises:

a first phase write message that includes the one or more encoded data slices, corresponding slices names for the one or more encoded data slices, and a transaction number;

in response to an acknowledgement of the first phase write message, the write request further includes a second phase commit write message that includes the transaction number and a commit command; and

in response to an acknowledgement of the second phase commit write message, the write request further includes a third phase finalize write message.

5. The method of claim 1 , wherein the sending the unsuccessful write request to the identified storage unit comprises:

sending as a single message:

a first phase write message that includes the one or more encoded data slices, corresponding slices names for the one or more encoded data slices, and a transaction number;

a second phase commit write message that includes a commit command; and

a third phase finalize write message.

6. The method of claim 1 further comprises:

when the identified storage unit successfully executes the unsuccessful write request, notifying, by the auxiliary writing unit, the first device of successful writing of the unsuccessful write request by the identified storage unit.

7. The method of claim 1 further comprises:

sending, by the auxiliary writing unit, a message to a rebuilder unit indicating that the auxiliary writing unit is processing writing of encoded data slices of the one or more sets of encoded data slices associated with the one or more unsuccessful write requests to the storage units of the DSN.

8. The method of claim 1 further comprises:

for a second unsuccessful write request of the one or more unsuccessful write requests:

identifying, by the auxiliary writing unit, a second storage unit of the DSN to produce a second identified storage unit;

sending, by the auxiliary writing unit, the second unsuccessful write request to the second identified storage unit; and

verifying, by the auxiliary writing unit, successful execution of the second unsuccessful write request by the second identified storage unit.

9. A dispersed storage network (DSN) comprises:

a dispersed storage processing module, when operable within a first device of the DSN, causes the first device to:

when a number of successful write requests of a set of write requests is equal to or greater than a threshold number but less than all, identify one or more unsuccessful write requests of the set of write requests, wherein the set of write requests is regarding writing one or more sets of encoded data slices to storage units of the DSN, wherein a write request of the set of write requests includes one or more encoded data slices of the one or more sets of encoded data slices, wherein a set of encoded data slices of the one or more sets of encoded data slices is a dispersed storage error encoded representation of a data segment of data, and wherein at least a threshold number of encoded data slices of the set of encoded data slices is required to reproduce the data segment; and

send the one or more unsuccessful write requests to an auxiliary writing unit of the DSN; and

a processing module, when operable within the auxiliary writing unit, causes the auxiliary writing unit to:

for an unsuccessful write request of the one or more unsuccessful write requests:

identify a storage unit of the DSN to produce an identified storage unit;

send the unsuccessful write request to the identified storage unit; and

verify successful execution of the unsuccessful write request by the identified storage unit.

10. The DSN of claim 9 further comprises:

the processing module, when operable within the auxiliary writing unit, further causes the auxiliary writing unit to:

when the unsuccessful write request was unsuccessful due to a particular storage unit of the DSN being unavailable, identify the particular storage unit as the identified storage unit when the particular storage unit becomes available.

11. The DSN of claim 9 further comprises:

the processing module, when operable within the auxiliary writing unit, further causes the auxiliary writing unit to:

when the unsuccessful write request was unsuccessful due to a particular storage unit of the DSN being unavailable, identify another storage unit of the DSN as the identified storage unit.

12. The DSN of claim 9 , wherein the write request further comprises:

a first phase write message that includes the one or more encoded data slices, corresponding slices names for the one or more encoded data slices, and a transaction number;

in response to an acknowledgement of the first phase write message, the write request further includes a second phase commit write message that includes the transaction number and a commit command; and

in response to an acknowledgement of the second phase commit write message, the write request further includes a third phase finalize write message.

13. The DSN of claim 9 , wherein the processing module functions to send the unsuccessful write request to the identified storage unit by:

sending as a single message:

a first phase write message that includes the one or more encoded data slices, corresponding slices names for the one or more encoded data slices, and a transaction number;

a second phase commit write message that includes a commit command; and

a third phase finalize write message.

14. The DSN of claim 9 further comprises:

the processing module, when operable within the auxiliary writing unit, further causes the auxiliary writing unit to:

when the identified storage unit successfully executes the unsuccessful write request, notify the first device of successful writing of the unsuccessful write request by the identified storage unit.

15. The DSN of claim 9 further comprises:

the processing module, when operable within the auxiliary writing unit, further causes the auxiliary writing unit to:

send a message to a rebuilder unit indicating that the auxiliary writing unit is processing writing of encoded data slices of the one or more sets of encoded data slices associated with the one or more unsuccessful write requests to the storage units of the DSN.

16. The DSN of claim 9 further comprises:

the processing module, when operable within the auxiliary writing unit, further causes the auxiliary writing unit to:

for a second unsuccessful write request of the one or more unsuccessful write requests:

identify a second storage unit of the DSN to produce a second identified storage unit;

send the second unsuccessful write request to the second identified storage unit; and

verify successful execution of the second unsuccessful write request by the second identified storage unit.

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 May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2013
From: KAZI, ASIMUDDIN; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 031223/0766 →