RETRYING WRITE OPERATIONS AFTER FAILURES
A computing device includes interfaces and communicates with a dispersed storage network (DSN) and issues write slice requests to a set of storage units (SUs) to store distributedly a set of encoded data slices (EDSs) associated with a data object. When at least a write threshold number of favorable write slice responses are received, the computing device identifies an EDS without write confirmation and an SU associated therewith. The computing device stores the EDS without write confirmation in a slice cache memory and, based on a determination to reissue a write slice request associated with the EDS without write confirmation, the computing device reissues the write slice request. When a favorable write slice response is received from the SU associated with the EDS without write confirmation, the computing device deletes the EDS of the at least the write threshold number of EDSs without write confirmation from the slice cache memory.
1 . A computing device comprising:
an interface configured to interface and communicate with a dispersed or distributed storage network (DSN);
memory that stores operational instructions; and
a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the computing device based on the operational instructions, is configured to:
issue a plurality of write slice requests to a set of storage units (SUs) to store distributedly a set of encoded data slices (EDSs) associated with a data object, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs, and wherein a write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN;
when at least a write threshold number of favorable write slice responses are received from at least the write threshold number of SUs of the set of SUs acknowledging storage of at least the write threshold number of EDSs of the set of EDSs, identify an EDS of the at least the write threshold number of EDSs without write confirmation and an SU associated with the EDS of the at least the write threshold number of EDSs without write confirmation;
store the EDS of the at least the write threshold number of EDSs without write confirmation in a slice cache memory of the computing device;
based on a determination to reissue a write slice request of the plurality of write slice requests associated with the EDS of the at least the write threshold number of EDSs without write confirmation, reissue the write slice request of the plurality of write slice requests to the SU associated with the EDS of the at least the write threshold number of EDSs without write confirmation; and
when a favorable write slice response is received from the SU associated with the EDS of the at least the write threshold number of EDSs without write confirmation in response to the write slice request of the plurality of write slice requests, delete the EDS of the at least the write threshold number of EDSs without write confirmation from the slice cache memory of the computing device.
2 . The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:
when an unfavorable write slice response is received from the SU of the plurality of SUs associated with the EDS of the at least the write threshold number of EDSs without write confirmation in response to the write slice request of the plurality of write slice requests and based on another determination to reissue another write slice request of the plurality of write slice requests associated with the EDS of the at least the write threshold number of EDSs without write confirmation, reissue the another write slice request of the plurality of write slice requests to the SU of the plurality of SUs associated with the EDS of the at least the write threshold number of EDSs without write confirmation.
3 . The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:
delete the EDS of the at least the write threshold number of EDSs without write confirmation from the slice cache memory of the computing device and store a new EDS of the at least the write threshold number of EDSs without write confirmation in the slice cache memory of the computing device when available storage space of the slice cache memory of the computing device is below a threshold.
4 . The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:
determine whether to reissue the write slice request of the plurality of write slice requests associated with the EDS of the at least the write threshold number of EDSs without write confirmation based on at least one of receiving a SU availability indicator, interpreting a resend schedule, receiving an error message, receiving an access request response, receiving a resend request that request resending EDSs without write confirmation, or receiving a rebuilding request.
5 . The computing device of claim 1 , wherein:
a decode threshold number of EDSs are needed to recover the data segment;
a read threshold number of EDSs provides for reconstruction of the data segment;
the set of EDSs is of pillar width and includes a pillar number of EDSs;
each of the decode threshold, the read threshold, and the write threshold is less than the pillar number; and
the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.
6 . The computing device of claim 1 , wherein the computing device is located at a first premises that is remotely located from at least one SU of the plurality of SUs within the DSN.
7 . The computing device of claim 1 further comprising:
a SU of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.
8 . The computing device of claim 1 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication systems, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).
9 . A computing device comprising:
an interface configured to interface and communicate with a dispersed or distributed storage network (DSN);
memory that stores operational instructions; and
a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the computing device based on the operational instructions, is configured to:
issue a plurality of write slice requests to a set of storage units (SUs) to store distributedly a set of encoded data slices (EDSs) associated with a data object, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs, and wherein a write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN, wherein a decode threshold number of EDSs are needed to recover the data segment, wherein a read threshold number of EDSs provides for reconstruction of the data segment;
when at least a write threshold number of favorable write slice responses are received from at least the write threshold number of SUs of the set of SUs acknowledging storage of at least the write threshold number of EDSs of the set of EDSs, identify an EDS of the at least the write threshold number of EDSs without write confirmation and an SU associated with the EDS of the at least the write threshold number of EDSs without write confirmation;
store the EDS of the at least the write threshold number of EDSs without write confirmation in a slice cache memory of the computing device;
determine whether to reissue a write slice request of the plurality of write slice requests associated with the EDS of the at least the write threshold number of EDSs without write confirmation based on at least one of receiving a SU availability indicator, interpreting a resend schedule, receiving an error message, receiving an access request response, receiving a resend request that request resending EDSs without write confirmation, or receiving a rebuilding request.
based on a determination to reissue the write slice request of the plurality of write slice requests associated with the EDS of the at least the write threshold number of EDSs without write confirmation, reissue the write slice request of the plurality of write slice requests to the SU associated with the EDS of the at least the write threshold number of EDSs without write confirmation; and
when a favorable write slice response is received from the SU associated with the EDS of the at least the write threshold number of EDSs without write confirmation in response to the write slice request of the plurality of write slice requests, delete the EDS of the at least the write threshold number of EDSs without write confirmation from the slice cache memory of the computing device.
10 . The computing device of claim 9 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:
when an unfavorable write slice response is received from the SU of the plurality of SUs associated with the EDS of the at least the write threshold number of EDSs without write confirmation in response to the write slice request of the plurality of write slice requests and based on another determination to reissue another write slice request of the plurality of write slice requests associated with the EDS of the at least the write threshold number of EDSs without write confirmation, reissue the another write slice request of the plurality of write slice requests to the SU of the plurality of SUs associated with the EDS of the at least the write threshold number of EDSs without write confirmation.
11 . The computing device of claim 9 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:
delete the EDS of the at least the write threshold number of EDSs without write confirmation from the slice cache memory of the computing device and store a new EDS of the at least the write threshold number of EDSs without write confirmation in the slice cache memory of the computing device when available storage space of the slice cache memory of the computing device is below a threshold.
12 . The computing device of claim 9 , wherein the computing device is located at a first premises that is remotely located from at least one SU of the plurality of SUs within the DSN.
13 . The computing device of claim 9 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication systems, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).
14 . A method for execution by a computing device, the method comprising:
issuing, via an interface of the computing device that is configured to interface and communicate with a dispersed or distributed storage network (DSN), a plurality of write slice requests to a set of storage units (SUs) to store distributedly a set of encoded data slices (EDSs) associated with a data object, wherein the data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce the set of EDSs, and wherein a write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN;
when at least a write threshold number of favorable write slice responses are received via the interface from at least the write threshold number of SUs of the set of SUs acknowledging storage of at least the write threshold number of EDSs of the set of EDSs, identify an EDS of the at least the write threshold number of EDSs without write confirmation and an SU associated with the EDS of the at least the write threshold number of EDSs without write confirmation;
storing the EDS of the at least the write threshold number of EDSs without write confirmation in a slice cache memory of the computing device;
based on a determination to reissue a write slice request of the plurality of write slice requests associated with the EDS of the at least the write threshold number of EDSs without write confirmation, reissuing via the interface the write slice request of the plurality of write slice requests to the SU associated with the EDS of the at least the write threshold number of EDSs without write confirmation; and
when a favorable write slice response is received from the SU associated with the EDS of the at least the write threshold number of EDSs without write confirmation in response to the write slice request of the plurality of write slice requests, deleting the EDS of the at least the write threshold number of EDSs without write confirmation from the slice cache memory of the computing device.
15 . The method of claim 14 further comprising:
when an unfavorable write slice response is received from the SU of the plurality of SUs associated with the EDS of the at least the write threshold number of EDSs without write confirmation in response to the write slice request of the plurality of write slice requests and based on another determination to reissue another write slice request of the plurality of write slice requests associated with the EDS of the at least the write threshold number of EDSs without write confirmation, reissuing via the interface the another write slice request of the plurality of write slice requests to the SU of the plurality of SUs associated with the EDS of the at least the write threshold number of EDSs without write confirmation.
16 . The method of claim 14 further comprising:
deleting the EDS of the at least the write threshold number of EDSs without write confirmation from the slice cache memory of the computing device and store a new EDS of the at least the write threshold number of EDSs without write confirmation in the slice cache memory of the computing device when available storage space of the slice cache memory of the computing device is below a threshold.
17 . The method of claim 14 further comprising:
determining whether to reissue the write slice request of the plurality of write slice requests associated with the EDS of the at least the write threshold number of EDSs without write confirmation based on at least one of receiving a SU availability indicator, interpreting a resend schedule, receiving an error message, receiving an access request response, receiving a resend request that request resending EDSs without write confirmation, or receiving a rebuilding request.
18 . The method of claim 14 , wherein:
a decode threshold number of EDSs are needed to recover the data segment;
a read threshold number of EDSs provides for reconstruction of the data segment;
the set of EDSs is of pillar width and includes a pillar number of EDSs;
each of the decode threshold, the read threshold, and the write threshold is less than the pillar number; and
the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.
19 . The method of claim 14 , wherein the computing device is located at a first premises that is remotely located from at least one SU of the plurality of SUs within the DSN.
20 . The method of claim 14 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication systems, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).