port)) .withSnapshotAllowed(new AtomicBoolean(false)) .withTransport(new NettyTransport()) .withSerializer(RaftJournalSystem.createSerializer()) .withType(Type.PASSIVE)
.withSnapshotAllowed(mSnapshotAllowed) .withSerializer(createSerializer()) .withTransport(new NettyTransport())
.withTransport(new NettyTransport()) .withStorage(Storage.builder() .withDirectory(args[0])
/** * Creates a Raft server. */ @SuppressWarnings("unchecked") protected CopycatServer createServer(Address address, Resource.Config config) throws Throwable { ResourceType type = new ResourceType((Class<? extends Resource>) type()); Supplier<StateMachine> stateMachine = () -> { try { return type.factory().newInstance().createStateMachine(config); } catch (InstantiationException | IllegalAccessException e) { throw new RuntimeException(e); } }; CopycatServer server = CopycatServer.builder(address) .withTransport(new LocalTransport(registry)) .withStorage(new Storage(StorageLevel.MEMORY)) .withStateMachine(stateMachine) .build(); type.factory().newInstance().createSerializableTypeResolver().resolve(server.serializer().registry()); servers.add(server); return server; }
/** * Creates a Copycat server. */ private CopycatServer createServer(Member member) { CopycatServer.Builder builder = CopycatServer.builder(member.clientAddress(), member.serverAddress()) .withType(member.type()) .withTransport(new NettyTransport()) .withStorage(Storage.builder() .withStorageLevel(StorageLevel.DISK) .withDirectory(new File(String.format("target/fuzz-logs/%d", member.address().hashCode()))) .withMaxSegmentSize(randomNumber(1024 * 1024 * 7) + (1024 * 1024)) .withMaxEntriesPerSegment(randomNumber(10000) + 1000) .withCompactionThreads(randomNumber(4) + 1) .withCompactionThreshold(Math.random() / (double) 2) .withEntryBufferSize(randomNumber(10000) + 1) .withFlushOnCommit(randomBoolean()) .withMinorCompactionInterval(Duration.ofSeconds(randomNumber(30) + 15)) .withMajorCompactionInterval(Duration.ofSeconds(randomNumber(60) + 60)) .build()) .withStateMachine(FuzzStateMachine::new); CopycatServer server = builder.build(); server.serializer().disableWhitelist(); servers.add(server); return server; }
/** * Builds a server for the replica. */ private ResourceServer buildServer() { // Construct the underlying CopycatServer. The server should have been configured with a CombinedTransport // that facilitates the local client connecting directly to the server. if (clientTransport != null) { serverBuilder.withClientTransport(new CombinedServerTransport(new LocalTransport(localRegistry), clientTransport)) .withServerTransport(serverTransport); } else { serverBuilder.withTransport(new CombinedServerTransport(new LocalTransport(localRegistry), serverTransport)); } // Set the server resource state machine. serverBuilder.withStateMachine(() -> new ResourceManagerState(registry)); // If the quorum hint is ALL then set the local member to ACTIVE. if (quorumHint == Quorum.ALL.size()) { serverBuilder.withType(Member.Type.ACTIVE); } CopycatServer server = serverBuilder.build(); server.serializer().resolve(new ResourceManagerTypeResolver(registry)); return new ResourceServer(server); }
/** * Creates a Copycat server. */ private CopycatServer createServer(Member member) { CopycatServer.Builder builder = CopycatServer.builder(member.clientAddress(), member.serverAddress()) .withType(member.type()) .withTransport(new NettyTransport()) .withStorage(Storage.builder() .withStorageLevel(StorageLevel.DISK) .withDirectory(new File(String.format("target/performance-logs/%d", member.address().hashCode()))) .withCompactionThreads(1) .build()) .withStateMachine(PerformanceStateMachine::new); CopycatServer server = builder.build(); server.serializer().disableWhitelist(); servers.add(server); return server; }
/** * Creates a Copycat server. */ private CopycatServer createServer(Member member) { CopycatServer.Builder builder = CopycatServer.builder(member.clientAddress(), member.serverAddress()) .withType(member.type()) .withTransport(new LocalTransport(registry)) .withStorage(Storage.builder() .withStorageLevel(StorageLevel.MEMORY) .withMaxSegmentSize(1024 * 1024) .withCompactionThreads(1) .build()) .withStateMachine(TestStateMachine::new); CopycatServer server = builder.build(); server.serializer().disableWhitelist(); servers.add(server); return server; }
/** * Sets the server transport, returning the server builder for method chaining. * <p> * The configured transport should be the same transport as all other nodes in the cluster. * If no transport is explicitly provided, the instance will default to the {@code NettyTransport} * if available on the classpath. * * @param transport The server transport. * @return The server builder. * @throws NullPointerException if {@code transport} is null */ public Builder withTransport(Transport transport) { builder.withTransport(transport); return this; }
/** * Sets the server transport, returning the server builder for method chaining. * <p> * The configured transport should be the same transport as all other nodes in the cluster. * If no transport is explicitly provided, the instance will default to the {@code NettyTransport} * if available on the classpath. * * @param transport The server transport. * @return The server builder. * @throws NullPointerException if {@code transport} is null */ public Builder withTransport(Transport transport) { builder.withTransport(transport); return this; }