-
Notifications
You must be signed in to change notification settings - Fork 4.1k
kv: apply log entries outside of raft state machine loop #94854
Copy link
Copy link
Open
Labels
A-kv-replicationRelating to Raft, consensus, and coordination.Relating to Raft, consensus, and coordination.C-performancePerf of queries or internals. Solution not expected to change functional behavior.Perf of queries or internals. Solution not expected to change functional behavior.T-kvKV TeamKV Team
Description
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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-kv-replicationRelating to Raft, consensus, and coordination.Relating to Raft, consensus, and coordination.C-performancePerf of queries or internals. Solution not expected to change functional behavior.Perf of queries or internals. Solution not expected to change functional behavior.T-kvKV TeamKV Team