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");
     }
     
     /**


Reply via email to