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 2011/02/03 18:11:05 UTC
svn commit: r1066874 - in /cassandra/trunk: ./
interface/thrift/gen-java/org/apache/cassandra/thrift/
src/java/org/apache/cassandra/cli/ src/java/org/apache/cassandra/net/
src/java/org/apache/cassandra/service/ src/java/org/apache/cassandra/tools/
Author: jbellis
Date: Thu Feb 3 17:11:04 2011
New Revision: 1066874
URL: http://svn.apache.org/viewvc?rev=1066874&view=rev
Log:
merge from 0.7
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed)
cassandra/trunk/src/java/org/apache/cassandra/cli/CliUserHelp.java
cassandra/trunk/src/java/org/apache/cassandra/net/ResponseVerbHandler.java
cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Feb 3 17:11:04 2011
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1064713
-/cassandra/branches/cassandra-0.7:1026516-1066480
+/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1064713,1066843
+/cassandra/branches/cassandra-0.7:1026516-1066873
/cassandra/branches/cassandra-0.7.0:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3:774578-796573
Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1066874&r1=1066873&r2=1066874&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Thu Feb 3 17:11:04 2011
@@ -28,7 +28,7 @@
* fix CFMetaData.apply to only compare objects of the same class
(CASSANDRA-1962)
* allow specifying specific SSTables to compact from JMX (CASSANDRA-1963)
- * fix race condition in MessagingService.targets (CASSANDRA-1959, 2094)
+ * fix race condition in MessagingService.targets (CASSANDRA-1959, 2094, 2081)
* zero-copy reads (CASSANDRA-1714)
* refuse to open sstables from a future version (CASSANDRA-1935)
* fix copy bounds for word Text in wordcount demo (CASSANDRA-1993)
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Feb 3 17:11:04 2011
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1064713
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1066480
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1064713,1066843
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1066873
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Feb 3 17:11:04 2011
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1064713
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1066480
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1064713,1066843
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1066873
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Feb 3 17:11:04 2011
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1064713
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1066480
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1064713,1066843
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1066873
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Feb 3 17:11:04 2011
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1064713
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1066480
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1064713,1066843
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1066873
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Feb 3 17:11:04 2011
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1064713
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1066480
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1064713,1066843
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1066873
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliUserHelp.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliUserHelp.java?rev=1066874&r1=1066873&r2=1066874&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/CliUserHelp.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliUserHelp.java Thu Feb 3 17:11:04 2011
@@ -133,15 +133,20 @@ public class CliUserHelp {
state.out.println("valid attributes are:");
state.out.println(" replication_factor: to how many nodes should entries to this keyspace be");
state.out.println(" replicated. Valid entries are integers greater than 0.");
+ state.out.println(" Applies to Simple and OldNT strategies but NOT NTS.");
state.out.println(" placement_strategy: the fully qualified class used to place replicas in");
state.out.println(" this keyspace. Valid values are");
state.out.println(" org.apache.cassandra.locator.SimpleStrategy,");
state.out.println(" org.apache.cassandra.locator.NetworkTopologyStrategy,");
state.out.println(" and org.apache.cassandra.locator.OldNetworkTopologyStrategy");
- state.out.println(" strategy_options: additional options for placement_strategy.\n");
- state.out.println("example:");
- state.out.println("create keyspace foo with replication_factor = 3 and ");
- state.out.println(" placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy'");
+ state.out.println(" strategy_options: additional options for placement_strategy.");
+ state.out.println(" Applies only to NetworkTopologyStrategy.");
+ state.out.println("\nexamples:");
+ state.out.println("create keyspace foo with");
+ state.out.println(" placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy';");
+ state.out.println(" and replication_factor = 3;");
+ state.out.println("create keyspace foo with");
+ state.out.println(" placement_strategy = 'org.apache.cassandra.locator.NetworkTopologyStrategy';");
state.out.println(" and strategy_options=[{DC1:2, DC2:2}];");
break;
@@ -153,16 +158,21 @@ public class CliUserHelp {
state.out.println("valid attributes are:");
state.out.println(" replication_factor: to how many nodes should entries to this keyspace be");
state.out.println(" replicated. Valid entries are integers greater than 0.");
+ state.out.println(" Applies to Simple and OldNT strategies but NOT NTS.");
state.out.println(" placement_strategy: the fully qualified class used to place replicas in");
state.out.println(" this keyspace. Valid values are");
state.out.println(" org.apache.cassandra.locator.SimpleStrategy,");
state.out.println(" org.apache.cassandra.locator.NetworkTopologyStrategy,");
state.out.println(" and org.apache.cassandra.locator.OldNetworkTopologyStrategy");
- state.out.println(" strategy_options: additional options for placement_strategy.\n");
- state.out.println("example:");
- state.out.println("update keyspace foo with replication_factor = 2 and ");
- state.out.println(" placement_strategy = 'org.apache.cassandra.locator.LocalStrategy'");
- state.out.println(" and strategy_options=[{DC1:1, DC2:4, DC3:2}];");
+ state.out.println(" strategy_options: additional options for placement_strategy.");
+ state.out.println(" Applies only to NetworkTopologyStrategy.");
+ state.out.println("\nexamples:");
+ state.out.println("update keyspace foo with");
+ state.out.println(" placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy';");
+ state.out.println(" and replication_factor = 3;");
+ state.out.println("update keyspace foo with");
+ state.out.println(" placement_strategy = 'org.apache.cassandra.locator.NetworkTopologyStrategy';");
+ state.out.println(" and strategy_options=[{DC1:2, DC2:2}];");
break;
case CliParser.NODE_ADD_COLUMN_FAMILY:
Modified: cassandra/trunk/src/java/org/apache/cassandra/net/ResponseVerbHandler.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/ResponseVerbHandler.java?rev=1066874&r1=1066873&r2=1066874&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/net/ResponseVerbHandler.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/net/ResponseVerbHandler.java Thu Feb 3 17:11:04 2011
@@ -37,7 +37,10 @@ public class ResponseVerbHandler impleme
double age = System.currentTimeMillis() - MessagingService.instance().getRegisteredCallbackAge(messageId);
Pair<InetAddress, IMessageCallback> pair = MessagingService.instance().removeRegisteredCallback(messageId);
if (pair == null)
+ {
+ logger_.debug("Callback already removed for {}", messageId);
return;
+ }
IMessageCallback cb = pair.right;
MessagingService.instance().maybeAddLatency(cb, message.getFrom(), age);
Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1066874&r1=1066873&r2=1066874&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java Thu Feb 3 17:11:04 2011
@@ -729,7 +729,6 @@ public class StorageProxy implements Sto
{
DatabaseDescriptor.getEndpointSnitch().sortByProximity(FBUtilities.getLocalAddress(), liveEndpoints);
RangeSliceCommand c2 = new RangeSliceCommand(command.keyspace, command.column_family, command.super_column, command.predicate, range, command.max_keys);
- Message message = c2.getMessage();
// collect replies and resolve according to consistency level
RangeSliceResponseResolver resolver = new RangeSliceResponseResolver(command.keyspace, liveEndpoints);
@@ -738,6 +737,7 @@ public class StorageProxy implements Sto
// TODO bail early if live endpoints can't satisfy requested consistency level
for (InetAddress endpoint : liveEndpoints)
{
+ Message message = c2.getMessage();
MessagingService.instance().sendRR(message, endpoint, handler);
if (logger.isDebugEnabled())
logger.debug("reading " + c2 + " from " + message.getMessageId() + "@" + endpoint);
Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1066874&r1=1066873&r2=1066874&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java Thu Feb 3 17:11:04 2011
@@ -84,43 +84,54 @@ public class NodeCmd {
private static void printUsage()
{
HelpFormatter hf = new HelpFormatter();
- String header = "\nAvailable commands:\n"
- // No args
- + "ring\n"
- + "info\n"
- + "cfstats\n"
- + "clearsnapshot\n"
- + "version\n"
- + "tpstats\n"
- + "drain\n"
- + "decommission\n"
- + "loadbalance\n"
- + "compactionstats\n"
- + "disablegossip\n"
- + "enablegossip\n"
-
- // One arg
- + "snapshot [snapshotname]\n"
- + "netstats [host]\n"
- + "move <new token>\n"
- + "removetoken status|force|<token>\n"
-
- // Two args
- + "flush [keyspace] [cfnames]\n"
- + "repair [keyspace] [cfnames]\n"
- + "cleanup [keyspace] [cfnames]\n"
- + "compact [keyspace] [cfnames]\n"
- + "invalidatekeycache [keyspace] [cfnames]\n"
- + "invalidaterowcache [keyspace] [cfnames]\n"
- + "getcompactionthreshold <keyspace> <cfname>\n"
- + "cfhistograms <keyspace> <cfname>\n"
-
- // Four args
- + "setcachecapacity <keyspace> <cfname> <keycachecapacity> <rowcachecapacity>\n"
- + "setcompactionthreshold <keyspace> <cfname> <minthreshold> <maxthreshold>\n";
+ StringBuilder header = new StringBuilder();
+ header.append("\nAvailable commands:\n");
+ // No args
+ addCmdHelp(header, "ring", "Print informations on the token ring");
+ addCmdHelp(header, "info", "Print node informations (uptime, load, ...)");
+ addCmdHelp(header, "cfstats", "Print statistics on column families");
+ addCmdHelp(header, "clearsnapshot", "Remove all existing snapshots");
+ addCmdHelp(header, "version", "Print cassandra version");
+ addCmdHelp(header, "tpstats", "Print usage statistics of thread pools");
+ addCmdHelp(header, "drain", "Drain the node (stop accepting writes and flush all column families)");
+ addCmdHelp(header, "decommission", "Decommission the node");
+ addCmdHelp(header, "loadbalance", "Loadbalance the node");
+ addCmdHelp(header, "compactionstats", "Print statistics on compactions");
+ addCmdHelp(header, "disablegossip", "Disable gossip (effectively marking the node dead)");
+ addCmdHelp(header, "enablegossip", "Reenable gossip");
+
+ // One arg
+ addCmdHelp(header, "snapshot [snapshotname]", "Take a snapshot using optional name snapshotname");
+ addCmdHelp(header, "netstats [host]", "Print network information on provided host (connecting node by default)");
+ 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");
+
+ // Two args
+ addCmdHelp(header, "flush [keyspace] [cfnames]", "Flush one or more column family");
+ addCmdHelp(header, "repair [keyspace] [cfnames]", "Repair one or more column family");
+ addCmdHelp(header, "cleanup [keyspace] [cfnames]", "Run cleanup on one or more column family");
+ addCmdHelp(header, "compact [keyspace] [cfnames]", "Force a (major) compaction on one or more column family");
+ addCmdHelp(header, "invalidatekeycache [keyspace] [cfnames]", "Invalidate the key cache of one or more column family");
+ addCmdHelp(header, "invalidaterowcache [keyspace] [cfnames]", "Invalidate the key cache of one or more column family");
+ addCmdHelp(header, "getcompactionthreshold <keyspace> <cfname>", "Print min and max compaction thresholds for a given column family");
+ addCmdHelp(header, "cfhistograms <keyspace> <cfname>", "Print statistic histograms for a given column family");
+
+ // Four args
+ addCmdHelp(header, "setcachecapacity <keyspace> <cfname> <keycachecapacity> <rowcachecapacity>", "Set the key and row cache capacities of a given column family");
+ addCmdHelp(header, "setcompactionthreshold <keyspace> <cfname> <minthreshold> <maxthreshold>", "Set the min and max compaction thresholds for a given column family");
String usage = String.format("java %s --host <arg> <command>%n", NodeCmd.class.getName());
- hf.printHelp(usage, "", options, header);
+ hf.printHelp(usage, "", options, "");
+ System.out.println(header.toString());
+ }
+
+ private static void addCmdHelp(StringBuilder sb, String cmd, String description)
+ {
+ sb.append(" ").append(cmd);
+ // Ghetto indentation (trying, but not too hard, to not look too bad)
+ if (cmd.length() <= 20)
+ for (int i = cmd.length(); i < 22; ++i) sb.append(" ");
+ sb.append(" - ").append(description).append("\n");
}
/**