X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FReplicatedLog.java;h=e6e160bc02bf1fd72305325aefc91a1ac2a9fac0;hb=c74d5c2399e500fe3e690edc8cee497b1cb6f867;hp=3de0de5131ae6c9195128b73a873cf8ca25bb9bf;hpb=5924885ac74b5fa0c729004a5b66b30654a55496;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/ReplicatedLog.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/ReplicatedLog.java index 3de0de5131..e6e160bc02 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/ReplicatedLog.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/ReplicatedLog.java @@ -44,12 +44,28 @@ public interface ReplicatedLog { long lastTerm(); /** - * Remove all the entries from the logs >= index + * To be called when we need to remove entries from the in-memory log. + * This method will remove all entries >= index. This method should be used + * during recovery to appropriately trim the log based on persisted + * information * * @param index the index of the log entry */ void removeFrom(long index); + + /** + * To be called when we need to remove entries from the in-memory log and we + * need that information persisted to disk. This method will remove all + * entries >= index. + *

+ * The persisted information would then be used during recovery to properly + * reconstruct the state of the in-memory replicated log + * + * @param index the index of the log entry + */ + void removeFromAndPersist(long index); + /** * Append an entry to the log * @param replicatedLogEntry @@ -68,6 +84,11 @@ public interface ReplicatedLog { */ List getFrom(long index); + /** + * + * @param index the index of the log entry + */ + List getFrom(long index, int max); /** *