private FiniteDuration heartBeatInterval = HEART_BEAT_INTERVAL;
private long snapshotBatchCount = SNAPSHOT_BATCH_COUNT;
private int journalRecoveryLogBatchSize = JOURNAL_RECOVERY_LOG_BATCH_SIZE;
- private FiniteDuration isolatedLeaderCheckInterval =
- new FiniteDuration(HEART_BEAT_INTERVAL.length() * 1000, HEART_BEAT_INTERVAL.unit());
+ private long isolatedLeaderCheckInterval = HEART_BEAT_INTERVAL.$times(1000).toMillis();
+ private FiniteDuration electionTimeOutInterval;
// 12 is just an arbitrary percentage. This is the amount of the total memory that a raft actor's
// in-memory journal can use before it needs to snapshot
private int snapshotDataThresholdPercentage = 12;
+ private int snaphotChunkSize = SNAPSHOT_CHUNK_SIZE;
+
private long electionTimeoutFactor = 2;
public void setHeartBeatInterval(FiniteDuration heartBeatInterval) {
this.heartBeatInterval = heartBeatInterval;
+ electionTimeOutInterval = null;
}
public void setSnapshotBatchCount(long snapshotBatchCount) {
this.snapshotDataThresholdPercentage = snapshotDataThresholdPercentage;
}
+ public void setSnaphotChunkSize(int snaphotChunkSize) {
+ this.snaphotChunkSize = snaphotChunkSize;
+ }
+
public void setJournalRecoveryLogBatchSize(int journalRecoveryLogBatchSize) {
this.journalRecoveryLogBatchSize = journalRecoveryLogBatchSize;
}
public void setIsolatedLeaderCheckInterval(FiniteDuration isolatedLeaderCheckInterval) {
- this.isolatedLeaderCheckInterval = isolatedLeaderCheckInterval;
+ this.isolatedLeaderCheckInterval = isolatedLeaderCheckInterval.toMillis();
}
public void setElectionTimeoutFactor(long electionTimeoutFactor){
this.electionTimeoutFactor = electionTimeoutFactor;
+ electionTimeOutInterval = null;
}
@Override
@Override
public FiniteDuration getElectionTimeOutInterval() {
- return getHeartBeatInterval().$times(electionTimeoutFactor);
+ if(electionTimeOutInterval == null) {
+ electionTimeOutInterval = getHeartBeatInterval().$times(electionTimeoutFactor);
+ }
+
+ return electionTimeOutInterval;
}
@Override
@Override
public int getSnapshotChunkSize() {
- return SNAPSHOT_CHUNK_SIZE;
+ return snaphotChunkSize;
}
@Override
}
@Override
- public FiniteDuration getIsolatedCheckInterval() {
+ public long getIsolatedCheckIntervalInMillis() {
return isolatedLeaderCheckInterval;
}