You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2012/12/28 18:09:20 UTC

[2/3] git commit: add threadpool size adjustment methods to JMXEnabledThreadPoolExecutor and CompactionManagerMBean patch by Carl Yeksigian; reviewed by jbellis for CASSANDRA-5044

add threadpool size adjustment methods to JMXEnabledThreadPoolExecutor and CompactionManagerMBean
patch by Carl Yeksigian; reviewed by jbellis for CASSANDRA-5044


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

Branch: refs/heads/trunk
Commit: 8219195d0af457a5343c989496fca2edc4f53ff7
Parents: 1d96e32
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Dec 28 12:09:11 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Fri Dec 28 12:09:11 2012 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    2 +
 .../concurrent/JMXEnabledThreadPoolExecutor.java   |   20 +++++++
 .../JMXEnabledThreadPoolExecutorMBean.java         |   20 +++++++
 .../cassandra/db/compaction/CompactionManager.java |   40 +++++++++++++
 .../db/compaction/CompactionManagerMBean.java      |   44 +++++++++++++++
 5 files changed, 126 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8219195d/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 8fee595..ca4780a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 1.2.1
+ * add threadpool size adjustment methods to JMXEnabledThreadPoolExecutor and 
+   CompactionManagerMBean (CASSANDRA-5044)
  * Improve handling a changing target throttle rate mid-compaction (CASSANDRA-5087)
  * fix hinting for dropped local writes (CASSANDRA-4753)
  * off-heap cache doesn't need mutable column container (CASSANDRA-5057)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8219195d/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java b/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java
index 52f9453..de448b5 100644
--- a/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java
+++ b/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java
@@ -159,6 +159,26 @@ public class JMXEnabledThreadPoolExecutor extends DebuggableThreadPoolExecutor i
         return (int) metrics.currentBlocked.count();
     }
 
+    public int getCoreThreads()
+    {
+        return getCorePoolSize();
+    }
+
+    public void setCoreThreads(int number)
+    {
+        setCorePoolSize(number);
+    }
+
+    public int getMaximumThreads()
+    {
+        return getMaximumPoolSize();
+    }
+
+    public void setMaximumThreads(int number)
+    {
+        setMaximumPoolSize(number);
+    }
+
     @Override
     protected void onInitialRejection(Runnable task)
     {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8219195d/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java b/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java
index 48136bc..ed2a2ac 100644
--- a/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java
+++ b/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java
@@ -34,4 +34,24 @@ public interface JMXEnabledThreadPoolExecutorMBean extends IExecutorMBean
      * the executor (because all threads are busy and the backing queue is full).
      */
     public int getCurrentlyBlockedTasks();
+
+    /**
+     * Returns core pool size of thread pool.
+     */
+    public int getCoreThreads();
+
+    /**
+     * Allows user to resize core pool size of the thread pool.
+     */
+    public void setCoreThreads(int number);
+
+    /**
+     * Returns maximum pool size of thread pool.
+     */
+    public int getMaximumThreads();
+
+    /**
+     * Allows user to resize maximum size of the thread pool.
+     */
+    public void setMaximumThreads(int number);
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8219195d/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 0a31888..4f0290f 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -1126,6 +1126,46 @@ public class CompactionManager implements CompactionManagerMBean
         }
     }
 
+    public int getCoreCompactorThreads()
+    {
+        return executor.getCorePoolSize();
+    }
+
+    public void setCoreCompactorThreads(int number)
+    {
+        executor.setCorePoolSize(number);
+    }
+
+    public int getMaximumCompactorThreads()
+    {
+        return executor.getMaximumPoolSize();
+    }
+
+    public void setMaximumCompactorThreads(int number)
+    {
+        executor.setMaximumPoolSize(number);
+    }
+
+    public int getCoreValidationThreads()
+    {
+        return validationExecutor.getCorePoolSize();
+    }
+
+    public void setCoreValidationThreads(int number)
+    {
+        validationExecutor.setCorePoolSize(number);
+    }
+
+    public int getMaximumValidatorThreads()
+    {
+        return validationExecutor.getMaximumPoolSize();
+    }
+
+    public void setMaximumValidatorThreads(int number)
+    {
+        validationExecutor.setMaximumPoolSize(number);
+    }
+
     /**
      * Try to stop all of the compactions for given ColumnFamilies.
      * Note that this method does not wait indefinitely for all compactions to finish, maximum wait time is 30 secs.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8219195d/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java b/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java
index db44344..e24e79c 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java
@@ -74,4 +74,48 @@ public interface CompactionManagerMBean
      *   - INDEX_BUILD
      */
     public void stopCompaction(String type);
+
+    /**
+     * Returns core size of compaction thread pool
+     */
+    public int getCoreCompactorThreads();
+
+    /**
+     * Allows user to resize maximum size of the compaction thread pool.
+     * @param number New maximum of compaction threads
+     */
+    public void setCoreCompactorThreads(int number);
+
+    /**
+     * Returns maximum size of compaction thread pool
+     */
+    public int getMaximumCompactorThreads();
+
+    /**
+     * Allows user to resize maximum size of the compaction thread pool.
+     * @param number New maximum of compaction threads
+     */
+    public void setMaximumCompactorThreads(int number);
+
+    /**
+     * Returns core size of validation thread pool
+     */
+    public int getCoreValidationThreads();
+
+    /**
+     * Allows user to resize maximum size of the compaction thread pool.
+     * @param number New maximum of compaction threads
+     */
+    public void setCoreValidationThreads(int number);
+
+    /**
+     * Returns size of validator thread pool
+     */
+    public int getMaximumValidatorThreads();
+
+    /**
+     * Allows user to resize maximum size of the validator thread pool.
+     * @param number New maximum of validator threads
+     */
+    public void setMaximumValidatorThreads(int number);
 }