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 2009/08/20 05:13:19 UTC

svn commit: r806030 - in /incubator/cassandra/trunk/src/java/org/apache/cassandra: concurrent/ db/ tools/

Author: jbellis
Date: Thu Aug 20 03:13:19 2009
New Revision: 806030

URL: http://svn.apache.org/viewvc?rev=806030&view=rev
Log:
add getPendingTasks to CommitLogExecutorService
patch by jbellis; reviewed by Michael Greene for CASSANDRA-369

Added:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/IExecutorMBean.java
      - copied, changed from r806016, incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorServiceMBean.java
      - copied, changed from r806016, incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java
Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorService.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java?rev=806030&r1=806029&r2=806030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java Thu Aug 20 03:13:19 2009
@@ -18,20 +18,17 @@
 
 package org.apache.cassandra.concurrent;
 
-import java.util.concurrent.*;
 import java.lang.management.ManagementFactory;
-
-import org.apache.log4j.Logger;
-
+import java.util.concurrent.*;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
+import org.apache.log4j.Logger;
+
 /**
  * This is a wrapper class for the <i>ScheduledThreadPoolExecutor</i>. It provides an implementation
  * for the <i>afterExecute()</i> found in the <i>ThreadPoolExecutor</i> class to log any unexpected 
  * Runtime Exceptions.
- * 
- * Author : Avinash Lakshman ( alakshman@facebook.com) & Prashant Malik ( pmalik@facebook.com )
  */
 
 public class DebuggableThreadPoolExecutor extends ThreadPoolExecutor implements DebuggableThreadPoolExecutorMBean
@@ -53,6 +50,7 @@
     {
         super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory);
         super.prestartAllCoreThreads();
+
         MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
         try
         {
@@ -64,19 +62,6 @@
             throw new RuntimeException(e);
         }
     }
-    
-    public void unregisterMBean()
-    {
-        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
-        try
-        {
-            mbs.unregisterMBean(objName);
-        }
-        catch (Exception e)
-        {
-            throw new RuntimeException(e);
-        }
-    }
 
     public long getPendingTasks()
     {

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java?rev=806030&r1=806029&r2=806030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java Thu Aug 20 03:13:19 2009
@@ -18,7 +18,6 @@
 */
 package org.apache.cassandra.concurrent;
 
-public interface DebuggableThreadPoolExecutorMBean
+public interface DebuggableThreadPoolExecutorMBean extends IExecutorMBean
 {
-    public long getPendingTasks();
-}
+}
\ No newline at end of file

Copied: incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/IExecutorMBean.java (from r806016, incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java)
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/IExecutorMBean.java?p2=incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/IExecutorMBean.java&p1=incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java&r1=806016&r2=806030&rev=806030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/IExecutorMBean.java Thu Aug 20 03:13:19 2009
@@ -18,7 +18,7 @@
 */
 package org.apache.cassandra.concurrent;
 
-public interface DebuggableThreadPoolExecutorMBean
+public interface IExecutorMBean
 {
     public long getPendingTasks();
 }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorService.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorService.java?rev=806030&r1=806029&r2=806030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorService.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorService.java Thu Aug 20 03:13:19 2009
@@ -21,14 +21,17 @@
  */
 
 
-import org.apache.cassandra.config.DatabaseDescriptor;
-
 import java.io.IOException;
+import java.lang.management.ManagementFactory;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.*;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+import org.apache.cassandra.config.DatabaseDescriptor;
 
-public class CommitLogExecutorService extends AbstractExecutorService
+public class CommitLogExecutorService extends AbstractExecutorService implements CommitLogExecutorServiceMBean
 {
     BlockingQueue<CheaterFutureTask> queue;
 
@@ -63,6 +66,20 @@
             }
         };
         new Thread(runnable).start();
+
+        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+        try
+        {
+            mbs.registerMBean(this, new ObjectName("org.apache.cassandra.concurrent:type=COMMITLOG"));
+        }
+        catch (Exception e)
+        {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public long getPendingTasks() {
+        return queue.size();
     }
 
     private void process() throws InterruptedException

Copied: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorServiceMBean.java (from r806016, incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java)
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorServiceMBean.java?p2=incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorServiceMBean.java&p1=incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java&r1=806016&r2=806030&rev=806030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutorMBean.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLogExecutorServiceMBean.java Thu Aug 20 03:13:19 2009
@@ -16,9 +16,10 @@
 * specific language governing permissions and limitations
 * under the License.
 */
-package org.apache.cassandra.concurrent;
+package org.apache.cassandra.db;
 
-public interface DebuggableThreadPoolExecutorMBean
+import org.apache.cassandra.concurrent.IExecutorMBean;
+
+public interface CommitLogExecutorServiceMBean extends IExecutorMBean
 {
-    public long getPendingTasks();
-}
+}
\ No newline at end of file

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java?rev=806030&r1=806029&r2=806030&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java Thu Aug 20 03:13:19 2009
@@ -39,7 +39,7 @@
 import javax.management.remote.JMXConnectorFactory;
 import javax.management.remote.JMXServiceURL;
 
-import org.apache.cassandra.concurrent.DebuggableThreadPoolExecutorMBean;
+import org.apache.cassandra.concurrent.IExecutorMBean;
 import org.apache.cassandra.db.ColumnFamilyStoreMBean;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.net.EndPoint;
@@ -468,9 +468,7 @@
             for (ObjectName objectName : result)
             {
                 String poolName = objectName.getKeyProperty("type");
-                DebuggableThreadPoolExecutorMBean threadPoolProxy = JMX.newMBeanProxy(mbeanServerConn,
-                                                                                      objectName,
-                                                                                      DebuggableThreadPoolExecutorMBean.class);
+                IExecutorMBean threadPoolProxy = JMX.newMBeanProxy(mbeanServerConn, objectName, IExecutorMBean.class);
                 outs.println(poolName + ", pending tasks=" + threadPoolProxy.getPendingTasks());
             }
         }