Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4A320200CD9 for ; Thu, 3 Aug 2017 20:28:38 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 48A8816C39B; Thu, 3 Aug 2017 18:28:38 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 8E53916C397 for ; Thu, 3 Aug 2017 20:28:37 +0200 (CEST) Received: (qmail 96874 invoked by uid 500); 3 Aug 2017 18:28:36 -0000 Mailing-List: contact commits-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zookeeper.apache.org Delivered-To: mailing list commits@zookeeper.apache.org Received: (qmail 96862 invoked by uid 99); 3 Aug 2017 18:28:36 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Aug 2017 18:28:36 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 87E0BE02F3; Thu, 3 Aug 2017 18:28:36 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: hanm@apache.org To: commits@zookeeper.apache.org Message-Id: <2689403e054c4b80a49801c13a1236dc@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: zookeeper git commit: ZOOKEEPER-2852: Read snapshotSizeFactor from system property Date: Thu, 3 Aug 2017 18:28:36 +0000 (UTC) archived-at: Thu, 03 Aug 2017 18:28:38 -0000 Repository: zookeeper Updated Branches: refs/heads/branch-3.5 2c08d794d -> fce828668 ZOOKEEPER-2852: Read snapshotSizeFactor from system property Author: Fangmin Lyu Reviewers: Michael Han Closes #321 from lvfangmin/ZOOKEEPER-2852 (cherry picked from commit 3f7e4133f3abc17df5eb4f0145d0833417bfdb33) Signed-off-by: Michael Han Project: http://git-wip-us.apache.org/repos/asf/zookeeper/repo Commit: http://git-wip-us.apache.org/repos/asf/zookeeper/commit/fce82866 Tree: http://git-wip-us.apache.org/repos/asf/zookeeper/tree/fce82866 Diff: http://git-wip-us.apache.org/repos/asf/zookeeper/diff/fce82866 Branch: refs/heads/branch-3.5 Commit: fce8286684f96441ce7cdf0a9a337027a041e51b Parents: 2c08d79 Author: Fangmin Lyu Authored: Thu Aug 3 11:28:20 2017 -0700 Committer: Michael Han Committed: Thu Aug 3 11:28:33 2017 -0700 ---------------------------------------------------------------------- .../org/apache/zookeeper/server/ZKDatabase.java | 31 ++++++++++++++++++-- .../zookeeper/server/quorum/LearnerHandler.java | 2 +- 2 files changed, 29 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zookeeper/blob/fce82866/src/java/main/org/apache/zookeeper/server/ZKDatabase.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/zookeeper/server/ZKDatabase.java b/src/java/main/org/apache/zookeeper/server/ZKDatabase.java index 2845d28..16baf46 100644 --- a/src/java/main/org/apache/zookeeper/server/ZKDatabase.java +++ b/src/java/main/org/apache/zookeeper/server/ZKDatabase.java @@ -80,7 +80,8 @@ public class ZKDatabase { * Default value is to use snapshot if txnlog size exceeds 1/3 the size of snapshot */ public static final String SNAPSHOT_SIZE_FACTOR = "zookeeper.snapshotSizeFactor"; - private double snapshotSizeFactor = 0.33; + public static final double DEFAULT_SNAPSHOT_SIZE_FACTOR = 0.33; + private double snapshotSizeFactor; public static final int commitLogCount = 500; protected static int commitLogBuffer = 700; @@ -98,6 +99,23 @@ public class ZKDatabase { dataTree = new DataTree(); sessionsWithTimeouts = new ConcurrentHashMap(); this.snapLog = snapLog; + + try { + snapshotSizeFactor = Double.parseDouble( + System.getProperty(SNAPSHOT_SIZE_FACTOR, + Double.toString(DEFAULT_SNAPSHOT_SIZE_FACTOR))); + if (snapshotSizeFactor > 1) { + snapshotSizeFactor = DEFAULT_SNAPSHOT_SIZE_FACTOR; + LOG.warn("The configured {} is invalid, going to use " + + "the default {}", SNAPSHOT_SIZE_FACTOR, + DEFAULT_SNAPSHOT_SIZE_FACTOR); + } + } catch (NumberFormatException e) { + LOG.error("Error parsing {}, using default value {}", + SNAPSHOT_SIZE_FACTOR, DEFAULT_SNAPSHOT_SIZE_FACTOR); + snapshotSizeFactor = DEFAULT_SNAPSHOT_SIZE_FACTOR; + } + LOG.info("{} = {}", SNAPSHOT_SIZE_FACTOR, snapshotSizeFactor); } /** @@ -269,8 +287,15 @@ public class ZKDatabase { } } - public double getSnapshotSizeFactor() { - return snapshotSizeFactor; + public boolean isTxnLogSyncEnabled() { + boolean enabled = snapshotSizeFactor >= 0; + if (enabled) { + LOG.info("On disk txn sync enabled with snapshotSizeFactor " + + snapshotSizeFactor); + } else { + LOG.info("On disk txn sync disabled"); + } + return enabled; } public long calculateTxnLogSizeLimit() { http://git-wip-us.apache.org/repos/asf/zookeeper/blob/fce82866/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java b/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java index 0c71a62..7247f5c 100644 --- a/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java +++ b/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java @@ -691,7 +691,7 @@ public class LearnerHandler extends ZooKeeperThread { // Keep track of the latest zxid which already queued long currentZxid = peerLastZxid; boolean needSnap = true; - boolean txnLogSyncEnabled = (db.getSnapshotSizeFactor() >= 0); + boolean txnLogSyncEnabled = db.isTxnLogSyncEnabled(); ReentrantReadWriteLock lock = db.getLogLock(); ReadLock rl = lock.readLock(); try {