Previously we assumed that if our peers didn't change and we had the
leadership, that the peers would continue to acknowledge our
leadership. But this assumes that a peer didn't restart or crash.
Instead, on every leader iteration, check with all the peers that we
are still the leader (using the same GRPC method). For negligible
additional traffic, this should enable greater recovery from errors
and greater consistency of leader election.
Previously we assumed that if our peers didn't change and we had the leadership, that the peers would continue to acknowledge our leadership. But this assumes that a peer didn't restart or crash. Instead, on every leader iteration, check with all the peers that we are still the leader (using the same GRPC method). For negligible additional traffic, this should enable greater recovery from errors and greater consistency of leader election.
Issue #348