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=c17f5448c6e256a97c4f7134959bb6c2d88a0971;hb=65292f0c7ee04222ccaaa9c9dcf9ece4438dc96e;hp=b7c8955aad982873ee02fff78f629b7f7bc1f1b5;hpb=8d9f9990edc7fb165795b8f50b4715f8e719fa75;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..c17f5448c6 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,8 @@ package org.opendaylight.controller.cluster.raft; +import com.google.protobuf.ByteString; + import java.util.List; /** @@ -84,6 +86,11 @@ public interface ReplicatedLog { */ List getFrom(long index); + /** + * + * @param index the index of the log entry + */ + List getFrom(long index, int max); /** * @@ -113,7 +120,7 @@ public interface ReplicatedLog { * * @return an object representing the snapshot if it exists. null otherwise */ - Object getSnapshot(); + ByteString getSnapshot(); /** * Get the index of the snapshot @@ -129,4 +136,49 @@ 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 + */ + public void setSnapshotTerm(long snapshotTerm); + + /** + * sets the snapshot in bytes + * @param snapshot + */ + public void setSnapshot(ByteString snapshot); + + /** + * Clears the journal entries with startIndex(inclusive) and endIndex (exclusive) + * @param startIndex + * @param endIndex + */ + public void clear(int startIndex, int endIndex); + + /** + * Handles all the bookkeeping in order to perform a rollback in the + * event of SaveSnapshotFailure + * @param snapshot + * @param snapshotCapturedIndex + * @param snapshotCapturedTerm + */ + public void snapshotPreCommit(ByteString snapshot, + long snapshotCapturedIndex, long snapshotCapturedTerm); + + /** + * Sets the Replicated log to state after snapshot success. + */ + public void snapshotCommit(); + + /** + * Restores the replicated log to a state in the event of a save snapshot failure + */ + public void snapshotRollback(); }