Currently the Raft log storage is tightly coupled with Replica and log entry application. See Replica.handleRaftReadyRaftMuLocked.
To pave the way towards separating Raft log storage from the rest of the storage, we need to first untangle the current log storage logic into separate types/packages.
This includes write and read paths, notably:
- reading entries, term, etc
- appending entries
Eventually, we will arrive at a subset of raft.Storage, and will be able to promote a split at the etcd/raft level too, after better understanding what it would include.
Epic: CRDB-220
Jira issue: CRDB-21505
Currently the Raft log storage is tightly coupled with
Replicaand log entry application. See Replica.handleRaftReadyRaftMuLocked.To pave the way towards separating Raft log storage from the rest of the storage, we need to first untangle the current log storage logic into separate types/packages.
This includes write and read paths, notably:
Eventually, we will arrive at a subset of
raft.Storage, and will be able to promote a split at theetcd/raftlevel too, after better understanding what it would include.Epic: CRDB-220
Jira issue: CRDB-21505