You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by dd...@apache.org on 2021/06/30 07:10:33 UTC
[zookeeper] 02/02: ZOOKEEPER-4318: Only report the follower sync
time metrics if sync is completed
This is an automated email from the ASF dual-hosted git repository.
ddiederen pushed a commit to branch branch-3.7
in repository https://gitbox.apache.org/repos/asf/zookeeper.git
commit fb86553cd45ec43b58cdb2dd5d56e4f59854ab29
Author: liwang <li...@apple.com>
AuthorDate: Wed Jun 30 06:59:22 2021 +0000
ZOOKEEPER-4318: Only report the follower sync time metrics if sync is completed
Motivation
- Currently we report the follower sync time regardless whether sync is completed. This will give us some noisy data such as 0 sync time in cases where sync immediately failed.
Change
- Only report the sync time if the sync is completed.
Author: liwang <li...@apple.com>
Reviewers: Enrico Olivelli <eo...@apache.org>, Michael Han <ha...@apache.org>, Damien Diederen <dd...@apache.org>
Closes #1712 from li4wang/ZOOKEEPER-4318
(cherry picked from commit 70f70d821c2c5225edeb54a8af0bd1911a51fc89)
Signed-off-by: Damien Diederen <dd...@apache.org>
---
.../org/apache/zookeeper/server/quorum/Follower.java | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Follower.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Follower.java
index 971710c..0eff9d2 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Follower.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Follower.java
@@ -103,16 +103,13 @@ public class Follower extends Learner {
throw new IOException("Error: Epoch of leader is lower");
}
long startTime = Time.currentElapsedTime();
- try {
- self.setLeaderAddressAndId(leaderServer.addr, leaderServer.getId());
- self.setZabState(QuorumPeer.ZabState.SYNCHRONIZATION);
- syncWithLeader(newEpochZxid);
- self.setZabState(QuorumPeer.ZabState.BROADCAST);
- completedSync = true;
- } finally {
- long syncTime = Time.currentElapsedTime() - startTime;
- ServerMetrics.getMetrics().FOLLOWER_SYNC_TIME.add(syncTime);
- }
+ self.setLeaderAddressAndId(leaderServer.addr, leaderServer.getId());
+ self.setZabState(QuorumPeer.ZabState.SYNCHRONIZATION);
+ syncWithLeader(newEpochZxid);
+ self.setZabState(QuorumPeer.ZabState.BROADCAST);
+ completedSync = true;
+ long syncTime = Time.currentElapsedTime() - startTime;
+ ServerMetrics.getMetrics().FOLLOWER_SYNC_TIME.add(syncTime);
if (self.getObserverMasterPort() > 0) {
LOG.info("Starting ObserverMaster");