My team and I want to make a slight variation to the algorithm, and I wanted to make sure I’m not breaking any basic assumptions.
In our implementations, we have two types of hosts, I’ll call them A host and B host. A B host cannot handle being a leader.
The problem we have is that when we upgrade our system, we have to restart all A hosts while B hosts are all alive.
Currently, only A hosts are members of the Raft council, which means when they are restarted, we have to wait for a quorum of 3 A hosts before electing a leader.
That causes our upgrade process to be very slow since we have to wait for almost all A hosts in order to bring up all of our Raft councils.
The solution we thought of is to have the B hosts be members “Voting only” members of the council and A hosts be “Leader Only” members of the council, which would mean we only need 1 of the council members to start to elect a leader, which would speed up our upgrade process significantly.
We want to separate the voting hosts of the Raft council from the hosts that become leaders.
Do you see a problem with this variation?
Thanks in advance!