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;
}