Temporarily 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:
- determining whether to store a data segment of data in a DSN memory in a conventional manner or a temporary manner;
when the data segment is to be stored in the temporary manner;
obtaining a transaction number in accordance with the conventional manner;
generating a set of temporary write commands regarding the storage of the data segment in the DSN memory as a temporarily stored data segment, wherein a temporary write command of the set of temporary write commands includes the transaction number, an encoded portion of the data segment, and an implicit instruction that the encoded portion of the data segment is not to be stored or made accessible in accordance with the conventional manner; and
transmitting the set of temporary write commands to a set of storage units of the DSN memory; and
when the temporarily stored data segment is to be read from the DSN memory;
generating a set of temporary read commands, wherein a temporary read command of the set of temporary read commands includes the transaction number, identity of the encoded portion, and an explicit instruction to read the encoded portion in violation of the conventional manner;
when the data segment is to be stored in the conventional manner;
obtaining the transaction number in accordance with the conventional manner;
issuing a set of write commands regarding the storage of the data segment to the set of storage units;
receiving responses to the set of write commands;
when a threshold number of responses to the set of write commands have been received within a time period, issuing a set of write commit commands, wherein a write commit command of the set of write commit commands instructs a storage unit of the set of storage units to conditionally make available a corresponding one of encoded portions of the data segment;
when the threshold number of responses to the set of write commands have not been received within the time period, issuing a set of rollback commands to the set of storage units to abort the storage of the data segment;
when a threshold number of responses to the set of write commit commands have been received within a second time period, issuing a set of write finalize commands, wherein a write finalize command of the set of write finalize commands instructs the storage unit to permanently make available the corresponding one of the encoded portions of the data segment; and
when the threshold number of responses to the set of write commit commands have not been received within the second time period, issuing a set of undo commands to the set of storage units to undo and abort the storage of the data segment;
updating the data segment to produce an updated data segment; and
when the updated data segment is to be stored in the temporary manner by overwriting the data segment;
generating a set of temporary over-write commands regarding storage of the updated data segment in the DSN memory, wherein a temporary over-write command of the set of temporary over-write commands includes the transaction number, an encoded portion of the updated data segment, and an implicit instruction that the encoded portion of the updated data segment is not to be stored or made accessible in accordance with the conventional manner; and
transmitting the set of temporary over-write commands to the set of storage units.
5 Assignments
0 Petitions
Accused Products
Abstract
A method begins by a dispersed storage (DS) processing module obtaining a transaction number and generating a set of temporary write commands regarding storage of a data segment in a dispersed storage network (DSN) memory, where a temporary write command includes the transaction number, an encoded portion of the data segment, and an implicit instruction that the encoded portion is not to be stored or made accessible in accordance with a conventional manner. The method continues with the DS processing module transmitting the set of temporary write commands to the DSN memory. When the temporarily stored data segment is to be read from the DSN memory, the method continues with the DS processing module generating a set of temporary read commands, where a temporary read command includes the transaction number, identity of the encoded portion, and an explicit instruction to read the encoded portion in violation of the conventional manner.
-
Citations
16 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:
-
determining whether to store a data segment of data in a DSN memory in a conventional manner or a temporary manner; when the data segment is to be stored in the temporary manner; obtaining a transaction number in accordance with the conventional manner; generating a set of temporary write commands regarding the storage of the data segment in the DSN memory as a temporarily stored data segment, wherein a temporary write command of the set of temporary write commands includes the transaction number, an encoded portion of the data segment, and an implicit instruction that the encoded portion of the data segment is not to be stored or made accessible in accordance with the conventional manner; and transmitting the set of temporary write commands to a set of storage units of the DSN memory; and when the temporarily stored data segment is to be read from the DSN memory; generating a set of temporary read commands, wherein a temporary read command of the set of temporary read commands includes the transaction number, identity of the encoded portion, and an explicit instruction to read the encoded portion in violation of the conventional manner; when the data segment is to be stored in the conventional manner; obtaining the transaction number in accordance with the conventional manner; issuing a set of write commands regarding the storage of the data segment to the set of storage units; receiving responses to the set of write commands; when a threshold number of responses to the set of write commands have been received within a time period, issuing a set of write commit commands, wherein a write commit command of the set of write commit commands instructs a storage unit of the set of storage units to conditionally make available a corresponding one of encoded portions of the data segment; when the threshold number of responses to the set of write commands have not been received within the time period, issuing a set of rollback commands to the set of storage units to abort the storage of the data segment; when a threshold number of responses to the set of write commit commands have been received within a second time period, issuing a set of write finalize commands, wherein a write finalize command of the set of write finalize commands instructs the storage unit to permanently make available the corresponding one of the encoded portions of the data segment; and when the threshold number of responses to the set of write commit commands have not been received within the second time period, issuing a set of undo commands to the set of storage units to undo and abort the storage of the data segment; updating the data segment to produce an updated data segment; and when the updated data segment is to be stored in the temporary manner by overwriting the data segment; generating a set of temporary over-write commands regarding storage of the updated data segment in the DSN memory, wherein a temporary over-write command of the set of temporary over-write commands includes the transaction number, an encoded portion of the updated data segment, and an implicit instruction that the encoded portion of the updated data segment is not to be stored or made accessible in accordance with the conventional manner; and transmitting the set of temporary over-write commands to the set of storage units. - View Dependent Claims (2, 3, 4)
-
-
5. 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:
-
receiving a write command regarding storing an encoded portion of a data segment, wherein the write command includes a transaction number; determining whether to store the encoded portion of the data segment in a conventional manner or a temporary manner; when the data segment is to be stored in the temporary manner; temporarily storing the encoded portion of the data segment; recording the transaction number regarding the temporary storing of the encoded portion of the data segment; and outputting a response regarding the temporary storing of the encoded portion of the data segment; receiving a temporary over-write command that includes the transaction number, an encoded portion of an updated data segment, and an implicit instruction that the encoded portion of the updated data segment is not to be stored or made accessible in accordance with the conventional manner; overwriting the encoded portion of the data segment with the encoded portion of the updated data segment; recording the transaction number regarding the temporary storing of the encoded portion of the updated data segment; and outputting a response regarding the temporary storing of the encoded portion of the updated data segment; and when the data segment is to be stored in the conventional manner; storing the encoded portion of the data segment; recording the transaction number regarding the storage of the encoded portion of the data segment; outputting a response regarding the storage of the encoded portion of the data segment; receiving a write commit command or a rollback command, wherein the write commit command includes an instruction to conditionally make available the encoded portion of the data segment and the rollback command includes an instruction to abort the storage of the encoded portion of the data segment; outputting a response to the write commit command; and receiving a finalize command or an undo command, wherein the finalize command includes an instruction to permanently make available the encoded portion of the data segment and the undo command includes an instruction to undo and abort the storage of the encoded portion of the data segment. - View Dependent Claims (6, 7, 8)
-
-
9. A computing device of a dispersed storage network (DSN) comprises:
-
at least one processor and at least one memory; and a dispersed storage (DS) module that includes; a first module, when operable within the computing device, causes the computing device to; determine whether to store a data segment of data in DSN memory in a conventional manner or a temporary manner; a second module, when operable within the computing device, causes the computing device to; when the data segment is to be stored in the temporary manner; obtain a transaction number in accordance with the conventional manner; generate a set of temporary write commands regarding the storage of the data segment as a temporarily stored data segment in the DSN memory, wherein a temporary write command of the set of temporary write commands includes the transaction number, an encoded portion of the data segment, and an implicit instruction that the encoded portion of the data segment is not to be stored or made accessible in accordance with the conventional manner; and transmit the set of temporary write commands to a set of storage units of the DSN memory; and a third module, when operable within the computing device, causes the computing device to; when the temporarily stored data segment is to be read from the DSN memory; generate a set of temporary read commands, wherein a temporary read command of the set of temporary read commands includes the transaction number, identity of the encoded portion, and an explicit instruction to read the encoded portion in violation of the conventional manner; the second module, when operable within the computing device, further causes the computing device to; when the data segment is to be stored in the conventional manner; obtain the transaction number in accordance with the conventional manner; issuing a set of write commands regarding the storage of the data segment to the set of storage units; receive responses to the set of write commands; when a threshold number of responses to the set of write commands have been received within a time period, issue a set of write commit commands, wherein a write commit command of the set of write commit commands instructs a storage unit of the set of storage units to conditionally make available a corresponding one of encoded portions of the data segment; when the threshold number of responses to the set of write commands have not been received within the time period, issue a set of rollback commands to the set of storage units to abort the storage of the data segment; when a threshold number of responses to the set of write commit commands have been received within a second time period, issue a set of write finalize commands, wherein a write finalize command of the set of write finalize commands instructs the storage unit to permanently make available the corresponding one of the encoded portions of the data segment; and when the threshold number of responses to the set of write commit commands have not been received within the second time period, issue a set of undo commands to the set of storage units to undo and abort the storage of the data segment; the second module, when operable within the computing device, further causes the computing device to; update the data segment to produce an updated data segment; and when the updated data segment is to be stored in the temporary manner by overwriting the data segment; generate a set of temporary over-write commands regarding the storage of the updated data segment in the DSN memory, wherein a temporary over-write command of the set of temporary over-write commands includes the transaction number, an encoded portion of the updated data segment, and an implicit instruction that the encoded portion of the updated data segment is not to be stored or made accessible in accordance with the conventional manner; and transmit the set of temporary over-write commands to the set of storage units. - View Dependent Claims (10, 11, 12)
-
-
13. A computing device of a dispersed storage network (DSN) comprises:
-
at least one processor and at least one memory; and a dispersed storage (DS) module that includes; a first module, when operable within the computing device, causes the computing device to; receive a write command regarding storing an encoded portion of a data segment, wherein the write command includes a transaction number; determine whether to store the encoded portion of the data segment in a conventional manner or a temporary manner; a second module, when operable within the computing device, causes the computing device to; when the data segment is to be stored in the temporary manner; temporarily store the encoded portion of the data segment; record the transaction number regarding the temporary storage of the encoded portion of the data segment; and output a response regarding the temporary storage of the encoded portion of the data segment; receive a temporary over-write command that includes the transaction number, an encoded portion of an updated data segment, and an implicit instruction that the encoded portion of the updated data segment is not to be stored or made accessible in accordance with the conventional manner; overwrite the encoded portion of the data segment with the encoded portion of the updated data segment; record the transaction number regarding the temporary storage of the encoded portion of the updated data segment; and output a response regarding the temporary storage of the encoded portion of the updated data segment; and a third module, when operable within the computing device, causes the computing device to; when the data segment is to be stored in the conventional manner; store the encoded portion of the data segment; record the transaction number regarding the storage of the encoded portion of the data segment; output a response regarding the storage of the encoded portion of the data segment; receive a write commit command or a rollback command, wherein the write commit command includes an instruction to conditionally make available the encoded portion of the data segment and the rollback command includes an instruction to abort the storage of the encoded portion of the data segment; output a response to the write commit command; and receive a finalize command or an undo command, wherein the finalize command includes an instruction to permanently make available the encoded portion of the data segment and the undo command includes an instruction to undo and abort the storage of the encoded portion of the data segment. - View Dependent Claims (14, 15, 16)
-
Specification