Storing data 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:
- sending a set of write commands to storage units of the DSN regarding storage of a set of current revision level encoded data slices, wherein a current revision level of a data segment is dispersed storage error encoded to produce the set of current revision level encoded data slices;
receiving a write acknowledgement in response to a write command of the set of write commands from one of the storage units indicating that the one of the storage units successfully stored, but has not made available for accessing, a current revision level encoded data slice of the set of current revision level encoded data slices;
determining whether a write threshold number of write acknowledgements have been received within a given period indicating that a write threshold number of current revision level encoded data slices of the set of current revision level encoded data slices have been successfully stored, but are not yet available for accessing;
when the write threshold number of write acknowledgements have been received within the given period, issuing a set of commit commands to the storage units regarding making successfully stored current revision level encoded data slices available for accessing; and
subsequent to issuing the set of commit commands, determining whether to issue a set of finalize commands based on one of;
receiving a request for dispersed storage error encoded storage of a data segment having a more recent revision level than the current revision level and receiving a request to make the determination;
wherein a finalize command of the set of finalize commands instructs a storage unit of the storage units regarding storage of a corresponding current revision level encoded data slice of the set of current revision level encoded data slices and storage of a previous revision level encoded data slice of a set of previous revision level encoded data slices, wherein the data segment with the previous revision level is dispersed storage error encoded to produce the set of previous revision level encoded data slices.
4 Assignments
0 Petitions
Accused Products
Abstract
A method begins by a processing module of a dispersed storage network (DSN) sending a set of write commands to storage units of the DSN regarding storage of a set of current revision level encoded data slices and receiving a write acknowledgement in response to a write command. The method continues with the processing module determining whether a write threshold number of write acknowledgements have been received. When the write threshold number of write acknowledgements have been received, the method continues with the processing module issuing a set of commit commands to the storage units. The method continues with the processing module determining whether to issue a set of finalize commands, where a finalize command instructs a storage unit regarding storage of a corresponding current revision level encoded data slice and storage of a previous revision level encoded data.
-
Citations
24 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:
-
sending a set of write commands to storage units of the DSN regarding storage of a set of current revision level encoded data slices, wherein a current revision level of a data segment is dispersed storage error encoded to produce the set of current revision level encoded data slices; receiving a write acknowledgement in response to a write command of the set of write commands from one of the storage units indicating that the one of the storage units successfully stored, but has not made available for accessing, a current revision level encoded data slice of the set of current revision level encoded data slices; determining whether a write threshold number of write acknowledgements have been received within a given period indicating that a write threshold number of current revision level encoded data slices of the set of current revision level encoded data slices have been successfully stored, but are not yet available for accessing; when the write threshold number of write acknowledgements have been received within the given period, issuing a set of commit commands to the storage units regarding making successfully stored current revision level encoded data slices available for accessing; and subsequent to issuing the set of commit commands, determining whether to issue a set of finalize commands based on one of;
receiving a request for dispersed storage error encoded storage of a data segment having a more recent revision level than the current revision level and receiving a request to make the determination;
wherein a finalize command of the set of finalize commands instructs a storage unit of the storage units regarding storage of a corresponding current revision level encoded data slice of the set of current revision level encoded data slices and storage of a previous revision level encoded data slice of a set of previous revision level encoded data slices, wherein the data segment with the previous revision level is dispersed storage error encoded to produce the set of previous revision level encoded data slices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. 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 one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to; send a set of write commands to storage units of the DSN regarding storage of a set of current revision level encoded data slices, wherein a current revision level of a data segment is dispersed storage error encoded to produce the set of current revision level encoded data slices; receive a write acknowledgement in response to a write command of the set of write commands from one of the storage units indicating that the one of the storage units successfully stored, but has not made available for accessing, a current revision level encoded data slice of the set of current revision level encoded data slices; determine whether a write threshold number of write acknowledgements have been received within a given period indicating that a write threshold number of current revision level encoded data slices of the set of current revision level encoded data slices have been successfully stored, but are not yet available for accessing; when the write threshold number of write acknowledgements have been received within the given period, issue a set of commit commands to the storage units regarding making successfully stored current revision level encoded data slices available for accessing; and subsequent to issuing the set of commit commands, determine whether to issue a set of finalize commands based on one of;
receiving a request for dispersed storage error encoded storage of a data segment having a more recent revision level than the current revision level and receiving a request to make the determination;
wherein a finalize command of the set of finalize commands instructs a storage unit of the storage units regarding storage of a corresponding current revision level encoded data slice of the set of current revision level encoded data slices and storage of a previous revision level encoded data slice of a set of previous revision level encoded data slices, wherein the data segment with the previous revision level is dispersed storage error encoded to produce the set of previous revision level encoded data slices. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computing device of a dispersed storage network (DSN), the computing device comprises:
-
an interface; a memory; and a processing module operably coupled to the interface and the memory, wherein the processing module functions to; send, via the interface, a set of write commands to storage units of the DSN regarding storage of a set of current revision level encoded data slices, wherein a current revision level of a data segment is dispersed storage error encoded to produce the set of current revision level encoded data slices; receive, via the interface, a write acknowledgement in response to a write command of the set of write commands from one of the storage units indicating that the one of the storage units successfully stored, but has not made available for accessing, a current revision level encoded data slice of the set of current revision level encoded data slices; determine whether a write threshold number of write acknowledgements have been received within a given period indicating that a write threshold number of current revision level encoded data slices of the set of current revision level encoded data slices have been successfully stored, but are not yet available for accessing; when the write threshold number of write acknowledgements have been received within the given period, issue, via the interface, a set of commit commands to the storage units regarding making successfully stored current revision level encoded data slices available for accessing; and subsequent to issuing the set of commit commands, determine whether to issue a set of finalize commands based on one of;
receiving a request for dispersed storage error encoded storage of a data segment having a more recent revision level than the current revision level and receiving a request to make the determination;
wherein a finalize command of the set of finalize commands instructs a storage unit of the storage units regarding storage of a corresponding current revision level encoded data slice of the set of current revision level encoded data slices and storage of a previous revision level encoded data slice of a set of previous revision level encoded data slices, wherein the data segment with the previous revision level is dispersed storage error encoded to produce the set of previous revision level encoded data slices. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification