RESOLVING WRITE CONFLICTS IN A DISPERSED STORAGE NETWORK
First Claim
1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:
- transmitting, by a first client device, a first set of write requests regarding a first set of encoded data slices to storage units of the DSN, wherein the first client device dispersed storage error encoded a data object to produce the first set of encoded data slices;
transmitting, by a second client device and nearly concurrently with the transmitting by the first client device, a second set of write requests regarding a second set of encoded data slices to the storage units, wherein the second client device dispersed storage error encoded the data object to produce the second set of encoded data slices;
for a storage unit of the storage units;
receiving one of the first set of write requests before one of the second set of write requests or receiving the one of the second set of write requests before the one of the first set of write requests;
when the one of the first set of write requests is received before the one of the second set of write requests;
generating a first write response message that includes an indication that the data object is locked for the first client device and a storage unit score value;
sending the first write response message to the first client device in response to receiving the one of the first set of write requests; and
sending the first write response message to the second client device in response to receiving the one of the second set of write requests;
when the one of the second set of write requests is received before the one of the first set of write requests;
generating a second write response message that includes an indication that the data object is locked for the second client device and the storage unit score value;
sending the second write response message to the first client device in response to receiving the one of the first set of write requests; and
sending the second write response message to the second client device in response to receiving the one of the second set of write requests;
receiving, by the first client device, first and second write response messages from the storage units;
interpreting, by the first client device, storage unit score values of the received first and second write response messages to determine whether the first client device has write priority over the second client device; and
when the first client device has the write priority over the second client device, sending, by the first client device, a set of next-phase write requests regarding the data object to the storage units.
5 Assignments
0 Petitions
Accused Products
Abstract
A method begins by first and second client devices transmitting first and second sets of write requests to storage units. The method continues with a storage unit sending a write response message to the first and second client devices, where the write response message indicates a storage unit score value for one of the client devices. The method continues with the first and second client devices interpreting the storage unit score values from the storage units to determine which client device has write priority. The method continues with the client device that has the write priority sending a set of next-phase write requests to the storage units. The method continues with the other client device that does not have the write priority sending a set of rollback requests to the storage units.
-
Citations
18 Claims
-
1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:
-
transmitting, by a first client device, a first set of write requests regarding a first set of encoded data slices to storage units of the DSN, wherein the first client device dispersed storage error encoded a data object to produce the first set of encoded data slices; transmitting, by a second client device and nearly concurrently with the transmitting by the first client device, a second set of write requests regarding a second set of encoded data slices to the storage units, wherein the second client device dispersed storage error encoded the data object to produce the second set of encoded data slices; for a storage unit of the storage units; receiving one of the first set of write requests before one of the second set of write requests or receiving the one of the second set of write requests before the one of the first set of write requests; when the one of the first set of write requests is received before the one of the second set of write requests; generating a first write response message that includes an indication that the data object is locked for the first client device and a storage unit score value; sending the first write response message to the first client device in response to receiving the one of the first set of write requests; and sending the first write response message to the second client device in response to receiving the one of the second set of write requests; when the one of the second set of write requests is received before the one of the first set of write requests; generating a second write response message that includes an indication that the data object is locked for the second client device and the storage unit score value; sending the second write response message to the first client device in response to receiving the one of the first set of write requests; and sending the second write response message to the second client device in response to receiving the one of the second set of write requests; receiving, by the first client device, first and second write response messages from the storage units; interpreting, by the first client device, storage unit score values of the received first and second write response messages to determine whether the first client device has write priority over the second client device; and when the first client device has the write priority over the second client device, sending, by the first client device, a set of next-phase write requests regarding the data object to the storage units. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A memory module of a dispersed storage network (DSN), the memory module comprises:
-
a first storage device that stores operational instructions that, when executed by a first client device or a second client device, causes the first client device or the second client device to; transmit, as the first client device, a first set of write requests regarding a first set of encoded data slices to storage units of the DSN, wherein the first client device dispersed storage error encoded a data object to produce the first set of encoded data slices; transmit, as the second client device and nearly concurrently with the transmitting by the first client device, a second set of write requests regarding a second set of encoded data slices to the storage units, wherein the second client device dispersed storage error encoded the data object to produce the second set of encoded data slices; a second storage device that stores operational instructions that, when executed by a storage unit, causes the storage unit to; determine whether one of the first set of write requests was received before one of the second set of write requests or whether the one of the second set of write requests was received before the one of the first set of write requests; when the one of the first set of write requests is received before the one of the second set of write requests; generate a first write response message that includes an indication that the data object is locked for the first client device and a storage unit score value; send the first write response message to the first client device in response to receiving the one of the first set of write requests; and send the first write response message to the second client device in response to receiving the one of the second set of write requests; when the one of the second set of write requests is received before the one of the first set of write requests; generate a second write response message that includes an indication that the data object is locked for the second client device and the storage unit score value; send the second write response message to the first client device in response to receiving the one of the first set of write requests; and send the second write response message to the second client device in response to receiving the one of the second set of write requests; and a third storage device that stores operational instructions that, when executed by the first client device or the second client device, causes the first client device or the second client device to; interpret storage unit score values of received first and second write response messages to determine whether the first client device has write priority over the second client device; and when the first client device has the write priority over the second client device, send, as the first client device, a set of next-phase write requests regarding the data object to the storage units. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification