Extracted from #17500.
After #94165, raft log entry disk writes are asynchronous with respect to the raft state machine loop. However, the (non-durable) engine access for state machine application is still performed inline. The async storage writes interface permits us to extract all of this work onto a separate goroutine.
This would provide three benefits:
- faster state machine loop iteration => less interference between entries => lower latency
- larger apply batches => more efficient state machine application => higher throughput
- flexible scheduling permits deferred application on followers => bigger batches, see benefit 2
Jira issue: CRDB-23189
Extracted from #17500.
After #94165, raft log entry disk writes are asynchronous with respect to the raft state machine loop. However, the (non-durable) engine access for state machine application is still performed inline. The async storage writes interface permits us to extract all of this work onto a separate goroutine.
This would provide three benefits:
Jira issue: CRDB-23189