jgroups-extras / jgroups-raft

Implementation of the RAFT consensus protocol in JGroups

Home Page:https://jgroups-extras.github.io/jgroups-raft/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add server/remove server internal command is not saved after compaction

belaban opened this issue · comments

When we add or remove a server (e.g. add(D)), the command is saved in the log as an internal command. However, when we do a log compaction, the internal command is not added to the state snapshot.

Todos:

  • Confirm that the above is true
  • Investigate adding internal commands to the state. Perhaps a separate state (controlled by jgroups-raft), next to the application state?

Hey, Bela. I just got a test verifying that this happens. I'll look more into this next week and come up with something. I like the approach of having an internal state machine for the protocol, as it can also expand to more than members down the road.

Right, this sounds feasible. If you want to discuss, I'm available next week until WED afternoon (then I'm on PTO for 1 week).