On Mon, Apr 29, 2013 at 3:52 PM, John Watson <j...@disqus.com> wrote: > Same behavior on 1.1.3, 1.1.5 and 1.1.9. > Currently: 1.2.3
(below snippets are from trunk) ./src/java/org/apache/cassandra/tools/NodeCmd.java " case SETCOMPACTIONTHROUGHPUT : if (arguments.length != 1) { badUse("Missing value argument."); } probe.setCompactionThroughput(Integer.parseInt(arguments[0])); break; " ./src/java/org/apache/cassandra/tools/NodeProbe.java " public void setCompactionThroughput(int value) { ssProxy.setCompactionThroughputMbPerSec(value); " ./src/java/org/apache/cassandra/service/StorageService.java " public void setCompactionThroughputMbPerSec(int value) { DatabaseDescriptor.setCompactionThroughputMbPerSec(value); } " ./src/java/org/apache/cassandra/config/DatabaseDescriptor.java " public static void setCompactionThroughputMbPerSec(int value) { conf.compaction_throughput_mb_per_sec = value; } ... public static int getCompactionThroughputMbPerSec() { return conf.compaction_throughput_mb_per_sec; } " ./src/java/org/apache/cassandra/db/compaction/CompactionController.java " public int targetThroughput() { if (DatabaseDescriptor.getCompactionThroughputMbPerSec() < 1 || StorageService.instance.isBootstrapMode()) // throttling disabled return 0; // total throughput int totalBytesPerMS = DatabaseDescriptor.getCompactionThroughputMbPerSec() * 1024 * 1024 / 1000; // per stream throughput (target bytes per MS) return totalBytesPerMS / Math.max(1, CompactionManager.instance.getActiveCompactions()) " So, a value of "0" means "disable throttling". ./src/java/org/apache/cassandra/utils/Throttle.java " int newTargetBytesPerMS = fun.targetThroughput(); if (newTargetBytesPerMS < 1) // throttling disabled return; " And returning 0 from targetThroughput should result in throttling being disabled. I see in the actual throttle code this log line : logger.trace(String.format("%s actual throughput was %d bytes in %d ms: throttling for %d ms", So you could enable TRACE log level for this class to determine if it's making it into that codepath. As an aside, there is no bounds checking when setting configuration options via JMX. Be careful. https://issues.apache.org/jira/browse/CASSANDRA-4967 =Rob