Description
We previously tried to reduce disk IO by introducing a minimum interval between flushes, the relevant pr is here: https://github.com/apache/ratis/pull/611
However, after subsequent tests, we found that the raft performance has degraded, because flushIfNecessary() function does more operations than just flushing the stream:
Since we enforced the minimum time for each flush, the raft log to can't be committed in flush intervals, which reduces the performance of raft.
So we want to separate out.flush() from flushIfNecessary() and execute it asynchronously, so that the process of writing to disk will not block the operation of other threads.
Attachments
Attachments
Issue Links
- is related to
-
RATIS-1534 SegmentedRaftLogWorker should enforce a minimum time interval between flush calls
- Resolved
- links to