diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/ReplicationModule.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/ReplicationModule.java index e19c3205be1c..28c17a3f21a3 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/ReplicationModule.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/ReplicationModule.java @@ -62,7 +62,7 @@ public ReplicationModule( MemberId myself, PlatformModule platformModule, Config DurableStateStorage sessionTrackerStorage; sessionTrackerStorage = life.add( new DurableStateStorage<>( fileSystem, clusterStateDirectory, - SESSION_TRACKER_NAME, new GlobalSessionTrackerState.Marshal( MemberId.MARSHAL ), + SESSION_TRACKER_NAME, new GlobalSessionTrackerState.Marshal( new MemberId.Marshal() ), config.get( CausalClusteringSettings.global_session_tracker_state_size ), logProvider ) ); sessionTracker = new SessionTracker( sessionTrackerStorage ); diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/IdentityModule.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/IdentityModule.java index 7a15e62bb4a7..a9a9ed0aa6bc 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/IdentityModule.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/IdentityModule.java @@ -48,7 +48,7 @@ public class IdentityModule Log log = logProvider.getLog( getClass() ); SimpleStorage memberIdStorage = new SimpleFileStorage<>( fileSystem, clusterStateDirectory, - CORE_MEMBER_ID_NAME, MemberId.MARSHAL, logProvider ); + CORE_MEMBER_ID_NAME, new MemberId.Marshal(), logProvider ); try { diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/ConsensusModule.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/ConsensusModule.java index 11a0a2d2745e..5f6409b57008 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/ConsensusModule.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/ConsensusModule.java @@ -110,7 +110,7 @@ public ConsensusModule( MemberId myself, final PlatformModule platformModule, termState = new MonitoredTermStateStorage( durableTermState, platformModule.monitors ); voteState = life.add( new DurableStateStorage<>( fileSystem, clusterStateDirectory, RAFT_VOTE_NAME, - new VoteState.Marshal( MemberId.MARSHAL ), config.get( CausalClusteringSettings.vote_state_size ), + new VoteState.Marshal( new MemberId.Marshal() ), config.get( CausalClusteringSettings.vote_state_size ), logProvider ) ); raftMembershipStorage = life.add( diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MemberIdSetSerializer.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MemberIdSetSerializer.java index 8fb945f7150c..e39dfe579a74 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MemberIdSetSerializer.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MemberIdSetSerializer.java @@ -57,7 +57,7 @@ public static void marshal( MemberIdSet memberSet, WritableChannel channel ) thr Set members = memberSet.getMembers(); channel.putInt( members.size() ); - MemberId.Marshal memberIdMarshal = MemberId.MARSHAL; + MemberId.Marshal memberIdMarshal = new MemberId.Marshal(); for ( MemberId member : members ) { @@ -70,7 +70,7 @@ public static MemberIdSet unmarshal( ReadableChannel channel ) throws IOExceptio HashSet members = new HashSet<>(); int memberCount = channel.getInt(); - MemberId.Marshal memberIdMarshal = MemberId.MARSHAL; + MemberId.Marshal memberIdMarshal = new MemberId.Marshal(); for ( int i = 0; i < memberCount; i++ ) { diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MembershipEntry.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MembershipEntry.java index ecbc4d17865c..fe427c864c2e 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MembershipEntry.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MembershipEntry.java @@ -89,7 +89,7 @@ public String toString() public static class Marshal extends SafeStateMarshal { - MemberId.Marshal memberMarshal = MemberId.MARSHAL; + MemberId.Marshal memberMarshal = new MemberId.Marshal(); @Override public MembershipEntry startState() diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/replication/DistributedOperation.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/replication/DistributedOperation.java index ff98707b2667..e4f8f82445fe 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/replication/DistributedOperation.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/replication/DistributedOperation.java @@ -88,7 +88,7 @@ public ByteBufAwareMarshal serialize() { channel1.putLong( globalSession().sessionId().getMostSignificantBits() ); channel1.putLong( globalSession().sessionId().getLeastSignificantBits() ); - MemberId.MARSHAL.marshal( globalSession().owner(), channel1 ); + new MemberId.Marshal().marshal( globalSession().owner(), channel1 ); channel1.putLong( operationId.localSessionId() ); channel1.putLong( operationId.sequenceNumber() ); @@ -99,7 +99,7 @@ public static ContentBuilder deserialize( ReadableChannel cha { long mostSigBits = channel.getLong(); long leastSigBits = channel.getLong(); - MemberId owner = MemberId.MARSHAL.unmarshal( channel ); + MemberId owner = new MemberId.Marshal().unmarshal( channel ); GlobalSession globalSession = new GlobalSession( new UUID( mostSigBits, leastSigBits ), owner ); long localSessionId = channel.getLong(); diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/DumpClusterState.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/DumpClusterState.java index 259ff40ce6be..9d453fd3897f 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/DumpClusterState.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/DumpClusterState.java @@ -38,6 +38,7 @@ import org.neo4j.causalclustering.core.state.storage.SimpleStorage; import org.neo4j.causalclustering.core.state.storage.StateMarshal; import org.neo4j.causalclustering.identity.MemberId; +import org.neo4j.causalclustering.identity.MemberId.Marshal; import org.neo4j.io.fs.DefaultFileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.kernel.configuration.Config; @@ -90,7 +91,7 @@ public static void main( String[] args ) throws IOException, ClusterStateExcepti void dump() throws IOException { SimpleStorage memberIdStorage = new SimpleFileStorage<>( fs, clusterStateDirectory, CORE_MEMBER_ID_NAME, - MemberId.MARSHAL, NullLogProvider.getInstance() ); + new Marshal(), NullLogProvider.getInstance() ); if ( memberIdStorage.exists() ) { MemberId memberId = memberIdStorage.readState(); @@ -98,14 +99,14 @@ void dump() throws IOException } dumpState( LAST_FLUSHED_NAME, new LongIndexMarshal() ); - dumpState( LOCK_TOKEN_NAME, new ReplicatedLockTokenState.Marshal( MemberId.MARSHAL ) ); + dumpState( LOCK_TOKEN_NAME, new ReplicatedLockTokenState.Marshal( new Marshal() ) ); dumpState( ID_ALLOCATION_NAME, new IdAllocationState.Marshal() ); - dumpState( SESSION_TRACKER_NAME, new GlobalSessionTrackerState.Marshal( MemberId.MARSHAL ) ); + dumpState( SESSION_TRACKER_NAME, new GlobalSessionTrackerState.Marshal( new Marshal() ) ); /* raft state */ dumpState( RAFT_MEMBERSHIP_NAME, new RaftMembershipState.Marshal() ); dumpState( RAFT_TERM_NAME, new TermState.Marshal() ); - dumpState( RAFT_VOTE_NAME, new VoteState.Marshal( MemberId.MARSHAL ) ); + dumpState( RAFT_VOTE_NAME, new VoteState.Marshal( new Marshal() ) ); } private void dumpState( String name, StateMarshal marshal ) diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/CoreStateMachinesModule.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/CoreStateMachinesModule.java index f4d81f08fff9..7cff23ae9a3d 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/CoreStateMachinesModule.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/CoreStateMachinesModule.java @@ -125,7 +125,7 @@ public CoreStateMachinesModule( MemberId myself, PlatformModule platformModule, lockTokenState = life.add( new DurableStateStorage<>( fileSystem, clusterStateDirectory, LOCK_TOKEN_NAME, - new ReplicatedLockTokenState.Marshal( MemberId.MARSHAL ), + new ReplicatedLockTokenState.Marshal( new MemberId.Marshal() ), config.get( replicated_lock_token_state_size ), logProvider ) ); idAllocationState = life.add( diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/id/ReplicatedIdAllocationRequestSerializer.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/id/ReplicatedIdAllocationRequestSerializer.java index 59fc51470002..762a8f00c30f 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/id/ReplicatedIdAllocationRequestSerializer.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/id/ReplicatedIdAllocationRequestSerializer.java @@ -40,7 +40,7 @@ private ReplicatedIdAllocationRequestSerializer() public static void marshal( ReplicatedIdAllocationRequest idRangeRequest, WritableChannel channel ) throws IOException { - MemberId.MARSHAL.marshal( idRangeRequest.owner(), channel ); + new MemberId.Marshal().marshal( idRangeRequest.owner(), channel ); channel.putInt( idRangeRequest.idType().ordinal() ); channel.putLong( idRangeRequest.idRangeStart() ); channel.putInt( idRangeRequest.idRangeLength() ); @@ -48,7 +48,7 @@ public static void marshal( ReplicatedIdAllocationRequest idRangeRequest, Writab public static ReplicatedIdAllocationRequest unmarshal( ReadableChannel channel ) throws IOException, EndOfStreamException { - MemberId owner = MemberId.MARSHAL.unmarshal( channel ); + MemberId owner = new MemberId.Marshal().unmarshal( channel ); IdType idType = IdType.values()[ channel.getInt() ]; long idRangeStart = channel.getLong(); int idRangeLength = channel.getInt(); diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/locks/ReplicatedLockTokenSerializer.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/locks/ReplicatedLockTokenSerializer.java index 8fe688b3677e..0be5f9eb6548 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/locks/ReplicatedLockTokenSerializer.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/locks/ReplicatedLockTokenSerializer.java @@ -39,13 +39,13 @@ private ReplicatedLockTokenSerializer() public static void marshal( ReplicatedLockTokenRequest tokenRequest, WritableChannel channel ) throws IOException { channel.putInt( tokenRequest.id() ); - MemberId.MARSHAL.marshal( tokenRequest.owner(), channel ); + new MemberId.Marshal().marshal( tokenRequest.owner(), channel ); } public static ReplicatedLockTokenRequest unmarshal( ReadableChannel channel ) throws IOException, EndOfStreamException { int candidateId = channel.getInt(); - MemberId owner = MemberId.MARSHAL.unmarshal( channel ); + MemberId owner = new MemberId.Marshal().unmarshal( channel ); return new ReplicatedLockTokenRequest( owner, candidateId ); } diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/snapshot/CoreStateType.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/snapshot/CoreStateType.java index 912fe1d3ec4c..80d94022520e 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/snapshot/CoreStateType.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/snapshot/CoreStateType.java @@ -30,8 +30,8 @@ public enum CoreStateType { - LOCK_TOKEN( new ReplicatedLockTokenState.Marshal( MemberId.MARSHAL ) ), - SESSION_TRACKER( new GlobalSessionTrackerState.Marshal( MemberId.MARSHAL ) ), + LOCK_TOKEN( new ReplicatedLockTokenState.Marshal( new MemberId.Marshal() ) ), + SESSION_TRACKER( new GlobalSessionTrackerState.Marshal( new MemberId.Marshal() ) ), ID_ALLOCATION( new IdAllocationState.Marshal() ), RAFT_CORE_STATE( new RaftCoreState.Marshal() ); diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/identity/MemberId.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/identity/MemberId.java index ad113edef826..9280504b60e0 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/identity/MemberId.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/identity/MemberId.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.io.Serializable; +import java.nio.charset.Charset; import java.util.Objects; import java.util.UUID; @@ -36,8 +37,6 @@ // TODO: basics for Serializable public class MemberId implements Serializable { - public static final Marshal MARSHAL = new Marshal(); - private final UUID uuid; private final String shortName; @@ -90,9 +89,7 @@ public int hashCode() */ public static class Marshal extends SafeStateMarshal { - private Marshal() - { - } + private static final Charset UTF8 = Charset.forName("UTF-8"); @Override public void marshal( MemberId memberId, WritableChannel channel ) throws IOException diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v1/RaftMessageDecoder.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v1/RaftMessageDecoder.java index 70ba18589861..3f9cc8a224ea 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v1/RaftMessageDecoder.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v1/RaftMessageDecoder.java @@ -174,7 +174,7 @@ else if ( messageType.equals( LOG_COMPACTION_INFO ) ) private MemberId retrieveMember( ReadableChannel buffer ) throws IOException, EndOfStreamException { - MemberId.Marshal memberIdMarshal = MemberId.MARSHAL; + MemberId.Marshal memberIdMarshal = new MemberId.Marshal(); return memberIdMarshal.unmarshal( buffer ); } } diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v1/RaftMessageEncoder.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v1/RaftMessageEncoder.java index c5dffd1b7911..4a7c4ce565ea 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v1/RaftMessageEncoder.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v1/RaftMessageEncoder.java @@ -50,7 +50,7 @@ public synchronized void encode( ChannelHandlerContext ctx, { RaftMessages.RaftMessage message = decoratedMessage.message(); ClusterId clusterId = decoratedMessage.clusterId(); - MemberId.Marshal memberMarshal = MemberId.MARSHAL; + MemberId.Marshal memberMarshal = new MemberId.Marshal(); NetworkFlushableByteBuf channel = new NetworkFlushableByteBuf( out ); ClusterId.Marshal.INSTANCE.marshal( clusterId, channel ); diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v2/decoding/RaftMessageDecoder.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v2/decoding/RaftMessageDecoder.java index fba6b8b9947c..a7d15ef33abe 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v2/decoding/RaftMessageDecoder.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/marshalling/v2/decoding/RaftMessageDecoder.java @@ -183,7 +183,8 @@ Optional maybeCompose( Clock clock, Queue memberIdStorage = new SimpleFileStorage<>( fsa.get(), clusterStateDirectory.get(), - CORE_MEMBER_ID_NAME, MemberId.MARSHAL, NullLogProvider.getInstance() ); + CORE_MEMBER_ID_NAME, new MemberId.Marshal(), NullLogProvider.getInstance() ); memberIdStorage.writeState( new MemberId( UUID.randomUUID() ) ); createDurableState( LAST_FLUSHED_NAME, new LongIndexMarshal() ); - createDurableState( LOCK_TOKEN_NAME, new ReplicatedLockTokenState.Marshal( MemberId.MARSHAL ) ); + createDurableState( LOCK_TOKEN_NAME, new ReplicatedLockTokenState.Marshal( new MemberId.Marshal() ) ); createDurableState( ID_ALLOCATION_NAME, new IdAllocationState.Marshal() ); - createDurableState( SESSION_TRACKER_NAME, new GlobalSessionTrackerState.Marshal( MemberId.MARSHAL ) ); + createDurableState( SESSION_TRACKER_NAME, new GlobalSessionTrackerState.Marshal( new MemberId.Marshal() ) ); /* raft state */ createDurableState( RAFT_MEMBERSHIP_NAME, new RaftMembershipState.Marshal() ); createDurableState( RAFT_TERM_NAME, new TermState.Marshal() ); - createDurableState( RAFT_VOTE_NAME, new VoteState.Marshal( MemberId.MARSHAL ) ); + createDurableState( RAFT_VOTE_NAME, new VoteState.Marshal( new MemberId.Marshal() ) ); } private void createDurableState( String name, StateMarshal marshal ) diff --git a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/state/machines/locks/ReplicatedLockTokenStateMachineTest.java b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/state/machines/locks/ReplicatedLockTokenStateMachineTest.java index a7c9698695d0..ba8564b1f2b1 100644 --- a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/state/machines/locks/ReplicatedLockTokenStateMachineTest.java +++ b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/state/machines/locks/ReplicatedLockTokenStateMachineTest.java @@ -192,7 +192,7 @@ public void shouldPersistAndRecoverState() throws Exception fsa.mkdir( testDir.directory() ); StateMarshal marshal = - new ReplicatedLockTokenState.Marshal( MemberId.MARSHAL ); + new ReplicatedLockTokenState.Marshal( new MemberId.Marshal() ); MemberId memberA = member( 0 ); MemberId memberB = member( 1 ); @@ -200,7 +200,7 @@ public void shouldPersistAndRecoverState() throws Exception DurableStateStorage storage = new DurableStateStorage<>( fsa, testDir.directory(), "state", marshal, 100, NullLogProvider.getInstance() ); - try ( Lifespan ignored = new Lifespan( storage ) ) + try ( Lifespan lifespan = new Lifespan( storage ) ) { ReplicatedLockTokenStateMachine stateMachine = new ReplicatedLockTokenStateMachine( storage ); @@ -217,7 +217,7 @@ public void shouldPersistAndRecoverState() throws Exception // then DurableStateStorage storage2 = new DurableStateStorage<>( fsa, testDir.directory(), "state", marshal, 100, NullLogProvider.getInstance() ); - try ( Lifespan ignored = new Lifespan( storage2 ) ) + try ( Lifespan lifespan = new Lifespan( storage2 ) ) { ReplicatedLockTokenState initialState = storage2.getInitialState(); @@ -234,12 +234,12 @@ public void shouldBeIdempotent() fsa.mkdir( testDir.directory() ); StateMarshal marshal = - new ReplicatedLockTokenState.Marshal( MemberId.MARSHAL ); + new ReplicatedLockTokenState.Marshal( new MemberId.Marshal() ); DurableStateStorage storage = new DurableStateStorage<>( fsa, testDir.directory(), "state", marshal, 100, NullLogProvider.getInstance() ); - try ( Lifespan ignored = new Lifespan( storage ) ) + try ( Lifespan lifespan = new Lifespan( storage ) ) { ReplicatedLockTokenStateMachine stateMachine = new ReplicatedLockTokenStateMachine( storage ); diff --git a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/state/storage/SimpleStorageTest.java b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/state/storage/SimpleStorageTest.java index 99c944b96913..fe4f3c5866c5 100644 --- a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/state/storage/SimpleStorageTest.java +++ b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/state/storage/SimpleStorageTest.java @@ -44,7 +44,7 @@ public void shouldWriteAndReadState() throws Exception { // given SimpleStorage storage = new SimpleFileStorage<>( fsa.get(), new File( "state-dir" ), - "member-id-a", MemberId.MARSHAL, NullLogProvider.getInstance() ); + "member-id-a", new MemberId.Marshal(), NullLogProvider.getInstance() ); // when MemberId idA = new MemberId( UUID.randomUUID() );