Repository: cassandra
Updated Branches:
  refs/heads/trunk 9abeff38c -> 176d4bac2


Make PeriodicCommitLogService.blockWhenSyncLagsNanos configurable

patch by jasobrown; reviewed by Jordan West for CASSANDRA-14580


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/176d4bac
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/176d4bac
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/176d4bac

Branch: refs/heads/trunk
Commit: 176d4bac22c356c80e275dcb4040bc5cbd0da1c2
Parents: 9abeff3
Author: Jason Brown <jasedbr...@gmail.com>
Authored: Fri Jul 20 16:05:18 2018 -0700
Committer: Jason Brown <jasedbr...@gmail.com>
Committed: Sun Jul 22 03:20:46 2018 -0700

----------------------------------------------------------------------
 CHANGES.txt                                                  | 1 +
 conf/cassandra.yaml                                          | 4 ++++
 src/java/org/apache/cassandra/config/Config.java             | 1 +
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 8 ++++++++
 .../cassandra/db/commitlog/PeriodicCommitLogService.java     | 4 +++-
 5 files changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/176d4bac/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index faf37ea..4ba3313 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0
+ * Make PeriodicCommitLogService.blockWhenSyncLagsNanos configurable 
(CASSANDRA-14580)
  * Improve logging in MessageInHandler's constructor (CASSANDRA-14576)
  * Set broadcast address in internode messaging handshake (CASSANDRA-14579)
  * Wait for schema agreement prior to building MVs (CASSANDRA-14571)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/176d4bac/conf/cassandra.yaml
----------------------------------------------------------------------
diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml
index 7ff056d..439b85a 100644
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@ -389,6 +389,10 @@ counter_cache_save_period: 7200
 commitlog_sync: periodic
 commitlog_sync_period_in_ms: 10000
 
+# When in periodic commitlog mode, the number of milliseconds to block writes
+# while waiting for a slow disk flush to complete.
+# periodic_commitlog_sync_lag_block_in_ms: 
+
 # The size of the individual commitlog file segments.  A commitlog
 # segment may be archived, deleted, or recycled once all the data
 # in it (potentially from each columnfamily in the system) has been

http://git-wip-us.apache.org/repos/asf/cassandra/blob/176d4bac/src/java/org/apache/cassandra/config/Config.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index d9250bb..0d4760e 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -204,6 +204,7 @@ public class Config
     public int commitlog_segment_size_in_mb = 32;
     public ParameterizedClass commitlog_compression;
     public int commitlog_max_compression_buffers_in_pool = 3;
+    public Integer periodic_commitlog_sync_lag_block_in_ms;
     public TransparentDataEncryptionOptions 
transparent_data_encryption_options = new TransparentDataEncryptionOptions();
 
     public Integer max_mutation_size_in_kb;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/176d4bac/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index 91ee63a..2dc3737 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -1866,6 +1866,14 @@ public class DatabaseDescriptor
         return conf.commitlog_sync_period_in_ms;
     }
 
+    public static long getPeriodicCommitLogSyncBlock()
+    {
+        Integer blockMillis = conf.periodic_commitlog_sync_lag_block_in_ms;
+        return blockMillis == null
+               ? (long)(getCommitLogSyncPeriod() * 1.5)
+               : blockMillis;
+    }
+
     public static void setCommitLogSyncPeriod(int periodMillis)
     {
         conf.commitlog_sync_period_in_ms = periodMillis;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/176d4bac/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java 
b/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java
index efd3394..e94c616 100644
--- a/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java
+++ b/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java
@@ -17,11 +17,13 @@
  */
 package org.apache.cassandra.db.commitlog;
 
+import java.util.concurrent.TimeUnit;
+
 import org.apache.cassandra.config.DatabaseDescriptor;
 
 class PeriodicCommitLogService extends AbstractCommitLogService
 {
-    private static final long blockWhenSyncLagsNanos = (long) 
(DatabaseDescriptor.getCommitLogSyncPeriod() * 1.5e6);
+    private static final long blockWhenSyncLagsNanos = 
TimeUnit.MILLISECONDS.toNanos(DatabaseDescriptor.getPeriodicCommitLogSyncBlock());
 
     public PeriodicCommitLogService(final CommitLog commitLog)
     {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to