You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2016/07/04 12:20:39 UTC

[1/3] cassandra git commit: Increase size of flushExecutor thread pool size

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.9 c86b3e183 -> 44e475c1a
  refs/heads/trunk f542a2ea6 -> dec1bdb20


Increase size of flushExecutor thread pool size

Patch by marcuse; reviewed by Branimir Lambov for CASSANDRA-12071


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

Branch: refs/heads/cassandra-3.9
Commit: 44e475c1a7aa351763fa5bd97664394186565b41
Parents: c86b3e1
Author: Marcus Eriksson <ma...@apache.org>
Authored: Mon Jul 4 10:49:43 2016 +0200
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Mon Jul 4 14:17:01 2016 +0200

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/44e475c1/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 475365f..b7330f0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.9
+ * Increase size of flushExecutor thread pool (CASSANDRA-12071)
 Merged from 3.0:
  * Avoid digest mismatch with empty but static rows (CASSANDRA-12090)
  * Fix EOF exception when altering column type (CASSANDRA-11820)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/44e475c1/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 523e15f..010800b 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -125,7 +125,15 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
 
     private static final Logger logger = LoggerFactory.getLogger(ColumnFamilyStore.class);
 
-    private static final ExecutorService flushExecutor = new JMXEnabledThreadPoolExecutor(1,
+    /*
+    We keep a pool of threads for each data directory, size of each pool is memtable_flush_writers.
+    When flushing we start a Flush runnable in the flushExecutor. Flush calculates how to split the
+    memtable ranges over the existing data directories and creates a FlushRunnable for each of the directories.
+    The FlushRunnables are executed in the perDiskflushExecutors and the Flush will block until all FlushRunnables
+    are finished. By having flushExecutor size the same size as each of the perDiskflushExecutors we make sure we can
+    have that many flushes going at the same time.
+    */
+    private static final ExecutorService flushExecutor = new JMXEnabledThreadPoolExecutor(DatabaseDescriptor.getFlushWriters(),
                                                                                           StageManager.KEEPALIVE,
                                                                                           TimeUnit.SECONDS,
                                                                                           new LinkedBlockingQueue<Runnable>(),


[3/3] cassandra git commit: Merge branch 'cassandra-3.9' into trunk

Posted by ma...@apache.org.
Merge branch 'cassandra-3.9' into trunk


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

Branch: refs/heads/trunk
Commit: dec1bdb20dcbacc8fba1ab8a14c16905a6384a34
Parents: f542a2e 44e475c
Author: Marcus Eriksson <ma...@apache.org>
Authored: Mon Jul 4 14:17:51 2016 +0200
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Mon Jul 4 14:17:51 2016 +0200

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/dec1bdb2/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 44b6699,b7330f0..309667e
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,7 -1,5 +1,8 @@@
 +3.10
 + * Remove pre-startup check for open JMX port (CASSANDRA-12074)
 +
  3.9
+  * Increase size of flushExecutor thread pool (CASSANDRA-12071)
  Merged from 3.0:
   * Avoid digest mismatch with empty but static rows (CASSANDRA-12090)
   * Fix EOF exception when altering column type (CASSANDRA-11820)


[2/3] cassandra git commit: Increase size of flushExecutor thread pool size

Posted by ma...@apache.org.
Increase size of flushExecutor thread pool size

Patch by marcuse; reviewed by Branimir Lambov for CASSANDRA-12071


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

Branch: refs/heads/trunk
Commit: 44e475c1a7aa351763fa5bd97664394186565b41
Parents: c86b3e1
Author: Marcus Eriksson <ma...@apache.org>
Authored: Mon Jul 4 10:49:43 2016 +0200
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Mon Jul 4 14:17:01 2016 +0200

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/44e475c1/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 475365f..b7330f0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.9
+ * Increase size of flushExecutor thread pool (CASSANDRA-12071)
 Merged from 3.0:
  * Avoid digest mismatch with empty but static rows (CASSANDRA-12090)
  * Fix EOF exception when altering column type (CASSANDRA-11820)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/44e475c1/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 523e15f..010800b 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -125,7 +125,15 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
 
     private static final Logger logger = LoggerFactory.getLogger(ColumnFamilyStore.class);
 
-    private static final ExecutorService flushExecutor = new JMXEnabledThreadPoolExecutor(1,
+    /*
+    We keep a pool of threads for each data directory, size of each pool is memtable_flush_writers.
+    When flushing we start a Flush runnable in the flushExecutor. Flush calculates how to split the
+    memtable ranges over the existing data directories and creates a FlushRunnable for each of the directories.
+    The FlushRunnables are executed in the perDiskflushExecutors and the Flush will block until all FlushRunnables
+    are finished. By having flushExecutor size the same size as each of the perDiskflushExecutors we make sure we can
+    have that many flushes going at the same time.
+    */
+    private static final ExecutorService flushExecutor = new JMXEnabledThreadPoolExecutor(DatabaseDescriptor.getFlushWriters(),
                                                                                           StageManager.KEEPALIVE,
                                                                                           TimeUnit.SECONDS,
                                                                                           new LinkedBlockingQueue<Runnable>(),