You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by zz...@apache.org on 2016/09/29 00:00:25 UTC
cassandra git commit: Really fix CM.setConcurrentCompactors,
include test coverage for such
Repository: cassandra
Updated Branches:
refs/heads/trunk 5e59b238f -> 3a79a027c
Really fix CM.setConcurrentCompactors, include test coverage for such
Fixes 979af884 and b80ef9b25 for CASSANDRA-12248
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3a79a027
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3a79a027
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3a79a027
Branch: refs/heads/trunk
Commit: 3a79a027c7db2b8007a8ae4e19002c3edbf63d8e
Parents: 5e59b23
Author: Nate McCall <zz...@gmail.com>
Authored: Thu Sep 29 12:52:24 2016 +1300
Committer: Nate McCall <zz...@gmail.com>
Committed: Thu Sep 29 12:52:24 2016 +1300
----------------------------------------------------------------------
.../cassandra/db/compaction/CompactionManager.java | 14 ++++++++++++--
.../cassandra/db/compaction/CompactionsTest.java | 11 +++++++++++
2 files changed, 23 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a79a027/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 148a4fb..2f3b32f 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -1865,8 +1865,18 @@ public class CompactionManager implements CompactionManagerMBean
public void setConcurrentCompactors(int value)
{
- executor.setMaximumPoolSize(value);
- executor.setCorePoolSize(value);
+ if (value > executor.getCorePoolSize())
+ {
+ // we are increasing the value
+ executor.setMaximumPoolSize(value);
+ executor.setCorePoolSize(value);
+ }
+ else if (value < executor.getCorePoolSize())
+ {
+ // we are reducing the value
+ executor.setCorePoolSize(value);
+ executor.setMaximumPoolSize(value);
+ }
}
public int getCoreCompactorThreads()
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a79a027/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java b/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
index 198b01b..cc81263 100644
--- a/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
@@ -641,4 +641,15 @@ public class CompactionsTest
200, 209,
300, 301)));
}
+
+ @Test
+ public void testConcurrencySettings()
+ {
+ CompactionManager.instance.setConcurrentCompactors(2);
+ assertEquals(2, CompactionManager.instance.getCoreCompactorThreads());
+ CompactionManager.instance.setConcurrentCompactors(3);
+ assertEquals(3, CompactionManager.instance.getCoreCompactorThreads());
+ CompactionManager.instance.setConcurrentCompactors(1);
+ assertEquals(1, CompactionManager.instance.getCoreCompactorThreads());
+ }
}