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

fangmin 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 678138b  ZOOKEEPER-3216: Make init/sync limit tunable via JMX
678138b is described below

commit 678138b84a433cc0aaf51388f086743aa84f3480
Author: Jie Huang <[email protected]>
AuthorDate: Thu Dec 20 22:13:46 2018 +0800

    ZOOKEEPER-3216: Make init/sync limit tunable via JMX
    
    Author: Jie Huang <[email protected]>
    
    Reviewers: [email protected], [email protected]
    
    Closes #738 from jhuan31/ZOOKEEPER-3216
---
 .../zookeeper/server/quorum/LocalPeerBean.java       |  8 ++++++++
 .../zookeeper/server/quorum/LocalPeerMXBean.java     | 13 ++++++++++++-
 .../apache/zookeeper/server/quorum/QuorumBean.java   | 16 ++++++++++++++++
 .../apache/zookeeper/server/quorum/QuorumMXBean.java | 20 ++++++++++++++++++++
 .../apache/zookeeper/server/quorum/QuorumPeer.java   |  5 +++--
 5 files changed, 59 insertions(+), 3 deletions(-)

diff --git 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LocalPeerBean.java
 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LocalPeerBean.java
index 5bbd80e..170d712 100644
--- 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LocalPeerBean.java
+++ 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LocalPeerBean.java
@@ -61,6 +61,14 @@ public class LocalPeerBean extends ServerBean implements 
LocalPeerMXBean {
     public int getSyncLimit() {
         return peer.getSyncLimit();
     }
+
+    public void setInitLimit(int initLimit) {
+        peer.setInitLimit(initLimit);
+    }
+
+    public void setSyncLimit(int syncLimit) {
+        peer.setSyncLimit(syncLimit);
+    }
     
     public int getTick() {
         return peer.getTick();
diff --git 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LocalPeerMXBean.java
 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LocalPeerMXBean.java
index 8b1947b..5a2dd9b 100644
--- 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LocalPeerMXBean.java
+++ 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LocalPeerMXBean.java
@@ -48,12 +48,23 @@ public interface LocalPeerMXBean extends ServerMXBean {
      * @return the number of ticks that the initial sync phase can take
      */
     public int getInitLimit();
-    
+
     /**
      * @return the number of ticks that can pass between sending a request
      * and getting a acknowledgment
      */
     public int getSyncLimit();
+
+    /**
+     * Set the number of ticks that the initial sync phase can take
+     */
+    public void setInitLimit(int initLimit);
+
+    /**
+     * Set the number of ticks that can pass between sending a request
+     * and getting a acknowledgment
+     */
+    public void setSyncLimit(int syncLimit);
     
     /**
      * @return the current tick
diff --git 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumBean.java
 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumBean.java
index 9b0717c..bab3c17 100644
--- 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumBean.java
+++ 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumBean.java
@@ -45,6 +45,22 @@ public class QuorumBean implements QuorumMXBean, ZKMBeanInfo 
{
         return peer.getQuorumSize();
     }
 
+    public int getSyncLimit() {
+        return peer.getSyncLimit();
+    }
+
+    public int getInitLimit() {
+        return peer.getInitLimit();
+    }
+
+    public void setInitLimit(int initLimit) {
+        peer.setInitLimit(initLimit);
+    }
+
+    public void setSyncLimit(int syncLimit) {
+        peer.setSyncLimit(syncLimit);
+    }
+
     @Override
     public boolean isSslQuorum() {
         return peer.isSslQuorum();
diff --git 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumMXBean.java
 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumMXBean.java
index d0215c8..3c24941 100644
--- 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumMXBean.java
+++ 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumMXBean.java
@@ -33,6 +33,26 @@ public interface QuorumMXBean {
     public int getQuorumSize();
 
     /**
+     * @return the number of ticks that the initial synchronization phase can 
take
+     */
+    public int getInitLimit();
+
+    /**
+     * @return the number of ticks that can pass between sending a request and 
getting an acknowledgment
+     */
+    public int getSyncLimit();
+
+    /**
+     * @param the number of ticks that the initial synchronization phase can 
take
+     */
+    public void setInitLimit(int initLimit);
+
+    /**
+     * @param the number of ticks that can pass between sending a request and 
getting an acknowledgment
+     */
+    public void setSyncLimit(int syncLimit);
+
+    /**
      * @return SSL communication between quorum members required
      */
     public boolean isSslQuorum();
diff --git 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
index a724903..394b15c 100644
--- 
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
+++ 
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
@@ -560,13 +560,13 @@ public class QuorumPeer extends ZooKeeperThread 
implements QuorumStats.Provider
     /**
      * The number of ticks that the initial synchronization phase can take
      */
-    protected int initLimit;
+    protected volatile int initLimit;;
 
     /**
      * The number of ticks that can pass between sending a request and getting
      * an acknowledgment
      */
-    protected int syncLimit;
+    protected volatile int syncLimit;
     
     /**
      * Enables/Disables sync request processor. This option is enabled
@@ -1700,6 +1700,7 @@ public class QuorumPeer extends ZooKeeperThread 
implements QuorumStats.Provider
      * Set the synclimit
      */
     public void setSyncLimit(int syncLimit) {
+        LOG.info("syncLimit set to " + syncLimit);
         this.syncLimit = syncLimit;
     }
     

Reply via email to