Protocol and correctness work
- opt-in deduplication mechanisms
- witness replicas and quorum-shaping (initial support available)
These are areas of interest, not promised delivery dates. Use them to understand direction, not to plan against a fixed release schedule.
Opt-in deduplication mechanism via implementation of the Implementing
Linearizability at Large Scale and Low
Latency paper. Currently, one
can implement deduplication inside his custom StateMachine implementation. I
would like to offer a generic and opt-in solution by MicroRaft.
Witness replicas (inspired by the Pirogue, a lighter dynamic version of the
Raft distributed consensus
algorithm) now have an
initial implementation. Witness replicas participate in quorum calculations
but do not keep user StateMachine state to reduce storage overhead. When a
follower fails, a witness replica can be promoted to follower role to
increase the number of StateMachine replicas. Operational note: witness
mode should be enabled only after all group members are upgraded to a
witness-aware version.
Offload more work from leader to followers. One candidate is transfer of committed log entries. Just like parallel snapshot chunk transfer from followers, a slow follower can get committed log entries from followers.
Improve the log replication design. The current log replication design is quite solid but there is still room for improvement. One idea is, once a follower installs a snapshot, the leader can boost that follower by increasing its Append Entries RPC batch size, so that it catches up with the majority faster. Another thing to try is, currently when a leader sends an Append Entries RPC to a follower, it does not send another RPC to that follower either until the follower sends a response, or the Append Entries RPC backoff timeout elapses. During this duration, the leader might append new log entries in its local log. During the Append Entries RPC backoff is enabled for a follower, if more log entries are appended to the leader's log, a few of these log entries can be also sent to the follower.