+
+ @Override
+ public List<FollowerInfo> getFollowerInfo() {
+ return getOnDemandRaftState().getFollowerInfoList();
+ }
+
+ @Override
+ public String getPeerAddresses() {
+ return toStringMap(getOnDemandRaftState().getPeerAddresses());
+ }
+
+ private static String toStringMap(Map<?, ?> map) {
+ return Joiner.on(", ").withKeyValueSeparator(": ").join(map);
+ }
+
+ @Override
+ public String getStatRetrievalTime() {
+ getOnDemandRaftState();
+ return statRetrievalTime;
+ }
+
+ @Override
+ public String getStatRetrievalError() {
+ getOnDemandRaftState();
+ return statRetrievalError;
+ }
+
+ @Override
+ public long getLeadershipChangeCount() {
+ return leadershipChangeCount;
+ }
+
+ public void incrementLeadershipChangeCount() {
+ leadershipChangeCount++;
+ lastLeadershipChangeTime = System.currentTimeMillis();
+ }
+
+ @Override
+ public String getLastLeadershipChangeTime() {
+ return DATE_FORMAT.format(new Date(lastLeadershipChangeTime));
+ }
+
+ @Override
+ public int getPendingTxCommitQueueSize() {
+ return shard.getPendingTxCommitQueueSize();
+ }
+
+ @Override
+ public int getTxCohortCacheSize() {
+ return shard.getCohortCacheSize();
+ }
+
+ @Override
+ public void captureSnapshot() {
+ if(shard != null) {
+ shard.getSelf().tell(new InitiateCaptureSnapshot(), ActorRef.noSender());
+ }
+ }