Resolving write conflicts in a dispersed storage network
First Claim
1. A method for execution by a storage unit of a set of storage units in a dispersed storage network (DSN), the method comprises:
- receiving, by the storage unit, a respective write request of a first set of write requests, wherein a first computing device sent the first set of write requests regarding a first set of encoded data slices of a plurality of sets of encoded data slices to the storage units of the DSN, wherein a data object is divided into a plurality of data segments and the plurality of data segments is dispersed storage error encoded to produce the plurality of sets of encoded data slices, wherein the first set of write requests functions as a write lock request for the entire data object;
determining, by the storage unit, whether the storage unit has writing of the data object currently locked;
sending, by the storage unit, a write lock response regarding the data object to the first computing device, wherein the write lock response is associated with a request to write a particular encoded data slice to storage;
when a number of write lock responses, associated with requests to write a particular encoded data slice to storage, indicate a write lock of the data object for the first computing device and the number is equal to or exceeds a write lock response threshold, receive, by the storage unit, respective write requests from each set of a plurality of sets of write requests, wherein the plurality of sets of write requests includes write requests for remaining sets of encoded data slices of the plurality of sets of encoded data slices;
receiving, substantially concurrently with the receiving of the respective write request of the first set of write requests, a second respective write request of another first set of write requests, wherein a second computing device sent the other first set of write requests regarding another first set of encoded data slices of a second plurality of sets of encoded data slices to the storage units of the DSN, wherein the second computing device divided the data object into a second plurality of data segments and dispersed storage error encoded the second plurality of data segments to produce the second plurality of sets of encoded data slices, wherein the other first set of write requests functions as a write lock request for the data object by the second computing device;
when the respective write request of the first set of write requests was received prior to the second respective write request of another first set of write requests, locking the data object for the first computing device and generating the write lock response indicating the write lock of the data object for the first computing device; and
when the respective write request of the first set of write requests was received after the second respective write request of another first set of write requests, locking the data object for the second computing device and generating the write lock response indicating the write lock of the data object for the second computing device.
5 Assignments
0 Petitions
Accused Products
Abstract
A method includes a storage unit receiving a respective write request of a first set of write requests, wherein the first set of write requests functions as a write lock request. The method further includes the storage unit determining whether the storage unit has writing of the data object currently locked. The method further includes the storage unit sending a write lock response regarding the data object. The method further includes the storage unit, when a number of write lock responses indicate a write lock of the data object for the computing device and the number is equal to or exceeds a write lock response threshold, receive respective write requests from each set of a plurality of sets of write requests, wherein the plurality of sets of write requests includes write requests for remaining sets of encoded data slices of the plurality of sets of encoded data slices.
-
Citations
15 Claims
-
1. A method for execution by a storage unit of a set of storage units in a dispersed storage network (DSN), the method comprises:
-
receiving, by the storage unit, a respective write request of a first set of write requests, wherein a first computing device sent the first set of write requests regarding a first set of encoded data slices of a plurality of sets of encoded data slices to the storage units of the DSN, wherein a data object is divided into a plurality of data segments and the plurality of data segments is dispersed storage error encoded to produce the plurality of sets of encoded data slices, wherein the first set of write requests functions as a write lock request for the entire data object; determining, by the storage unit, whether the storage unit has writing of the data object currently locked; sending, by the storage unit, a write lock response regarding the data object to the first computing device, wherein the write lock response is associated with a request to write a particular encoded data slice to storage; when a number of write lock responses, associated with requests to write a particular encoded data slice to storage, indicate a write lock of the data object for the first computing device and the number is equal to or exceeds a write lock response threshold, receive, by the storage unit, respective write requests from each set of a plurality of sets of write requests, wherein the plurality of sets of write requests includes write requests for remaining sets of encoded data slices of the plurality of sets of encoded data slices; receiving, substantially concurrently with the receiving of the respective write request of the first set of write requests, a second respective write request of another first set of write requests, wherein a second computing device sent the other first set of write requests regarding another first set of encoded data slices of a second plurality of sets of encoded data slices to the storage units of the DSN, wherein the second computing device divided the data object into a second plurality of data segments and dispersed storage error encoded the second plurality of data segments to produce the second plurality of sets of encoded data slices, wherein the other first set of write requests functions as a write lock request for the data object by the second computing device; when the respective write request of the first set of write requests was received prior to the second respective write request of another first set of write requests, locking the data object for the first computing device and generating the write lock response indicating the write lock of the data object for the first computing device; and when the respective write request of the first set of write requests was received after the second respective write request of another first set of write requests, locking the data object for the second computing device and generating the write lock response indicating the write lock of the data object for the second computing device. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A storage unit for using in a dispersed storage network (DSN), the storage unit comprises:
-
an interface; memory; and a processing module operably coupled to the interface and the memory, wherein the processing module is operable to receive, via the interface, a respective write request of a first set of write requests, wherein a first computing device sent the first set of write requests regarding a first set of encoded data slices of a plurality of sets of encoded data slices to the storage units of the DSN, wherein a data object is divided into a plurality of data segments and the plurality of data segments is dispersed storage error encoded to produce the plurality of sets of encoded data slices, wherein the first set of write requests functions as a write lock request for the entire data object; determine whether the storage unit has writing of the data object currently locked; send, via the interface, a write lock response regarding the data object to the first computing device, wherein the write lock response is associated with a request to write a particular encoded data slice to storage; when a number of write lock responses, associated with requests to write a particular encoded data slice to storage, indicate a write lock of the data object for the first computing device and the number is equal to or exceeds a write lock response threshold, receive, via the interface, respective write requests from each set of a plurality of sets of write requests, wherein the plurality of sets of write requests includes write requests for remaining sets of encoded data slices of the plurality of sets of encoded data slices; receive, via the interface and substantially concurrently with receiving of the respective write request of the first set of write requests, a second respective write request of another first set of write requests, wherein a second computing device sent the other first set of write requests regarding another first set of encoded data slices of a second plurality of sets of encoded data slices to the storage units of the DSN, wherein the second computing device divided the data object into a second plurality of data segments and dispersed storage error encoded the second plurality of data segments to produce the second plurality of sets of encoded data slices, wherein the other first set of write requests functions as a write lock request for the data object by the second computing device; when the respective write request of the first set of write requests was received prior to the second respective write request of another first set of write requests, lock the data object for the first computing device and generate the write lock response indicating the write lock of the data object for the first computing device; and when the respective write request of the first set of write requests was received after the second respective write request of another first set of write requests, lock the data object for the second computing device and generate the write lock response indicating the write lock of the data object for the second computing device. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory memory device comprises:
-
a first storage section that stores operational instructions that, when executed by a storage unit of a dispersed storage network (DSN), causes the storage unit to; receive a respective write request of a first set of write requests, wherein a first computing device sent the first set of write requests regarding a first set of encoded data slices of a plurality of sets of encoded data slices to the storage units of the DSN, wherein a data object is divided into a plurality of data segments and the plurality of data segments is dispersed storage error encoded to produce the plurality of sets of encoded data slices, wherein the first set of write requests functions as a write lock request for the entire data object; a second storage section that stores operational instructions that, when executed by the storage unit, causes the storage unit to; determine whether the storage unit has writing of the data object currently locked; and send a write lock response regarding the data object to the first computing device, wherein the write lock response is associated with a request to write a particular encoded data slice to storage; a third storage section that stores operational instructions that, when executed by the storage unit, causes the storage unit to; when a number of write lock responses, associated with requests to write a particular encoded data slice to storage, indicate a write lock of the data object for the first computing device and the number is equal to or exceeds a write lock response threshold, receive respective write requests from each set of a plurality of sets of write requests, wherein the plurality of sets of write requests includes write requests for remaining sets of encoded data slices of the plurality of sets of encoded data slices; the first storage section further stores operational instructions that, when executed by the storage unit, causes the storage unit to; receive, substantially concurrently with receiving of the respective write request of the first set of write requests, a second respective write request of another first set of write requests, wherein a second computing device sent the other first set of write requests regarding another first set of encoded data slices of a second plurality of sets of encoded data slices to the storage units of the DSN, wherein the second computing device divided the data object into a second plurality of data segments and dispersed storage error encoded the second plurality of data segments to produce the second plurality of sets of encoded data slices, wherein the other first set of write requests functions as a write lock request for the data object by the second computing device; the second storage section that stores operational instructions that, when executed by the storage unit, causes the storage unit to; when the respective write request of the first set of write requests was received prior to the second respective write request of another first set of write requests, lock the data object for the first computing device and generate the write lock response indicating the write lock of the data object for the first computing device; and when the respective write request of the first set of write requests was received after the second respective write request of another first set of write requests, lock the data object for the second computing device and generate the write lock response indicating the write lock of the data object for the second computing device. - View Dependent Claims (12, 13, 14, 15)
-
Specification