Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

It is important to note that this scenario does not apply when handling the RemoveRaftVoterRequest  RPC in the as part of auto-join feature , because we need a majority of the new voter set to commit the new VotersRecord , which does not include the voter being removed.

Additionally, this unavailability scenario does not apply when adding controllers to the voter set manually (e.g. via AdminClient command). This is because the controller node being added (i.e. controller A from the example above) is not the one sending AddRaftVoterRequest  RPC in this situation, so the controller is free to fetch and commit the new voter set.

Proposed Changes

The proposed change is to update the AddRaftVoterRequest  RPC with a boolean flag that tells the active controller when to send a response for the RPC: after the new voter set is committed, or after the new voter set is written locally.

...