IP Library Granted Patent US 9,542,239
Granted Patent B2
US 9,542,239 · App. 14/638,654 · Granted Jan 10, 2017

Resolving write request conflicts 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,542,239
App. No.
14/638,654
Granted
Jan 10, 2017
Kind
B2
Abstract

A method to resolve conflicts arising from substantially concurrent write requests regarding a data object begins by a computing device of a dispersed storage network (DSN) issuing a write request for a dispersed storage error encoded version of the data object to storage units of the DSN. The method continues with the computing device receiving write responses, each including either a lock indication or a non-lock indication and conflict information. The method continues with the computing device determining whether at least a write threshold number of received write responses include the lock indication. When less than the at least a write threshold number of write responses have been received that include the lock indication, the method continues with the computing device processing the conflict information to identify one or more other write requests that have a higher priority than the write request and establishing a write request retry time frame.

Claims (98)

1. A method for execution by a computing device of a dispersed storage network (DSN) to resolve conflicts arising from substantially concurrent write requests regarding a data object, the method comprises:

issuing a write request for a dispersed storage error encoded version of the data object to storage units of the DSN;

receiving, in response to the write request, write responses from at least some of the storage units, wherein each of the write responses includes either:

a lock indication; or

a non-lock indication and conflict information;

determining whether at least a write threshold number of write responses have been received that include the lock indication; and

when less than the at least a write threshold number of write responses have been received that include the lock indication:

processing the conflict information to identify one or more other write requests of the substantially concurrent write requests that have a higher priority than the write request; and

establishing a write request retry time frame based on the one or more other write requests that have the higher priority.

2. The method of claim 1 further comprises:

at expiration of the write request retry time frame, issuing a retry write request for the dispersed storage error encoded version of the data object;

receiving, in response to the retry write request, retry write responses from at least some of the storage units, wherein each of the retry write responses includes either:

the lock indication; or

the non-lock indication and updated conflict information;

determining whether at least a write threshold number of retry write responses have been received that include the lock indication; and

when the at least a retry write threshold number of retry write responses have been received that include the lock indication, issuing a commit command to the at least some of the storage units.

3. The method of claim 1 , wherein the conflict information from one of the at least some of the storage units comprises one or more of:

identity of a second write request for the dispersed storage error encoded version of the data object issued by a second computing device that has received the lock indication;

identity of the second computing device;

identity of a third write request for the dispersed storage error encoded version of the data object issued by a third computing device that did not receive the lock indication;

identity of the third computing device; and

information regarding write request processing characteristics of the one of the at least some of the storage units.

4. The method of claim 1 , wherein the processing the conflict information to identify the one or more other write requests that have a higher priority comprises:

determining that, in response to each of the one or more other write requests, a greater number of lock indications were received than were received for the write request.

5. The method of claim 1 , wherein the processing the conflict information to identify the one or more other write requests that have a higher priority comprises:

determining that, in response to one of the one or more other write requests, an equal number of lock indications were received as were received for the write request; and

executing a retry tie-breaking protocol when the equal number of lock indications were received for the one of the one or more other write requests as were received for the write request.

6. The method of claim 5 , wherein the retry tie-breaking protocol comprises:

granting priority to the one of the one or more other write requests when another computing device associated with the one of the one or more other write requests has a higher device priority than the computing device.

7. The method of claim 5 , wherein the retry tie-breaking protocol comprises:

interpreting the conflict information from the storage units of the at least some of the storage units that did not provide the lock indication to the write request of the computing device or to the one or more other write requests of the other computing devices to determine a retry priority between the write request and the one or more other write requests.

8. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of a computing device of a dispersed storage network (DSN) to resolve conflicts arising from substantially concurrent write requests regarding a data object, causes the computing device to:

issue a write request for a dispersed storage error encoded version of the data object to storage units of the DSN;

receive, in response to the write request, write responses from at least some of the storage units, wherein each of the write responses includes either:

a lock indication; or

a non-lock indication and conflict information;

determine whether at least a write threshold number of write responses have been received that include the lock indication; and

when less than the at least a write threshold number of write responses have been received that include the lock indication:

process the conflict information to identify one or more other write requests of the substantially concurrent write requests that have a higher priority than the write request; and

establish a write request retry time frame based on the one or more other write requests that have the higher priority.

9. The computer readable storage medium of claim 8 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing modules, causes the computing device of the DSN to:

at expiration of the write request retry time frame, issue a retry write request for the dispersed storage error encoded version of the data object;

receive, in response to the retry write request, retry write responses from at least some of the storage units, wherein each of the retry write responses includes either:

the lock indication; or

the non-lock indication and updated conflict information;

