public void FindsMajorityPerfectly(int[] matchIndices, long majority) { var s = new VolatileLeaderState(); foreach (var i in matchIndices) { s.SetMatchIndex(Guid.NewGuid(), i); } Assert.Equal(majority, s.GetMajorityMatchIndex()); }
private void BecomeLeader() { _leaderAddress = null; State.LastVotedForId = State.Id; _volatileLeaderState = new VolatileLeaderState(); var peers = _peerManager.GetPeers().ToArray(); foreach (var peer in peers) { TheTrace.TraceInformation($"[{_meAsAPeer.ShortName}] setting up indices for peer {peer.Address}"); _volatileLeaderState.SetNextIndex(peer.Id, _logPersister.LastIndex + 1); _volatileLeaderState.SetMatchIndex(peer.Id, -1L); } SetupPeerAppendLogJobs(peers); OnRoleChanged(_role = Role.Leader); }