import java.util.function.Consumer;
import java.util.function.LongSupplier;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import org.opendaylight.controller.cluster.DataPersistenceProvider;
-import org.opendaylight.controller.cluster.io.FileBackedOutputStream;
+import org.opendaylight.controller.cluster.io.FileBackedOutputStreamFactory;
import org.opendaylight.controller.cluster.raft.base.messages.ApplyState;
import org.opendaylight.controller.cluster.raft.behaviors.RaftActorBehavior;
import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload;
private final Consumer<ApplyState> applyStateConsumer;
+ private final FileBackedOutputStreamFactory fileBackedOutputStreamFactory;
+
+ private RaftActorLeadershipTransferCohort leadershipTransferCohort;
+
public RaftActorContextImpl(ActorRef actor, ActorContext context, String id,
@Nonnull ElectionTerm termInformation, long commitIndex, long lastApplied,
@Nonnull Map<String, String> peerAddresses,
this.log = Preconditions.checkNotNull(logger);
this.applyStateConsumer = Preconditions.checkNotNull(applyStateConsumer);
+ fileBackedOutputStreamFactory = new FileBackedOutputStreamFactory(
+ configParams.getFileBackedStreamingThreshold(), configParams.getTempFileDirectory());
+
for (Map.Entry<String, String> e: Preconditions.checkNotNull(peerAddresses).entrySet()) {
peerInfoMap.put(e.getKey(), new PeerInfo(e.getKey(), e.getValue(), VotingState.VOTING));
}
@Override
public void setLastApplied(long lastApplied) {
+ final Throwable stackTrace = log.isTraceEnabled() ? new Throwable() : null;
+ log.debug("{}: Moving last applied index from {} to {}", id, this.lastApplied, lastApplied, stackTrace);
this.lastApplied = lastApplied;
}
return replicatedLog;
}
- @Override public ActorSystem getActorSystem() {
+ @Override
+ public ActorSystem getActorSystem() {
return context.system();
}
- @Override public Logger getLogger() {
+ @Override
+ public Logger getLogger() {
return this.log;
}
}
@Override
- public FileBackedOutputStream newFileBackedOutputStream() {
- return new FileBackedOutputStream(configParams.getFileBackedStreamingThreshold(),
- configParams.getTempFileDirectory());
+ public FileBackedOutputStreamFactory getFileBackedOutputStreamFactory() {
+ return fileBackedOutputStreamFactory;
}
@SuppressWarnings("checkstyle:IllegalCatch")
}
}
}
+
+ @Override
+ @Nullable
+ public RaftActorLeadershipTransferCohort getRaftActorLeadershipTransferCohort() {
+ return leadershipTransferCohort;
+ }
+
+ @Override
+ public void setRaftActorLeadershipTransferCohort(
+ @Nullable RaftActorLeadershipTransferCohort leadershipTransferCohort) {
+ this.leadershipTransferCohort = leadershipTransferCohort;
+ }
}