Adjusting optimistic writes in a dispersed storage network
Abstract
A method includes executing a plurality of three-phase write operations for writing one or more plurality of sets of encoded data slices to a set of storage units of a dispersed storage network (DSN). During execution of the three-phase write operation of the plurality of three-phase write operations, the method continues by determining a write speed of a storage unit of the set of storage units, in processing a write request of the set of write requests, is outside a write speed range. The method further includes determining whether the write speed of the storage unit being outside the write speed range is decreasing performance of the execution of the plurality of three-phase write operations. When yes, the method continues by adjusting, for subsequent phases, the execution of subsequent write requests for the storage unit to bring write speeds for the set of storage units within the write speed range.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method comprises:
executing, by a computing device of a dispersed storage network (DSN), a plurality of three-phase write operations for writing one or more plurality of sets of encoded data slices to a set of storage units of the DSN, wherein a data object is dispersed storage error encoded to produce a plurality of sets of encoded data slices of the one or more plurality of sets of encoded data slices, wherein a phase of a three-phase write operation of the plurality of three-phase write operations includes a set of write requests regarding a set of encoded data slices of the plurality of sets of encoded data slices, and wherein a write threshold number of favorable responses is required from the set of storage units to complete the a phase of the three-phase write operation and to begin a subsequent phase of the three-phase write operation or a first phase of another three-phase write operation of the plurality of three-phase write operations; during execution of the three-phase write operation of the plurality of three-phase write operations: determining, by the computing device, a write speed of a storage unit of the set of storage units, in processing a write request of the set of write requests, is outside a write speed range; determining, by the computing device, whether the write speed of the storage unit being outside the write speed range is decreasing performance of the execution of the plurality of three-phase write operations; and when the write speed is decreasing the performance:
adjusting, by the computing device, for one or more subsequent phases of the plurality of three-phase write operations, the execution of one or more subsequent write requests for the storage unit, wherein the adjusting causes write speeds for the set of storage units in executing the one or more subsequent phases to be within the write speed range.
2 . The method of claim 1 , wherein the write speed range includes one or more of:
a user defined write speed range; one storage unit's write speed being a standard deviation difference than another storage unit's write speed; and a specified level of a quality of service.
3 . The method of claim 1 , wherein the adjustment includes one of:
throttling back the one or more subsequent write requests to the storage unit; and dropping the one or more subsequent write requests to the storage unit.
4 . The method of claim 1 further comprises:
executing, by the computing device, a first phase of the three-phase write operation by:
sending a first set of write requests to the set of storage units regarding a first set of encoded data slices of the plurality of sets of encoded data slices, wherein a first write request of the first set of write requests is regarding a first encoded data slice of the first set of encoded data slices and is sent to a first storage unit of the set of storage units;
receiving at least the write threshold number of favorable write responses from at least some storage units of the set of storage units; and
determining response times for the at least some storage units regarding the first phase.
5 . The method of claim 4 further comprises:
interpreting, by the computing device, the response times for the at least some storage units of the set of storage units for execution of the first phase of one or more of the plurality of three-phase write operations to determine first write speeds for the at least some storage units.
6 . The method of claim 4 further comprises:
executing, by the computing device, a second phase of the three-phase write operation by:
sending a set of write commit requests to the set of storage units regarding the first set of encoded data slices, wherein a first write commit request of the set of write commit requests is regarding the first encoded data slice and is sent to the first storage unit;
receiving at least the write threshold number of favorable write commit responses from at least some storage units of the set of storage units; and
determining second response times for the at least some storage units regarding the second phase.
7 . The method of claim 6 further comprises:
interpreting, by the computing device, the second response times for the at least some storage units for execution of the second phase of one or more of the plurality of three-phase write operations to determine second write speeds for the at least some storage units.
8 . The method of claim 4 further comprises:
executing, by the computing device, a third phase of the three-phase write operation by:
sending a set of write finalize requests to the set of storage units regarding the first set of encoded data slices, wherein a first write finalize request of the set of write finalize requests is regarding the first encoded data slice and is sent to the first storage unit;
receiving at least the write threshold number of favorable write finalize responses from at least some storage units of the set of storage units; and
determining third response times for the at least some storage units regarding the third phase.
9 . The method of claim 8 further comprises:
interpreting, by the computing device, the third response times for the at least some of the sets of storage units for execution of the third phase of one or more of the plurality of three-phase write operations to determine third write speeds for the at least some storage units.
10 . The method of claim 1 , where the determining whether the write speed of the storage unit being outside the write speed range is decreasing performance comprises one or more of:
determining, that due to the write speed, one or more write requests of the plurality of three-phase write operations are being dropped; determining a difference in the write speed between storage units of the set of storage units is causing a phase write speed for executing the phase of the three-phase operation to be less than a phase write speed threshold; and determining that a current level of throughput for the plurality of three-phase write operations is below a minimum level of throughput.
11 . A computing device of a dispersed storage network (DSN), wherein the computing device comprises:
an interface; memory; and a processing module operably coupled to the interface and the memory, wherein the processing module is operable to: execute a plurality of three-phase write operations for writing one or more plurality of sets of encoded data slices to a set of storage units of the DSN, wherein a data object is dispersed storage error encoded to produce a plurality of sets of encoded data slices of the one or more plurality of sets of encoded data slices, wherein a phase of a three-phase write operation of the plurality of three-phase write operations includes a set of write requests regarding a set of encoded data slices of the plurality of sets of encoded data slices, and wherein a write threshold number of favorable responses is required from the set of storage units to complete the a phase of the three-phase write operation and to begin a subsequent phase of the three-phase write operation or a first phase of another three-phase write operation of the plurality of three-phase write operations; during execution of the three-phase write operation of the plurality of three-phase write operations:
determine a write speed of a storage unit of the set of storage units, in processing a write request of the set of write requests, is outside a write speed range;
determine whether the write speed of the storage unit being outside the write speed range is decreasing performance of the execution of the plurality of three-phase write operations; and
when the write speed is decreasing the performance:
adjust for one or more subsequent phases of the plurality of three-phase write operations, the execution of one or more subsequent write requests for the storage unit, wherein the adjusting causes write speeds for the set of storage units in executing the one or more subsequent phases to be within the write speed range.
12 . The computing device of claim 11 , wherein the processing module is operable to determine the write speed range by one or more of:
determining a user defined write speed range; determining one storage unit's write speed being a standard deviation difference than another storage unit's write speed; and determining a specified level of a quality of service.
13 . The computing device of claim 11 , wherein the processing module is operable to performing the adjustment by one of:
throttling back the one or more subsequent write requests to the storage unit; and dropping the one or more subsequent write requests to the storage unit.
14 . The computing device of claim 11 , wherein the processing module is further operable to:
execute a first phase of the three-phase write operation by:
sending, via the interface, a first set of write requests to the set of storage units regarding a first set of encoded data slices of the plurality of sets of encoded data slices, wherein a first write request of the first set of write requests is regarding a first encoded data slice of the first set of encoded data slices and is sent to a first storage unit of the set of storage units;
receiving, via the interface, at least the write threshold number of favorable write responses from at least some storage units of the set of storage units; and
determining response times for the at least some storage units regarding the first phase.
15 . The computing device of claim 14 , wherein the processing module is further operable to:
interpret the response times for the at least some storage units of the set of storage units for execution of the first phase of one or more of the plurality of three-phase write operations to determine first write speeds for the at least some storage units.
16 . The computing device of claim 14 , wherein the processing module is further operable to:
execute a second phase of the three-phase write operation by:
sending, via the interface, a set of write commit requests to the set of storage units regarding the first set of encoded data slices, wherein a first write commit request of the set of write commit requests is regarding the first encoded data slice and is sent to the first storage unit;
receiving, via the interface, at least the write threshold number of favorable write commit responses from at least some storage units of the set of storage units; and
determining second response times for the at least some storage units regarding the second phase.
17 . The computing device of claim 16 , wherein the processing module is further operable to:
interpret the second response times for the at least some storage units for execution of the second phase of one or more of the plurality of three-phase write operations to determine second write speeds for the at least some storage units.
18 . The computing device of claim 14 , wherein the processing module is further operable to:
execute a third phase of the three-phase write operation by:
sending, via the interface, a set of write finalize requests to the set of storage units regarding the first set of encoded data slices, wherein a first write finalize request of the set of write finalize requests is regarding the first encoded data slice and is sent to the first storage unit;
receiving, via the interface, at least the write threshold number of favorable write finalize responses from at least some storage units of the set of storage units; and
determining third response times for the at least some storage units regarding the third phase.
19 . The computing device of claim 18 , wherein the processing module is further operable to:
interpret the third response times for the at least some of the sets of storage units for execution of the third phase of one or more of the plurality of three-phase write operations to determine third write speeds for the at least some storage units.
20 . The computing device of claim 11 , where the processing module is operable to determine whether the write speed of the storage unit being outside the write speed range is decreasing performance by one or more of:
determining, that due to the write speed, one or more write requests of the plurality of three-phase write operations are being dropped; determining a difference in the write speed between storage units of the set of storage units is causing a phase write speed for executing the phase of the three-phase operation to be less than a phase write speed threshold; and determining that a current level of throughput for the plurality of three-phase write operations is below a minimum level of throughput.Join the waitlist — get patent alerts
Track US2019171375A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.