private void installFollowerPartition(final Raft raft) { final Partition partition = new Partition(partitionInfo, RaftState.FOLLOWER); final ServiceName<Partition> partitionServiceName = followerPartitionServiceName(raft.getName()); if (!startContext.hasService(partitionServiceName)) { LOG.debug("Installing follower partition service for {}", partitionInfo); startContext .createService(partitionServiceName, partition) .dependency(logStreamServiceName, partition.getLogStreamInjector()) .dependency(stateStorageFactoryServiceName, partition.getStateStorageFactoryInjector()) .group(FOLLOWER_PARTITION_GROUP_NAME) .install(); } }
private void installFollowerPartition(final Raft raft) { final Partition partition = new Partition(partitionInfo, RaftState.FOLLOWER); final ServiceName<Partition> partitionServiceName = followerPartitionServiceName(raft.getName()); if (!startContext.hasService(partitionServiceName)) { LOG.debug("Installing follower partition service for {}", partitionInfo); startContext .createService(partitionServiceName, partition) .dependency(logStreamServiceName, partition.getLogStreamInjector()) .dependency(stateStorageFactoryServiceName, partition.getStateStorageFactoryInjector()) .group(FOLLOWER_PARTITION_GROUP_NAME) .install(); } }
private void installLeaderPartition(final Raft raft) { final ServiceName<Partition> partitionServiceName = leaderPartitionServiceName(raft.getName()); final int raftMemberSize = raft.getMemberSize() + 1; // raft does not count itself as member final int replicationFactor = partitionInfo.getReplicationFactor(); if (!startContext.hasService(partitionServiceName)) { if (raftMemberSize >= replicationFactor) { LOG.debug( "Installing partition service for {}. Replication factor reached, got {}/{}.", partitionInfo, raftMemberSize, replicationFactor); final Partition partition = new Partition(partitionInfo, RaftState.LEADER); startContext .createService(partitionServiceName, partition) .dependency(leaderInitialEventCommittedServiceName(raft.getName(), raft.getTerm())) .dependency(logStreamServiceName, partition.getLogStreamInjector()) .dependency(stateStorageFactoryServiceName, partition.getStateStorageFactoryInjector()) .group(LEADER_PARTITION_GROUP_NAME) .install(); } else { LOG.debug( "Not installing partition service for {}. Replication factor not reached, got {}/{}.", partitionInfo, raftMemberSize, replicationFactor); } } }
private void installLeaderPartition(final Raft raft) { final ServiceName<Partition> partitionServiceName = leaderPartitionServiceName(raft.getName()); final int raftMemberSize = raft.getMemberSize() + 1; // raft does not count itself as member final int replicationFactor = partitionInfo.getReplicationFactor(); if (!startContext.hasService(partitionServiceName)) { if (raftMemberSize >= replicationFactor) { LOG.debug( "Installing partition service for {}. Replication factor reached, got {}/{}.", partitionInfo, raftMemberSize, replicationFactor); final Partition partition = new Partition(partitionInfo, RaftState.LEADER); startContext .createService(partitionServiceName, partition) .dependency(leaderInitialEventCommittedServiceName(raft.getName(), raft.getTerm())) .dependency(logStreamServiceName, partition.getLogStreamInjector()) .dependency(stateStorageFactoryServiceName, partition.getStateStorageFactoryInjector()) .group(LEADER_PARTITION_GROUP_NAME) .install(); } else { LOG.debug( "Not installing partition service for {}. Replication factor not reached, got {}/{}.", partitionInfo, raftMemberSize, replicationFactor); } } }