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=82d0839bee772bd8efba88a8d1392ab1d336ff1c;hb=2a89ae48921724ef5a4ab42dcff6afc74c5b0a4a;hp=b7c8955aad982873ee02fff78f629b7f7bc1f1b5;hpb=02bdbc1c781abc0b0b1d12dbfc1a19c316bebb98;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 b7c8955aad..82d0839bee 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 @@ -72,6 +72,13 @@ 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 @@ -84,6 +91,11 @@ public interface ReplicatedLog { */ List getFrom(long index); + /** + * + * @param index the index of the log entry + */ + List getFrom(long index, int max); /** * @@ -108,13 +120,6 @@ public interface ReplicatedLog { */ boolean isInSnapshot(long index); - /** - * Get the snapshot - * - * @return an object representing the snapshot if it exists. null otherwise - */ - Object getSnapshot(); - /** * Get the index of the snapshot * @@ -129,4 +134,47 @@ public interface ReplicatedLog { * otherwise */ long getSnapshotTerm(); + + /** + * sets the snapshot index in the replicated log + * @param snapshotIndex + */ + void setSnapshotIndex(long snapshotIndex); + + /** + * sets snapshot term + * @param snapshotTerm + */ + void setSnapshotTerm(long snapshotTerm); + + /** + * Clears the journal entries with startIndex(inclusive) and endIndex (exclusive) + * @param startIndex + * @param endIndex + */ + void clear(int startIndex, int endIndex); + + /** + * Handles all the bookkeeping in order to perform a rollback in the + * event of SaveSnapshotFailure + * @param snapshotCapturedIndex + * @param snapshotCapturedTerm + */ + void snapshotPreCommit(long snapshotCapturedIndex, long snapshotCapturedTerm); + + /** + * Sets the Replicated log to state after snapshot success. + */ + void snapshotCommit(); + + /** + * Restores the replicated log to a state in the event of a save snapshot failure + */ + void snapshotRollback(); + + /** + * Size of the data in the log (in bytes) + */ + int dataSize(); + }