Author: jbellis Date: Thu Dec 22 20:15:40 2011 New Revision: 1222419 URL: http://svn.apache.org/viewvc?rev=1222419&view=rev Log: add nodetool setstreamthroughput patch by Peter Schuller; reviewed by yukim for CASSANDRA-3571
Modified: cassandra/branches/cassandra-1.0/CHANGES.txt cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageServiceMBean.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeCmd.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeProbe.java Modified: cassandra/branches/cassandra-1.0/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1222419&r1=1222418&r2=1222419&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/CHANGES.txt (original) +++ cassandra/branches/cassandra-1.0/CHANGES.txt Thu Dec 22 20:15:40 2011 @@ -1,4 +1,5 @@ 1.0.7 + * add nodetool setstreamthroughput (CASSANDRA-3571) * fix assertion when dropping a columnfamily with no sstables (CASSANDRA-3614) * more efficient allocation of small bloom filters (CASSANDRA-3618) * CLibrary.createHardLinkWithExec() to check for errors (CASSANDRA-3101) Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java?rev=1222419&r1=1222418&r2=1222419&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java Thu Dec 22 20:15:40 2011 @@ -634,6 +634,17 @@ public class StorageService implements I return joined; } + public void setStreamThroughputMbPerSec(int value) + { + DatabaseDescriptor.setStreamThroughputOutboundMegabitsPerSec(value); + logger_.info("setstreamthroughput: throttle set to {}", value); + } + + public int getStreamThroughputMbPerSec() + { + return DatabaseDescriptor.getStreamThroughputOutboundMegabitsPerSec(); + } + public int getCompactionThroughputMbPerSec() { return DatabaseDescriptor.getCompactionThroughputMbPerSec(); Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageServiceMBean.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageServiceMBean.java?rev=1222419&r1=1222418&r2=1222419&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageServiceMBean.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageServiceMBean.java Thu Dec 22 20:15:40 2011 @@ -351,6 +351,9 @@ public interface StorageServiceMBean public boolean isJoined(); public int getExceptionCount(); + + public void setStreamThroughputMbPerSec(int value); + public int getStreamThroughputMbPerSec(); public int getCompactionThroughputMbPerSec(); public void setCompactionThroughputMbPerSec(int value); Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeCmd.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1222419&r1=1222418&r2=1222419&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeCmd.java Thu Dec 22 20:15:40 2011 @@ -108,6 +108,7 @@ public class NodeCmd SETCACHECAPACITY, SETCOMPACTIONTHRESHOLD, SETCOMPACTIONTHROUGHPUT, + SETSTREAMTHROUGHPUT, SNAPSHOT, STATUSTHRIFT, TPSTATS, @@ -147,6 +148,7 @@ public class NodeCmd addCmdHelp(header, "move <new token>", "Move node on the token ring to a new token"); addCmdHelp(header, "removetoken status|force|<token>", "Show status of current token removal, force completion of pending removal or remove providen token"); addCmdHelp(header, "setcompactionthroughput <value_in_mb>", "Set the MB/s throughput cap for compaction in the system, or 0 to disable throttling."); + addCmdHelp(header, "setstreamthroughput <value_in_mb>", "Set the MB/s throughput cap for streaming in the system, or 0 to disable throttling."); addCmdHelp(header, "describering [keyspace]", "Shows the token ranges info of a given keyspace."); // Two args @@ -694,6 +696,11 @@ public class NodeCmd probe.setCompactionThroughput(Integer.valueOf(arguments[0])); break; + case SETSTREAMTHROUGHPUT : + if (arguments.length != 1) { badUse("Missing value argument."); } + probe.setStreamThroughput(Integer.valueOf(arguments[0])); + break; + case REMOVETOKEN : if (arguments.length != 1) { badUse("Missing an argument for removetoken (either status, force, or a token)"); } else if (arguments[0].equals("status")) { nodeCmd.printRemovalStatus(System.out); } Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeProbe.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeProbe.java?rev=1222419&r1=1222418&r2=1222419&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeProbe.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/tools/NodeProbe.java Thu Dec 22 20:15:40 2011 @@ -636,6 +636,11 @@ public class NodeProbe return fdProxy.getAllEndpointStates(); } + public void setStreamThroughput(int value) + { + ssProxy.setStreamThroughputMbPerSec(value); + } + public List<String> describeRing(String keyspaceName) throws InvalidRequestException { return ssProxy.describeRingJMX(keyspaceName);