Implement write barrier for grouping multiple writers #116
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Signed-off-by: tabokie xy.tao@outlook.com
When testing TiKV with raft engine, I have observed noticeable performance regression (25%) under low pressure when setting
parallelize_fsync
to false. The most convincing cause for it is inefficient batching triggered by prolonged latency of one single request (batch size doesn't grow in ratio to latency).This PR implements a more intelligent batching system at raft engine, similar to RocksDB's write group.
stress
benchmark shows nearly 40% improvements when using 4 threads, compared to fsync inside mutex: