Sergey Soldatov created RATIS-2505:
--------------------------------------
Summary: Improve RATIS-2387 with direct synchronous append when
compose disabled
Key: RATIS-2505
URL: https://issues.apache.org/jira/browse/RATIS-2505
Project: Ratis
Issue Type: Improvement
Components: Follower, server
Affects Versions: 3.2.1
Reporter: Sergey Soldatov
Fix For: 3.2.2
After RATIS-2387 introduced the appendEntriesComposeEnabled configuration flag
to address performance regression from RATIS-2235, when compose is disabled the
code still uses asynchronous composition via thenComposeAsync() in the
appendLog() method. This submits the append task to the executor queue instead
of running it inline on the current thread.
That was visible during high write load in Ozone. Some transactions were not
appended because the previous transaction was not yet visible when the next
AppendEntries request arrived. The async scheduling delay meant that concurrent
AppendEntries requests checked the log state in
checkInconsistentAppendEntries() before the previous append operation had
completed, resulting in rejected appends.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)