mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-27 11:55:15 +00:00
Introduce a new operation, `raft_read`, which calls `read_barrier` on a server, reads the state of the server's state machine, and returns that state. Extend the generator in `basic_generator_test` to generate `raft_read`s. Only do it if forwarding is enabled (although it may make sense to test read barriers in non-forwarding scenario as well - we may think about it and do it in a follow-up). Check the consistency of the read results by comparing them with the model and using the result to extend the model with any newly observed elements. The patchset includes some fixes for correctness (#10578) and liveness (handling aborts correctly). Closes #10561 * github.com:scylladb/scylla: test: raft: randomized_nemesis_test: check consistency of reads test: raft: randomized_nemesis_test: perform linearizable reads using read_barriers test: raft: randomized_nemesis_test: add flags for disabling nemeses raft: server: in `abort()`, abort read barriers before waiting for rpc abort raft: server: handle aborts correctly in `read_barrier` raft: fsm: don't advance commit index further than match_idx during read_quorum