X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FFollowerLogInformation.java;h=4367a7a151ff729bcac7de25f4fbeaf54b114089;hp=73c81afd187d2791703c1428beacbc8348abda69;hb=b8c6400766f7324dd57d059bd48e435569fe1a27;hpb=3927509ec3ecfa32a51b725d2b7155d425f5b877 diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/FollowerLogInformation.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/FollowerLogInformation.java index 73c81afd18..4367a7a151 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/FollowerLogInformation.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/FollowerLogInformation.java @@ -14,53 +14,63 @@ public interface FollowerLogInformation { /** * Increment the value of the nextIndex - * @return + * + * @return the new value of nextIndex */ long incrNextIndex(); /** * Decrement the value of the nextIndex - * @return + * + * @return the new value of nextIndex */ long decrNextIndex(); /** + * Sets the index of the next log entry for this follower. * * @param nextIndex + * @return true if the new index differed from the current index and the current index was updated, false + * otherwise. */ - void setNextIndex(long nextIndex); + boolean setNextIndex(long nextIndex); /** * Increment the value of the matchIndex - * @return + * + * @return the new value of matchIndex */ long incrMatchIndex(); - void setMatchIndex(long matchIndex); + /** + * Sets the index of the highest log entry for this follower. + * + * @param matchIndex + * @return true if the new index differed from the current index and the current index was updated, false + * otherwise. + */ + boolean setMatchIndex(long matchIndex); /** - * The identifier of the follower - * This could simply be the url of the remote actor + * + * @return the identifier of the follower. This could simply be the url of the remote actor. */ String getId(); /** - * for each server, index of the next log entry - * to send to that server (initialized to leader - * last log index + 1) + * @return index of the next log entry to send to that server (initialized to leader last log index + 1) */ long getNextIndex(); /** - * for each server, index of highest log entry - * known to be replicated on server - * (initialized to 0, increases monotonically) + * @return index of highest log entry known to be replicated on server (initialized to 0, increases monotonically) */ long getMatchIndex(); /** * Checks if the follower is active by comparing the last updated with the duration - * @return boolean + * + * @return true if follower is active, false otherwise */ boolean isFollowerActive(); @@ -77,8 +87,35 @@ public interface FollowerLogInformation { /** * This will return the active time of follower, since it was last reset - * @return time in milliseconds + * + * @return time in milliseconds since the last activity from the follower */ long timeSinceLastActivity(); + /** + * This method checks if it is ok to replicate + * + * @return true if it is ok to replicate, false otherwise + */ + boolean okToReplicate(); + + /** + * @return the payload data version of the follower. + */ + short getPayloadVersion(); + + /** + * Sets the payload data version of the follower. + */ + void setPayloadVersion(short payloadVersion); + + /** + * @return the raft version of the follower. + */ + short getRaftVersion(); + + /** + * Sets the raft version of the follower. + */ + void setRaftVersion(short payloadVersion); }