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