Skip to content

Commit

Permalink
VSR: Fix liveness for io_depth_write overflow when replicas <= 2
Browse files Browse the repository at this point in the history
Where `config.pipelining_max` exceeds `config.io_depth_write` it's
possible for a client request to be unable to acquire a write IOP if we
have maxed out our IO depth.

This can lead to deadlock for a cluster of one or two, since there is
no other way for the leader to repair the dirty op because no other
replica has it.

The fix is for `on_prepare_timeout()` to retry the prepare.

Reported-by: @ThreeFx

Fixes: tigerbeetle#5
  • Loading branch information
jorangreef authored and ThreeFx committed Sep 14, 2021
1 parent bee2a29 commit 1ae1561
Showing 1 changed file with 0 additions and 3 deletions.
3 changes: 0 additions & 3 deletions src/simulator.zig
Original file line number Diff line number Diff line change
Expand Up @@ -129,19 +129,16 @@ pub fn main() !void {
seed,
replica_count,
client_count,

request_probability,
idle_on_probability,
idle_off_probability,

cluster.options.network_options.packet_simulator_options.one_way_delay_mean,
cluster.options.network_options.packet_simulator_options.one_way_delay_min,
cluster.options.network_options.packet_simulator_options.packet_loss_probability,
cluster.options.network_options.packet_simulator_options.path_maximum_capacity,
cluster.options.network_options.packet_simulator_options.path_clog_duration_mean,
cluster.options.network_options.packet_simulator_options.path_clog_probability,
cluster.options.network_options.packet_simulator_options.packet_replay_probability,

cluster.options.storage_options.read_latency_min,
cluster.options.storage_options.read_latency_mean,
cluster.options.storage_options.write_latency_min,
Expand Down

0 comments on commit 1ae1561

Please sign in to comment.