Search in sources :

Example 1 with ReplicatedLockTokenRequest

use of org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenRequest in project neo4j by neo4j.

the class CommitProcessStateMachineCollaborationTest method lockState.

private ReplicatedLockTokenStateMachine lockState(int lockSessionId) {
    ReplicatedLockTokenStateMachine lockState = mock(ReplicatedLockTokenStateMachine.class);
    when(lockState.currentToken()).thenReturn(new ReplicatedLockTokenRequest(null, lockSessionId));
    return lockState;
}
Also used : ReplicatedLockTokenRequest(org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenRequest) ReplicatedLockTokenStateMachine(org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenStateMachine)

Example 2 with ReplicatedLockTokenRequest

use of org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenRequest in project neo4j by neo4j.

the class SegmentedRaftLogPartialEntryRecoveryTest method incompleteEntriesAtTheEndShouldNotCauseFailures.

@Test
public void incompleteEntriesAtTheEndShouldNotCauseFailures() throws Throwable {
    // Given
    // we use a RaftLog to create a raft log file and then we will start chopping bits off from the end
    SegmentedRaftLog raftLog = createRaftLog(100_000);
    raftLog.start();
    // Add a bunch of entries, preferably one of each available kind.
    raftLog.append(new RaftLogEntry(4, new NewLeaderBarrier()));
    raftLog.append(new RaftLogEntry(4, new ReplicatedIdAllocationRequest(new MemberId(UUID.randomUUID()), IdType.RELATIONSHIP, 1, 1024)));
    raftLog.append(new RaftLogEntry(4, new ReplicatedIdAllocationRequest(new MemberId(UUID.randomUUID()), IdType.RELATIONSHIP, 1025, 1024)));
    raftLog.append(new RaftLogEntry(4, new ReplicatedLockTokenRequest(new MemberId(UUID.randomUUID()), 1)));
    raftLog.append(new RaftLogEntry(4, new NewLeaderBarrier()));
    raftLog.append(new RaftLogEntry(5, new ReplicatedTokenRequest(TokenType.LABEL, "labelToken", new byte[] { 1, 2, 3 })));
    raftLog.append(new RaftLogEntry(5, new ReplicatedTransaction(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 })));
    raftLog.stop();
    // We use a temporary RecoveryProtocol to get the file to chop
    RecoveryProtocol recovery = createRecoveryProtocol();
    State recoveryState = recovery.run();
    String logFilename = recoveryState.segments.last().getFilename();
    File logFile = new File(logDirectory, logFilename);
    // When
    // We remove any number of bytes from the end (up to but not including the header) and try to recover
    // Then
    // No exceptions should be thrown
    truncateAndRecover(logFile, SegmentHeader.SIZE);
}
Also used : MemberId(org.neo4j.causalclustering.identity.MemberId) ReplicatedLockTokenRequest(org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenRequest) ReplicatedTokenRequest(org.neo4j.causalclustering.core.state.machines.token.ReplicatedTokenRequest) ReplicatedIdAllocationRequest(org.neo4j.causalclustering.core.state.machines.id.ReplicatedIdAllocationRequest) ReplicatedTransaction(org.neo4j.causalclustering.core.state.machines.tx.ReplicatedTransaction) NewLeaderBarrier(org.neo4j.causalclustering.core.consensus.NewLeaderBarrier) File(java.io.File) RaftLogEntry(org.neo4j.causalclustering.core.consensus.log.RaftLogEntry) Test(org.junit.Test)

Example 3 with ReplicatedLockTokenRequest

use of org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenRequest in project neo4j by neo4j.

the class ReplicatedTransactionStateMachineTest method lockState.

private ReplicatedLockTokenStateMachine lockState(int lockSessionId) {
    @SuppressWarnings("unchecked") ReplicatedLockTokenStateMachine lockState = mock(ReplicatedLockTokenStateMachine.class);
    when(lockState.currentToken()).thenReturn(new ReplicatedLockTokenRequest(null, lockSessionId));
    return lockState;
}
Also used : ReplicatedLockTokenRequest(org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenRequest) ReplicatedLockTokenStateMachine(org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenStateMachine)

Aggregations

ReplicatedLockTokenRequest (org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenRequest)3 ReplicatedLockTokenStateMachine (org.neo4j.causalclustering.core.state.machines.locks.ReplicatedLockTokenStateMachine)2 File (java.io.File)1 Test (org.junit.Test)1 NewLeaderBarrier (org.neo4j.causalclustering.core.consensus.NewLeaderBarrier)1 RaftLogEntry (org.neo4j.causalclustering.core.consensus.log.RaftLogEntry)1 ReplicatedIdAllocationRequest (org.neo4j.causalclustering.core.state.machines.id.ReplicatedIdAllocationRequest)1 ReplicatedTokenRequest (org.neo4j.causalclustering.core.state.machines.token.ReplicatedTokenRequest)1 ReplicatedTransaction (org.neo4j.causalclustering.core.state.machines.tx.ReplicatedTransaction)1 MemberId (org.neo4j.causalclustering.identity.MemberId)1