You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
IO operations such as RaftStorage::append_to_log() and RaftStorage::apply_to_state_machine() are currently executed within the tokio-task that runs RaftCore, causing every IO operation blocks the entire system.
To avoid this issue, IO operations should be performed in a separate tokio-task, allowing RaftCore to receive IO completion events via the event channel. This approach will enable RaftCore to handle other requests while IO operation is in progress.
To prevent reference sharing, extract the entries from input entries buffer instead of directly referencing them. The buffer used for input entries can not be shared between RaftCore and the IO-worker.
IO and network operations are queued in Engine.output.commands. Send these commands to the io-worker thread.
The text was updated successfully, but these errors were encountered:
IO operations such as
RaftStorage::append_to_log()
andRaftStorage::apply_to_state_machine()
are currently executed within the tokio-task that runsRaftCore
, causing every IO operation blocks the entire system.To avoid this issue, IO operations should be performed in a separate tokio-task, allowing
RaftCore
to receive IO completion events via the event channel. This approach will enableRaftCore
to handle other requests while IO operation is in progress.Ent: RaftEntry
toEngine
. #728input_entries
to RaftCore #737Progress
only tracks persisted log id. It should also track transient log id: written but not yet flushed.RaftCore
and the IO-worker.Engine.output.commands
. Send these commands to the io-worker thread.The text was updated successfully, but these errors were encountered: