In a separate raft log setup, we have two engines across which a Replica's data is partitioned. We should leverage the type system to make sure these two engines can't accidentally be swapped, and introduce a struct that holds them which can serve as the main entry point for documentation of invariants and concepts. Straw man:
// Big comment here
type Storage {
LogEngine LogEngine // if nil, not separate raft log
StateEngine StateEngine
}
// Accessors/helpers to make it easier to support both configurations.
Epic: CRDB-220
Jira issue: CRDB-22236
In a separate raft log setup, we have two engines across which a Replica's data is partitioned. We should leverage the type system to make sure these two engines can't accidentally be swapped, and introduce a struct that holds them which can serve as the main entry point for documentation of invariants and concepts. Straw man:
Epic: CRDB-220
Jira issue: CRDB-22236