* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.controller.cluster.raft.behaviors;
+import static com.google.common.base.Preconditions.checkArgument;
+import static java.util.Objects.requireNonNull;
+
import akka.actor.ActorRef;
-import com.google.common.base.Preconditions;
import org.opendaylight.controller.cluster.raft.base.messages.FollowerInitialSyncUpStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
final String leaderId;
LeaderInfo(final String leaderId, final long minimumCommitIndex) {
- this.leaderId = Preconditions.checkNotNull(leaderId);
+ this.leaderId = requireNonNull(leaderId);
this.minimumCommitIndex = minimumCommitIndex;
}
}
private static final boolean IN_SYNC = true;
private static final boolean NOT_IN_SYNC = false;
- private final String id;
+ private final long syncThreshold;
private final ActorRef actor;
- private final int syncThreshold;
+ private final String id;
private LeaderInfo syncTarget;
private boolean syncStatus;
- public SyncStatusTracker(final ActorRef actor, final String id, final int syncThreshold) {
- this.actor = Preconditions.checkNotNull(actor, "actor should not be null");
- this.id = Preconditions.checkNotNull(id, "id should not be null");
- Preconditions.checkArgument(syncThreshold >= 0, "syncThreshold should be greater than or equal to 0");
+ public SyncStatusTracker(final ActorRef actor, final String id, final long syncThreshold) {
+ this.actor = requireNonNull(actor, "actor should not be null");
+ this.id = requireNonNull(id, "id should not be null");
+ checkArgument(syncThreshold >= 0, "syncThreshold should be greater than or equal to 0");
this.syncThreshold = syncThreshold;
}
public void update(final String leaderId, final long leaderCommit, final long commitIndex) {
- Preconditions.checkNotNull(leaderId, "leaderId should not be null");
+ requireNonNull(leaderId, "leaderId should not be null");
if (syncTarget == null || !leaderId.equals(syncTarget.leaderId)) {
- LOG.debug("Last sync leader does not match current leader {}, need to catch up to {}",
+ LOG.debug("{}: Last sync leader does not match current leader {}, need to catch up to {}", id,
leaderId, leaderCommit);
changeSyncStatus(NOT_IN_SYNC, true);
syncTarget = new LeaderInfo(leaderId, leaderCommit);
final long lag = leaderCommit - commitIndex;
if (lag > syncThreshold) {
- LOG.debug("Lagging {} entries behind leader {}", lag, leaderId);
+ LOG.debug("{}: Lagging {} entries behind leader {}", id, lag, leaderId);
changeSyncStatus(NOT_IN_SYNC, false);
} else if (commitIndex >= syncTarget.minimumCommitIndex) {
- LOG.debug("Lagging {} entries behind leader and reached {} (of expected {})", lag, leaderId, commitIndex,
- syncTarget.minimumCommitIndex);
+ LOG.debug("{}: Lagging {} entries behind leader {} and reached {} (of expected {})", id, lag, leaderId,
+ commitIndex, syncTarget.minimumCommitIndex);
changeSyncStatus(IN_SYNC, false);
}
}
actor.tell(new FollowerInitialSyncUpStatus(newSyncStatus, id), ActorRef.noSender());
syncStatus = newSyncStatus;
} else {
- LOG.trace("No change in sync status of {}, dampening message", actor);
+ LOG.trace("{}: No change in sync status of, dampening message", id);
}
}
}