This is an automated email from the ASF dual-hosted git repository.

adelapena pushed a commit to branch cassandra-3.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-3.0 by this push:
     new acf38bf  Use JMX to validate nodetool --jobs parameter
acf38bf is described below

commit acf38bf7a1ac34fdbe8c18c843828a78293a85cb
Author: Dmitrii Saprykin <[email protected]>
AuthorDate: Fri Aug 6 18:22:03 2021 +0100

    Use JMX to validate nodetool --jobs parameter
    
    patch by Dmitrii Saprykin; reviewed by Andrés de la Peña and Benjamin Lerer 
for CASSANDRA-16104
    
    Co-authored-by: Andrés de la Peña <[email protected]>
    Co-authored-by: Daniel Jatnieks <[email protected]>
    Co-authored-by: Dmitrii Saprykin <[email protected]>
---
 CHANGES.txt                                                         | 1 +
 src/java/org/apache/cassandra/service/StorageService.java           | 4 ++++
 src/java/org/apache/cassandra/service/StorageServiceMBean.java      | 2 ++
 src/java/org/apache/cassandra/tools/NodeProbe.java                  | 6 +++---
 .../unit/org/apache/cassandra/service/StorageServiceServerTest.java | 6 ++++++
 5 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index f2f1f8d..b35b838 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.26:
+ * Use JMX to validate nodetool --jobs parameter (CASSANDRA-16104)
  * Handle properly UnsatisfiedLinkError in NativeLibrary#getProcessID() 
(CASSANDRA-16578)
  * Remove mutation data from error log message (CASSANDRA-16817)
 
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index ac10374..0958513 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -1279,6 +1279,10 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
         return 
DatabaseDescriptor.getInterDCStreamThroughputOutboundMegabitsPerSec();
     }
 
+    public int getConcurrentCompactors()
+    {
+        return DatabaseDescriptor.getConcurrentCompactors();
+    }
 
     public int getCompactionThroughputMbPerSec()
     {
diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java 
b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
index dd534cb..d66b47a 100644
--- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java
+++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
@@ -518,6 +518,8 @@ public interface StorageServiceMBean extends 
NotificationEmitter
     public void setInterDCStreamThroughputMbPerSec(int value);
     public int getInterDCStreamThroughputMbPerSec();
 
+    public int getConcurrentCompactors();
+
     public int getCompactionThroughputMbPerSec();
     public void setCompactionThroughputMbPerSec(int value);
 
diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java 
b/src/java/org/apache/cassandra/tools/NodeProbe.java
index caba806..224b676 100644
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@ -56,7 +56,6 @@ import javax.rmi.ssl.SslRMIClientSocketFactory;
 
 import org.apache.cassandra.batchlog.BatchlogManager;
 import org.apache.cassandra.batchlog.BatchlogManagerMBean;
-import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.ColumnFamilyStoreMBean;
 import org.apache.cassandra.db.HintedHandOffManagerMBean;
 import org.apache.cassandra.db.compaction.CompactionManager;
@@ -290,8 +289,9 @@ public class NodeProbe implements AutoCloseable
 
     private void checkJobs(PrintStream out, int jobs)
     {
-        if (jobs > DatabaseDescriptor.getConcurrentCompactors())
-            out.println(String.format("jobs (%d) is bigger than configured 
concurrent_compactors (%d), using at most %d threads", jobs, 
DatabaseDescriptor.getConcurrentCompactors(), 
DatabaseDescriptor.getConcurrentCompactors()));
+        int compactors = ssProxy.getConcurrentCompactors();
+        if (jobs > compactors)
+            out.println(String.format("jobs (%d) is bigger than configured 
concurrent_compactors (%d), using at most %d threads", jobs, compactors, 
compactors));
     }
 
     public void forceKeyspaceCleanup(PrintStream out, int jobs, String 
keyspaceName, String... tableNames) throws IOException, ExecutionException, 
InterruptedException
diff --git 
a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java 
b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
index 4c776ba..95c2291 100644
--- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
+++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
@@ -584,4 +584,10 @@ public class StorageServiceServerTest
         repairRangeFrom = 
StorageService.instance.createRepairRangeFrom("2000", "2000");
         assert repairRangeFrom.size() == 0;
     }
+
+    @Test
+    public void testGetConcurrentCompactors() throws Exception
+    {
+        assert StorageService.instance.getConcurrentCompactors() == 4;
+    }
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to