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%2FSnapshotManager.java;h=9a916625c9331413685d6263bfe053930b6795bf;hb=d1d24d3742ffcda5e16a1d35e15a5627d5eb05f9;hp=5b0ebcddee9fac1c0a9a7bdf8df31917c8eb2f3b;hpb=4a60a637941ccf77ab7b32484cbc4128eaf3ea7c;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/SnapshotManager.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/SnapshotManager.java index 5b0ebcddee..9a916625c9 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/SnapshotManager.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/SnapshotManager.java @@ -13,7 +13,6 @@ import akka.persistence.SnapshotSelectionCriteria; import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.ByteString; import java.util.List; -import org.opendaylight.controller.cluster.DataPersistenceProvider; import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshot; import org.opendaylight.controller.cluster.raft.base.messages.SendInstallSnapshot; import org.opendaylight.controller.cluster.raft.behaviors.RaftActorBehavior; @@ -60,14 +59,13 @@ public class SnapshotManager implements SnapshotState { } @Override - public void persist(DataPersistenceProvider persistenceProvider, byte[] snapshotBytes, - RaftActorBehavior currentBehavior, long totalMemory) { - currentState.persist(persistenceProvider, snapshotBytes, currentBehavior, totalMemory); + public void persist(byte[] snapshotBytes, RaftActorBehavior currentBehavior, long totalMemory) { + currentState.persist(snapshotBytes, currentBehavior, totalMemory); } @Override - public void commit(DataPersistenceProvider persistenceProvider, long sequenceNumber) { - currentState.commit(persistenceProvider, sequenceNumber); + public void commit(long sequenceNumber) { + currentState.commit(sequenceNumber); } @Override @@ -117,13 +115,12 @@ public class SnapshotManager implements SnapshotState { } @Override - public void persist(DataPersistenceProvider persistenceProvider, byte[] snapshotBytes, - RaftActorBehavior currentBehavior, long totalMemory) { + public void persist(byte[] snapshotBytes, RaftActorBehavior currentBehavior, long totalMemory) { LOG.debug("persist should not be called in state {}", this); } @Override - public void commit(DataPersistenceProvider persistenceProvider, long sequenceNumber) { + public void commit(long sequenceNumber) { LOG.debug("commit should not be called in state {}", this); } @@ -204,14 +201,16 @@ public class SnapshotManager implements SnapshotState { LOG.debug("lastSequenceNumber prior to capture: {}", lastSequenceNumber); + SnapshotManager.this.currentState = CREATING; + try { createSnapshotProcedure.apply(null); } catch (Exception e) { + SnapshotManager.this.currentState = IDLE; LOG.error("Error creating snapshot", e); return false; } - SnapshotManager.this.currentState = CREATING; return true; } @@ -244,8 +243,7 @@ public class SnapshotManager implements SnapshotState { } @Override - public void persist(DataPersistenceProvider persistenceProvider, byte[] snapshotBytes, - RaftActorBehavior currentBehavior, long totalMemory) { + public void persist(byte[] snapshotBytes, RaftActorBehavior currentBehavior, long totalMemory) { // create a snapshot object from the state provided and save it // when snapshot is saved async, SaveSnapshotSuccess is raised. @@ -254,7 +252,7 @@ public class SnapshotManager implements SnapshotState { captureSnapshot.getLastIndex(), captureSnapshot.getLastTerm(), captureSnapshot.getLastAppliedIndex(), captureSnapshot.getLastAppliedTerm()); - persistenceProvider.saveSnapshot(sn); + context.getPersistenceProvider().saveSnapshot(sn); LOG.info("{}: Persisting of snapshot done:{}", persistenceId(), sn.getLogMessage()); @@ -320,12 +318,12 @@ public class SnapshotManager implements SnapshotState { private class Persisting extends AbstractSnapshotState { @Override - public void commit(DataPersistenceProvider persistenceProvider, long sequenceNumber) { + public void commit(long sequenceNumber) { context.getReplicatedLog().snapshotCommit(); - persistenceProvider.deleteSnapshots(new SnapshotSelectionCriteria( + context.getPersistenceProvider().deleteSnapshots(new SnapshotSelectionCriteria( sequenceNumber - context.getConfigParams().getSnapshotBatchCount(), 43200000)); - persistenceProvider.deleteMessages(lastSequenceNumber); + context.getPersistenceProvider().deleteMessages(lastSequenceNumber); lastSequenceNumber = -1; SnapshotManager.this.currentState = IDLE;