From 324ad8b8869fc32af201dbc5bf6972754714dd0b Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Thu, 10 Feb 2011 02:54:23 +0000 Subject: [PATCH] add -D option to Stress.java to specify list of nodes in a file patch by mdennis; reviewed by jbellis for CASSANDRA-2149 git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7@1069207 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 5 +++ .../cassandra/contrib/stress/Session.java | 42 ++++++++++++++----- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 7a08a3da32..c9c0e0e8dd 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -55,6 +55,11 @@ * page through large rows when exporting to JSON (CASSANDRA-2041) * add flush_largest_memtables_at and reduce_cache_sizes_at options (CASSANDRA-2142) + * add cli 'describe cluster' command (CASSANDRA-2127) + * add cli support for setting username/password at 'connect' command + (CASSANDRA-2111) + * add -D option to Stress.java to allow reading hosts from a file + (CASSANDRA-2149) * bound hints CF throughput between 32M and 256M (CASSANDRA-2148) diff --git a/contrib/stress/src/org/apache/cassandra/contrib/stress/Session.java b/contrib/stress/src/org/apache/cassandra/contrib/stress/Session.java index 9981140895..73f7413d5c 100644 --- a/contrib/stress/src/org/apache/cassandra/contrib/stress/Session.java +++ b/contrib/stress/src/org/apache/cassandra/contrib/stress/Session.java @@ -17,23 +17,23 @@ */ package org.apache.cassandra.contrib.stress; +import java.io.*; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.atomic.AtomicIntegerArray; +import java.util.concurrent.atomic.AtomicLongArray; + +import org.apache.commons.cli.*; + import org.apache.cassandra.db.ColumnFamilyType; import org.apache.cassandra.thrift.*; -import org.apache.commons.cli.*; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.transport.TFramedTransport; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.PrintStream; -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.concurrent.atomic.AtomicIntegerArray; -import java.util.concurrent.atomic.AtomicLongArray; - public class Session { // command line options @@ -53,6 +53,7 @@ public class Session availableOptions.addOption("S", "column-size", true, "Size of column values in bytes, default:34"); availableOptions.addOption("C", "cardinality", true, "Number of unique values stored in columns, default:50"); availableOptions.addOption("d", "nodes", true, "Host nodes (comma separated), default:locahost"); + availableOptions.addOption("D", "nodesfile", true, "File containing host nodes (one per line)"); availableOptions.addOption("s", "stdev", true, "Standard Deviation Factor, default:0.1"); availableOptions.addOption("r", "random", false, "Use random key generator (STDEV will have no effect), default:false"); availableOptions.addOption("f", "file", true, "Write output to given file"); @@ -130,6 +131,27 @@ public class Session if (cmd.hasOption("d")) nodes = cmd.getOptionValue("d").split(","); + if (cmd.hasOption("D")) + { + try + { + String node = null; + List tmpNodes = new ArrayList(); + BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(cmd.getOptionValue("D")))); + while ((node = in.readLine()) != null) + { + if (node.length() > 0) + tmpNodes.add(node); + } + nodes = tmpNodes.toArray(new String[tmpNodes.size()]); + in.close(); + } + catch(IOException ioe) + { + throw new RuntimeException(ioe); + } + } + if (cmd.hasOption("s")) STDev = Float.parseFloat(cmd.getOptionValue("s"));