determine whether at least a write threshold number of retry write responses have been received that include the lock indication; and

when the at least a retry write threshold number of retry write responses have been received that include the lock indication, issue a commit command to the at least some of the storage units.

10. The computer readable storage medium of claim 8 , wherein the conflict information from one of the at least some of the storage units comprises one or more of:

identity of a second write request for the dispersed storage error encoded version of the data object issued by a second computing device that has received the lock indication;

identity of the second computing device;

identity of a third write request for the dispersed storage error encoded version of the data object issued by a third computing device that did not receive the lock indication;

identity of the third computing device; and

information regarding write request processing characteristics of the one of the at least some of the storage units.

11. The computer readable storage medium of claim 8 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the computing device of the DSN to process the conflict information to identify the one or more other write requests that have a higher priority by:

determining that, in response to each of the one or more other write requests, a greater number of lock indications were received than were received for the write request.

12. The computer readable storage medium of claim 8 , wherein the one or more processing modules functions to execute the operational instructions stored by the at least one memory section to cause the computing device of the DSN to process the conflict information to identify the one or more other write requests that have a higher priority by:

determining that, in response to one of the one or more other write requests, an equal number of lock indications were received as were received for the write request; and

executing a retry tie-breaking protocol when the equal number of lock indications were received for the one of the one or more other write requests as were received for the write request.

13. The computer readable storage medium of claim 12 , wherein the retry tie-breaking protocol comprises:

granting priority to the one of the one or more other write requests when another computing device associated with the one of the one or more other write requests has a higher device priority than the computing device.

14. The computer readable storage medium of claim 12 , wherein the retry tie-breaking protocol comprises:

interpreting the conflict information from the storage units of the at least some of the storage units that did not provide the lock indication to the write request of the computing device or to the one or more other write requests of the other computing devices to determine a retry priority between the write request and the one or more other write requests.

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

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:

issue, via the interface, a write request for a dispersed storage error encoded version of a data object to storage units of the DSN, wherein substantially concurrent write requests regarding the data object includes the write request;

receive, via the interface in response to the write request, write responses from at least some of the storage units, wherein each of the write responses includes either:

a lock indication; or

a non-lock indication and conflict information;

determine whether at least a write threshold number of write responses have been received that include the lock indication; and

when less than the at least a write threshold number of write responses have been received that include the lock indication:

process the conflict information to identify one or more other write requests of the substantially concurrent write requests that have a higher priority than the write request; and

establish a write request retry time frame based on the one or more other write requests that have the higher priority.

16. The computing device of claim 15 , wherein the processing module further functions to:

at expiration of the write request retry time frame, issue, via the interface, a retry write request for the dispersed storage error encoded version of the data object;

receive, via the interface in response to the retry write request, retry write responses from at least some of the storage units, wherein each of the retry write responses includes either:

the lock indication; or

the non-lock indication and updated conflict information;

determine whether at least a write threshold number of retry write responses have been received that include the lock indication; and

when the at least a retry write threshold number of retry write responses have been received that include the lock indication, issue, via the interface, a commit command to the at least some of the storage units.

17. The computing device of claim 15 , wherein the conflict information from one of the at least some of the storage units comprises one or more of:

identity of a second write request for the dispersed storage error encoded version of the data object issued by a second computing device that has received the lock indication;

identity of the second computing device;

identity of a third write request for the dispersed storage error encoded version of the data object issued by a third computing device that did not receive the lock indication;

identity of the third computing device; and

information regarding write request processing characteristics of the one of the at least some of the storage units.

18. The computing device of claim 15 , wherein the processing module functions to process the conflict information to identify the one or more other write requests that have a higher priority by:

determining that, in response to each of the one or more other write requests, a greater number of lock indications were received than were received for the write request.

19. The computing device of claim 15 , wherein the processing module functions to process the conflict information to identify the one or more other write requests that have a higher priority by:

determining that, in response to one of the one or more other write requests, an equal number of lock indications were received as were received for the write request; and

executing a retry tie-breaking protocol when the equal number of lock indications were received for the one of the one or more other write requests as were received for the write request.

20. The computing device of claim 19 , wherein the retry tie-breaking protocol comprises:

granting priority to the one of the one or more other write requests when another computing device associated with the one of the one or more other write requests has a higher device priority than the computing device.

21. The computing device of claim 19 , wherein the retry tie-breaking protocol comprises:

interpreting the conflict information from the storage units of the at least some of the storage units that did not provide the lock indication to the write request of the computing device or to the one or more other write requests of the other computing devices to determine a retry priority between the write request and the one or more other write requests.

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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2015
From: GRAY, ADAM MICHAEL; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 035537/0241 →