Open avikivity opened 9 months ago
Which tests are these?
@kbr-scylla Why doesn't consistent topology drop ring delay by default?
Ring delay is used in topology coordinator code.
auto cdc_gen_ts = cdc::new_generation_timestamp(add_ts_delay, _ring_delay);
and
if (barrier_failed) {
// If barrier above failed it means there may be unfenced reads from old replicas.
// Lets wait for the ring delay for those writes to complete or fence to propagate
// before continuing.
// FIXME: nodes that cannot be reached need to be isolated either automatically or
// by an administrator
co_await sleep_abortable(_ring_delay, _as);
node = retake_node(co_await start_operation(), node.id);
}
and
if (barrier_failed) {
// If barrier above failed it means there may be unfinished writes to a decommissioned node.
// Lets wait for the ring delay for those writes to complete and new topology to propagate
// before continuing.
co_await sleep_abortable(_ring_delay, _as);
node = retake_node(co_await start_operation(), node.id);
}
Maybe we want separate delays for cdc, failed barriers, and normal serving. The first two don't impact normal operation, the last does.
AFAICT we don't drop ring_delay and consistent topology doesn't do that automatically.