Author: jbellis Date: Mon Aug 22 21:58:46 2011 New Revision: 1160461 URL: http://svn.apache.org/viewvc?rev=1160461&view=rev Log: merge from 0.8
Modified: cassandra/trunk/ (props changed) cassandra/trunk/CHANGES.txt cassandra/trunk/contrib/ (props changed) cassandra/trunk/debian/cassandra.in.sh 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/redhat/cassandra.in.sh cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java cassandra/trunk/src/java/org/apache/cassandra/net/MessagingServiceMBean.java cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java Propchange: cassandra/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Aug 22 21:58:46 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7:1026516-1159807 +/cassandra/branches/cassandra-0.7:1026516-1160444 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1159811 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1160459 /cassandra/branches/cassandra-0.8.0:1125021-1130369 /cassandra/branches/cassandra-0.8.1:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689 Modified: cassandra/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1160461&r1=1160460&r2=1160461&view=diff ============================================================================== --- cassandra/trunk/CHANGES.txt (original) +++ cassandra/trunk/CHANGES.txt Mon Aug 22 21:58:46 2011 @@ -58,13 +58,18 @@ on create/update of the ColumnFamily and CQL 'ALTER' statement (CASSANDRA-3036) * return an InvalidRequestException if an indexed column is assigned a value larger than 64KB (CASSANDRA-3057) - * fix of numeric-only and string column names handling in CLI "drop index" (CASSANDRA-3054) + * fix of numeric-only and string column names handling in CLI "drop index" + (CASSANDRA-3054) * prune index scan resultset back to original request for lazy resultset expansion case (CASSANDRA-2964) * (Hadoop) fail jobs when Cassandra node has failed but TaskTracker has not (CASSANDRA-2388) * fix dynamic snitch ignoring nodes when read_repair_chance is zero (CASSANDRA-2662) + * avoid retaining references to dropped CFS objects in + CompactionManager.estimatedCompactions (CASSANDRA-2708) + * expose rpc timeouts per host in MessagingServiceMBean (CASSANDRA-2941) + * avoid including cwd in classpath for deb and rpm packages (CASSANDRA-2881) 0.8.4 Propchange: cassandra/trunk/contrib/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Aug 22 21:58:46 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009 -/cassandra/branches/cassandra-0.7/contrib:1026516-1159807 +/cassandra/branches/cassandra-0.7/contrib:1026516-1160444 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1159811 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1160459 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689 Modified: cassandra/trunk/debian/cassandra.in.sh URL: http://svn.apache.org/viewvc/cassandra/trunk/debian/cassandra.in.sh?rev=1160461&r1=1160460&r2=1160461&view=diff ============================================================================== --- cassandra/trunk/debian/cassandra.in.sh (original) +++ cassandra/trunk/debian/cassandra.in.sh Mon Aug 22 21:58:46 2011 @@ -5,7 +5,11 @@ CASSANDRA_CONF=/etc/cassandra CASSANDRA_HOME=/usr/share/cassandra # The java classpath (required) -CLASSPATH=$CASSANDRA_CONF +if [ -n "$CLASSPATH" ]; then + CLASSPATH=$CLASSPATH:$CASSANDRA_CONF +else + CLASSPATH=$CASSANDRA_CONF +fi for jar in /usr/share/cassandra/lib/*.jar; do CLASSPATH=$CLASSPATH:$jar Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Aug 22 21:58:46 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1159807 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1160444 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1159811 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1160459 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Aug 22 21:58:46 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1159807 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1160444 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1159811 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1160459 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Aug 22 21:58:46 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1159807 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1160444 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1159811 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1160459 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Aug 22 21:58:46 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1159807 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1160444 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1159811 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1160459 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Aug 22 21:58:46 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1159807 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1160444 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1159811 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1160459 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689 Modified: cassandra/trunk/redhat/cassandra.in.sh URL: http://svn.apache.org/viewvc/cassandra/trunk/redhat/cassandra.in.sh?rev=1160461&r1=1160460&r2=1160461&view=diff ============================================================================== --- cassandra/trunk/redhat/cassandra.in.sh (original) +++ cassandra/trunk/redhat/cassandra.in.sh Mon Aug 22 21:58:46 2011 @@ -2,11 +2,16 @@ # The directory where Cassandra's configs live (required) CASSANDRA_CONF=/etc/cassandra/conf +# The java classpath (required) +if [ -n "$CLASSPATH" ]; then + CLASSPATH=$CLASSPATH:$CASSANDRA_CONF +else + CLASSPATH=$CASSANDRA_CONF +fi + # use JNA if installed in standard location [ -r /usr/share/java/jna.jar ] && CLASSPATH="$CLASSPATH:/usr/share/java/jna.jar" -# The java classpath (required) -CLASSPATH=$CLASSPATH:$CASSANDRA_CONF for jar in /usr/share/cassandra/lib/*.jar; do CLASSPATH=$CLASSPATH:$jar Modified: cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java?rev=1160461&r1=1160460&r2=1160461&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java Mon Aug 22 21:58:46 2011 @@ -29,6 +29,7 @@ import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; import javax.management.MBeanServer; import javax.management.ObjectName; @@ -102,6 +103,10 @@ public final class MessagingService impl private final Map<StorageService.Verb, Integer> lastDropped = Collections.synchronizedMap(new EnumMap<StorageService.Verb, Integer>(StorageService.Verb.class)); private final Map<StorageService.Verb, Integer> lastDroppedInternal = new EnumMap<StorageService.Verb, Integer>(StorageService.Verb.class); + private long totalTimeouts = 0; + private long recentTotalTimeouts = 0; + private final Map<String, AtomicLong> timeoutsPerHost = new HashMap<String, AtomicLong>(); + private final Map<String, AtomicLong> recentTimeoutsPerHost = new HashMap<String, AtomicLong>(); private final List<ILatencySubscriber> subscribers = new ArrayList<ILatencySubscriber>(); private static final long DEFAULT_CALLBACK_TIMEOUT = (long) (1.1 * DatabaseDescriptor.getRpcTimeout()); @@ -141,6 +146,17 @@ public final class MessagingService impl { Pair<InetAddress, IMessageCallback> expiredValue = pair.right; maybeAddLatency(expiredValue.right, expiredValue.left, (double) DatabaseDescriptor.getRpcTimeout()); + totalTimeouts++; + String ip = expiredValue.left.getHostAddress(); + AtomicLong c = timeoutsPerHost.get(ip); + if (c == null) + c = timeoutsPerHost.put(ip, new AtomicLong()); + c.incrementAndGet(); + // we only create AtomicLong instances here, so that the write + // access to the hashmap happens single-threadedly. + if (recentTimeoutsPerHost.get(ip) == null) + recentTimeoutsPerHost.put(ip, new AtomicLong()); + return null; } }; @@ -649,4 +665,39 @@ public final class MessagingService impl } return map; } + + public long getTotalTimeouts() + { + return totalTimeouts; + } + + public long getRecentTotalTimouts() + { + long recent = totalTimeouts - recentTotalTimeouts; + recentTotalTimeouts = totalTimeouts; + return recent; + } + + public Map<String, Long> getTimeoutsPerHost() + { + Map<String, Long> result = new HashMap<String, Long>(); + for (Map.Entry<String, AtomicLong> entry: timeoutsPerHost.entrySet()) + { + result.put(entry.getKey(), entry.getValue().get()); + } + return result; + } + + public Map<String, Long> getRecentTimeoutsPerHost() + { + Map<String, Long> result = new HashMap<String, Long>(); + for (Map.Entry<String, AtomicLong> entry: recentTimeoutsPerHost.entrySet()) + { + String ip = entry.getKey(); + AtomicLong recent = entry.getValue(); + Long timeout = timeoutsPerHost.get(ip).get(); + result.put(ip, timeout - recent.getAndSet(timeout)); + } + return result; + } } Modified: cassandra/trunk/src/java/org/apache/cassandra/net/MessagingServiceMBean.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/MessagingServiceMBean.java?rev=1160461&r1=1160460&r2=1160461&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/net/MessagingServiceMBean.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/net/MessagingServiceMBean.java Mon Aug 22 21:58:46 2011 @@ -59,4 +59,24 @@ public interface MessagingServiceMBean * dropped message counts since last called */ public Map<String, Integer> getRecentlyDroppedMessages(); + + /** + * Total number of timeouts happened on this node + */ + public long getTotalTimeouts(); + + /** + * Number of timeouts per host + */ + public Map<String, Long> getTimeoutsPerHost(); + + /** + * Number of timeouts since last check. + */ + public long getRecentTotalTimouts(); + + /** + * Number of timeouts since last check per host. + */ + public Map<String, Long> getRecentTimeoutsPerHost(); } 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=1160461&r1=1160460&r2=1160461&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java Mon Aug 22 21:58:46 2011 @@ -739,11 +739,19 @@ public class NodeCmd private static void handleSnapshots(NodeCommand nc, String tag, String[] cmdArgs, NodeProbe probe) throws InterruptedException, IOException { - int length = cmdArgs.length > 1 ? cmdArgs.length - 1 : 0; - String[] keyspaces = new String[length]; - for (int i = 0; i < keyspaces.length; i++) - keyspaces[i] = cmdArgs[i + 1]; - + String[] keyspaces = Arrays.copyOfRange(cmdArgs, 0, cmdArgs.length); + System.out.print("Requested snapshot for: "); + if ( keyspaces.length > 0 ) + { + for (int i = 0; i < keyspaces.length; i++) + System.out.print(keyspaces[i] + " "); + } + else + { + System.out.print("all keyspaces"); + } + System.out.println(); + switch (nc) { case SNAPSHOT :