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
The raftLog structure currently plays multiple roles. Notably:
Provides read/write access to the raft log (both the unstable in-memory part, and the Storage part), and keeps the basic metadata about the log.
To some degree, ensures correctness w.r.t. the core raft algorithm.
Implements flow control mechanisms for applying the commands from this log.
The flow control role is quite distinct from the other roles, and is less fundamental. It should be decoupled. Once decoupling is done, raftLog can be isolated in its own package and rigorously tested without assumptions about the flow.
Related to #64, though this clean-up has value on its own.
The text was updated successfully, but these errors were encountered:
@Elbehery Sure, give it a try. I got to say that good first issue might be an understatement, doing this requires some familiarity with this repo. LMK if I can help figuring things out (I don't know if you're already familiar).
The complexity may vary here depending on how far we go with it. But we can start with simple mechanical decoupling, and revisiting the tests.
Also, let's not merge big changes before the release #89 is done. We can prepare the change in parallel though.
@Elbehery Feel free to send PRs / contribute and tag things "Part of #142". This is more like an umbrella issue and doesn't need an assignee, IMO. I'm also working on related parts at the moment.
The raftLog structure currently plays multiple roles. Notably:
unstable
in-memory part, and theStorage
part), and keeps the basic metadata about the log.raft
algorithm.The flow control role is quite distinct from the other roles, and is less fundamental. It should be decoupled. Once decoupling is done,
raftLog
can be isolated in its own package and rigorously tested without assumptions about the flow.Related to #64, though this clean-up has value on its own.
The text was updated successfully, but these errors were encountered: