int port = socket.getLocalPort(); CopycatServer server = CopycatServer .builder(new Address(NetworkAddressUtils.getConnectHost(ServiceType.MASTER_RAFT, ServerConfiguration.global()), port))
mServer = CopycatServer.builder(getLocalAddress(mConf)) .withStorage(storage) .withElectionTimeout(Duration.ofMillis(mConf.getElectionTimeoutMs()))
/** * Returns a new Raft server builder. * <p> * The provided {@link Address} is the address to which to bind the server being constructed. The provided set of * members will be used to connect to the other members in the Raft cluster. The local server {@link Address} does * not have to be present in the address list. * * @param address The address through which clients and servers connect to this server. * @param cluster The cluster members to which to connect. * @return The server builder. */ public static Builder builder(Address address, Address... cluster) { return builder(address, address, Arrays.asList(cluster)); }
/** * Returns a new Raft server builder. * <p> * The provided {@link Address} is the address to which to bind the server being constructed. The provided set of * members will be used to connect to the other members in the Raft cluster. The local server {@link Address} does * not have to be present in the address list. * * @param clientAddress The address through which clients connect to the server. * @param serverAddress The local server member address. * @param cluster The cluster members to which to connect. * @return The server builder. */ public static Builder builder(Address clientAddress, Address serverAddress, Address... cluster) { return builder(clientAddress, serverAddress, Arrays.asList(cluster)); }
/** * Returns a new Copycat server builder using the default host:port. * <p> * The server will be constructed at 0.0.0.0:8700. * * @return The server builder. */ public static Builder builder() { return builder(new Address(DEFAULT_HOST, DEFAULT_PORT)); }
/** * Returns a new Copycat server builder using the default host:port. * <p> * The server will be constructed at 0.0.0.0:8700. * * @return The server builder. */ public static Builder builder() { return builder(new Address(DEFAULT_HOST, DEFAULT_PORT)); }
private Builder(Address clientAddress, Address serverAddress) { this.builder = CopycatServer.builder(clientAddress, serverAddress).withName(SERVER_NAME); }
private Builder(Address clientAddress, Address serverAddress, Collection<Address> members) { this.builder = CopycatServer.builder(clientAddress, serverAddress, members).withName(SERVER_NAME); }
/** * Returns a new Raft server builder. * <p> * The provided {@link Address} is the address to which to bind the server being constructed. The provided set of * members will be used to connect to the other members in the Raft cluster. The local server {@link Address} does * not have to be present in the address list. * * @param type The server member type. * @param address The address through which clients and servers connect to this server. * @param cluster The cluster members to which to connect. * @return The server builder. */ public static Builder builder(Member.Type type, Address address, Address... cluster) { return builder(address, address, Arrays.asList(cluster)).withType(type); }
/** * Returns a new Raft server builder. * <p> * The provided {@link Address} is the address to which to bind the server being constructed. The provided set of * members will be used to connect to the other members in the Raft cluster. The local server {@link Address} does * not have to be present in the address list. * * @param type The server member type. * @param clientAddress The address through which clients connect to the server. * @param serverAddress The local server member address. * @param cluster The cluster members to which to connect. * @return The server builder. */ public static Builder builder(Member.Type type, Address clientAddress, Address serverAddress, Address... cluster) { return builder(clientAddress, serverAddress, Arrays.asList(cluster)).withType(type); }
private CopycatServer createCopyCatServer() { return CopycatServer.builder(new Address(bindHost, bindPort)) .withStorage(new Storage(StorageLevel.MEMORY)) .withStateMachine(() -> stateMachine) .build(); }
CopycatServer server = CopycatServer.builder(address) .withStateMachine(ValueStateMachine::new) .withTransport(new NettyTransport())
/** * 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/performance-logs/%d", member.address().hashCode()))) .withCompactionThreads(1) .build()) .withStateMachine(PerformanceStateMachine::new); CopycatServer server = builder.build(); server.serializer().disableWhitelist(); servers.add(server); return server; }
private Builder(Address clientAddress, Address serverAddress, Collection<Address> members) { this.members = Assert.notNull(members, "members"); Serializer serializer = new Serializer(); this.clientAddress = Assert.notNull(clientAddress, "clientAddress"); this.clientBuilder = CopycatClient.builder(members) .withSerializer(serializer.clone()) .withServerSelectionStrategy(ServerSelectionStrategies.ANY) .withConnectionStrategy(ConnectionStrategies.FIBONACCI_BACKOFF) .withRecoveryStrategy(RecoveryStrategies.RECOVER) .withRetryStrategy(RetryStrategies.FIBONACCI_BACKOFF); this.serverBuilder = CopycatServer.builder(clientAddress, serverAddress, members).withSerializer(serializer.clone()); }
/** * 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; }
/** * 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; }