X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dummy-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fdummy%2Fdatastore%2FDummyShard.java;h=9915911f784cb9b13523962207215cecdcca77ef;hb=655216a6c75aa29d31c4c56c56a5000db56ba233;hp=3dffdfce575d82a0118c11d137fe501a450defe7;hpb=2da365966737c83347ef7b84cc155246e10f1593;p=controller.git diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/src/main/java/org/opendaylight/controller/dummy/datastore/DummyShard.java b/opendaylight/md-sal/sal-dummy-distributed-datastore/src/main/java/org/opendaylight/controller/dummy/datastore/DummyShard.java index 3dffdfce57..9915911f78 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/src/main/java/org/opendaylight/controller/dummy/datastore/DummyShard.java +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/src/main/java/org/opendaylight/controller/dummy/datastore/DummyShard.java @@ -11,6 +11,9 @@ package org.opendaylight.controller.dummy.datastore; import akka.actor.Props; import akka.actor.UntypedActor; import akka.japi.Creator; +import com.google.common.base.Stopwatch; +import java.util.concurrent.TimeUnit; +import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; import org.opendaylight.controller.cluster.raft.messages.AppendEntries; import org.opendaylight.controller.cluster.raft.messages.AppendEntriesReply; @@ -27,6 +30,7 @@ public class DummyShard extends UntypedActor{ private final Logger LOG = LoggerFactory.getLogger(DummyShard.class); private long lastMessageIndex = -1; private long lastMessageSize = 0; + private Stopwatch appendEntriesWatch; public DummyShard(Configuration configuration, String followerId) { this.configuration = configuration; @@ -57,10 +61,21 @@ public class DummyShard extends UntypedActor{ } protected void handleAppendEntries(AppendEntries req) throws InterruptedException { - LOG.info("{} - Received AppendEntries message : leader term = {}, index = {}, prevLogIndex = {}, size = {}", followerId, req.getTerm(),req.getLeaderCommit(), req.getPrevLogIndex(), req.getEntries().size()); + if(appendEntriesWatch != null){ + long elapsed = appendEntriesWatch.elapsed(TimeUnit.SECONDS); + if(elapsed >= 5){ + LOG.error("More than 5 seconds since last append entry, elapsed Time = {} seconds" + + ", leaderCommit = {}, prevLogIndex = {}, size = {}", + elapsed, req.getLeaderCommit(), req.getPrevLogIndex(), req.getEntries().size()); + } + appendEntriesWatch.reset().start(); + } else { + appendEntriesWatch = Stopwatch.createStarted(); + } + if(lastMessageIndex == req.getLeaderCommit() && req.getEntries().size() > 0 && lastMessageSize > 0){ LOG.error("{} - Duplicate message with leaderCommit = {} prevLogIndex = {} received", followerId, req.getLeaderCommit(), req.getPrevLogIndex()); } @@ -87,10 +102,12 @@ public class DummyShard extends UntypedActor{ if (!ignore) { LOG.info("{} - Randomizing delay : {}", followerId, delay); Thread.sleep(delay); - sender().tell(new AppendEntriesReply(followerId, req.getTerm(), true, lastIndex, req.getTerm()), self()); + sender().tell(new AppendEntriesReply(followerId, req.getTerm(), true, lastIndex, req.getTerm(), + DataStoreVersions.CURRENT_VERSION), self()); } } else { - sender().tell(new AppendEntriesReply(followerId, req.getTerm(), true, lastIndex, req.getTerm()), self()); + sender().tell(new AppendEntriesReply(followerId, req.getTerm(), true, lastIndex, req.getTerm(), + DataStoreVersions.CURRENT_VERSION), self()); } }