This is an automated email from the ASF dual-hosted git repository.

ddiederen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 70f70d8  ZOOKEEPER-4318: Only report the follower sync time metrics if 
sync is completed
70f70d8 is described below

commit 70f70d821c2c5225edeb54a8af0bd1911a51fc89
Author: liwang <[email protected]>
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 <[email protected]>
    
    Reviewers: Enrico Olivelli <[email protected]>, Michael Han 
<[email protected]>, Damien Diederen <[email protected]>
    
    Closes #1712 from li4wang/ZOOKEEPER-4318
---
 .../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");
 

Reply via email to