X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FLeaderFrontendState.java;h=7611b029ca53a4562753d7346f86db26daef02db;hb=5dbaf1259ead1904536db204bbc742a3359c1eb1;hp=5a5e42637e6a5a4908a23dd85df8abd88589967b;hpb=64bc1360aedb83583edb354444ee3e4295c7a5e6;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderFrontendState.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderFrontendState.java index 5a5e42637e..7611b029ca 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderFrontendState.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderFrontendState.java @@ -57,6 +57,8 @@ final class LeaderFrontendState implements Identifiable { private final ClientIdentifier clientId; private final String persistenceId; + private long lastConnectTicks; + private long lastSeenTicks; private long expectedTxSequence; private Long lastSeenHistory = null; @@ -83,6 +85,7 @@ final class LeaderFrontendState implements Identifiable { this.purgedHistories = Preconditions.checkNotNull(purgedHistories); this.standaloneHistory = Preconditions.checkNotNull(standaloneHistory); this.localHistories = Preconditions.checkNotNull(localHistories); + this.lastSeenTicks = tree.readTime(); } @Override @@ -154,8 +157,7 @@ final class LeaderFrontendState implements Identifiable { } private LocalHistorySuccess handleDestroyHistory(final DestroyLocalHistoryRequest request, - final RequestEnvelope envelope, final long now) - throws RequestException { + final RequestEnvelope envelope, final long now) { final LocalHistoryIdentifier id = request.getTarget(); final LocalFrontendHistory existing = localHistories.get(id); if (existing == null) { @@ -169,7 +171,7 @@ final class LeaderFrontendState implements Identifiable { } private LocalHistorySuccess handlePurgeHistory(final PurgeLocalHistoryRequest request, - final RequestEnvelope envelope, final long now) throws RequestException { + final RequestEnvelope envelope, final long now) { final LocalHistoryIdentifier id = request.getTarget(); final LocalFrontendHistory existing = localHistories.remove(id); if (existing == null) { @@ -214,6 +216,7 @@ final class LeaderFrontendState implements Identifiable { void reconnect() { expectedTxSequence = 0; + lastConnectTicks = tree.readTime(); } void retire() { @@ -238,9 +241,24 @@ final class LeaderFrontendState implements Identifiable { standaloneHistory.retire(); } + long getLastConnectTicks() { + return lastConnectTicks; + } + + long getLastSeenTicks() { + return lastSeenTicks; + } + + void touch() { + this.lastSeenTicks = tree.readTime(); + } + @Override public String toString() { - return MoreObjects.toStringHelper(LeaderFrontendState.class).add("clientId", clientId) - .add("purgedHistories", purgedHistories).toString(); + return MoreObjects.toStringHelper(LeaderFrontendState.class) + .add("clientId", clientId) + .add("nanosAgo", tree.readTime() - lastSeenTicks) + .add("purgedHistories", purgedHistories) + .toString(); } }