Esempio n. 1
0
        private RaftMembershipManager RaftMembershipManager(InMemoryRaftLog log)
        {
            RaftMembershipManager raftMembershipManager = new RaftMembershipManager(null, INSTANCE, log, Instance, 3, 1000, Clocks.fakeClock(), 1000, new InMemoryStateStorage <RaftMembershipState>((new Marshal()).startState()));

            raftMembershipManager.RecoverFromIndexSupplier = () => 0;
            return(raftMembershipManager);
        }
Esempio n. 2
0
 internal RaftMembershipChanger(ReadableRaftLog raftLog, Clock clock, long electionTimeout, LogProvider logProvider, long catchupTimeout, RaftMembershipManager membershipManager)
 {
     if (!InstanceFieldsInitialized)
     {
         InitializeInstanceFields();
         InstanceFieldsInitialized = true;
     }
     this._raftLog           = raftLog;
     this._clock             = clock;
     this._electionTimeout   = electionTimeout;
     this._catchupTimeout    = catchupTimeout;
     this._membershipManager = membershipManager;
     this._log = logProvider.getLog(this.GetType());
 }
Esempio n. 3
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void membershipManagerShouldUseLatestAppendedMembershipSetEntries() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void MembershipManagerShouldUseLatestAppendedMembershipSetEntries()
        {
            // given
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.causalclustering.core.consensus.log.InMemoryRaftLog log = new org.neo4j.causalclustering.core.consensus.log.InMemoryRaftLog();
            InMemoryRaftLog log = new InMemoryRaftLog();

            RaftMembershipManager membershipManager = LifeRule.add(RaftMembershipManager(log));

            // when
            membershipManager.processLog(0, asList(new AppendLogEntry(0, new RaftLogEntry(0, new RaftTestGroup(1, 2, 3, 4))), new AppendLogEntry(1, new RaftLogEntry(0, new RaftTestGroup(1, 2, 3, 5)))
                                                   ));

            // then
            assertEquals((new RaftTestGroup(1, 2, 3, 5)).Members, membershipManager.VotingMembers());
        }
Esempio n. 4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void membershipManagerShouldRevertToEarlierAppendedMembershipSetAfterTruncationCausesLossOfLastAppended() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void MembershipManagerShouldRevertToEarlierAppendedMembershipSetAfterTruncationCausesLossOfLastAppended()
        {
            // given
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.causalclustering.core.consensus.log.InMemoryRaftLog raftLog = new org.neo4j.causalclustering.core.consensus.log.InMemoryRaftLog();
            InMemoryRaftLog raftLog = new InMemoryRaftLog();

            RaftMembershipManager membershipManager = LifeRule.add(RaftMembershipManager(raftLog));

            // when
            IList <RaftLogCommand> logCommands = asList(new AppendLogEntry(0, new RaftLogEntry(0, new RaftTestGroup(1, 2, 3, 4))), new AppendLogEntry(1, new RaftLogEntry(0, new RaftTestGroup(1, 2, 3, 5))), new AppendLogEntry(2, new RaftLogEntry(0, new RaftTestGroup(1, 2, 3, 6))), new TruncateLogCommand(2)
                                                        );

            foreach (RaftLogCommand logCommand in logCommands)
            {
                logCommand.ApplyTo(raftLog, _log);
            }
            membershipManager.ProcessLog(0, logCommands);

            // then
            assertEquals((new RaftTestGroup(1, 2, 3, 5)).Members, membershipManager.VotingMembers());
        }