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%2FReplicatedLog.java;h=8388eaf7436f251c63aa277024bf886f803153cb;hp=29d6a4557db8dde765accbfe767b9b4f8debd290;hb=f9a9cd1ea40d2477ccb16b03c71a87595226595a;hpb=3019650e87a3fc05f80e8f6359e01ca5f1c5f197 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 29d6a4557d..8388eaf743 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 @@ -8,6 +8,7 @@ package org.opendaylight.controller.cluster.raft; +import akka.japi.Procedure; import java.util.List; /** @@ -44,18 +45,26 @@ 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 + * @return the adjusted index of the first log entry removed or -1 if log entry not found. */ - void removeFrom(long index); + long removeFrom(long index); /** - * Remove all entries starting from the specified entry and persist the - * information to disk + * 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
+ * @param index the index of the log entry
*/
void removeFromAndPersist(long index);
@@ -65,18 +74,32 @@ public interface ReplicatedLog {
*/
void append(ReplicatedLogEntry replicatedLogEntry);
+ /**
+ * Optimization method to increase the capacity of the journal log prior to appending entries.
+ *
+ * @param amount the amount to increase by
+ */
+ void increaseJournalLogCapacity(int amount);
+
/**
*
* @param replicatedLogEntry
*/
void appendAndPersist(final ReplicatedLogEntry replicatedLogEntry);
+ void appendAndPersist(ReplicatedLogEntry replicatedLogEntry, Procedure