svn commit: r1103916 - /cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/locator/RackInferringSnitch.java
Author: brandonwilliams Date: Mon May 16 21:43:37 2011 New Revision: 1103916 URL: http://svn.apache.org/viewvc?rev=1103916view=rev Log: RIS rack and DC values are interpreted as being unsigned Patch by Jerr Pisk, reviewed by brandonwilliams for CASSANDRA-2651 Modified: cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/locator/RackInferringSnitch.java Modified: cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/locator/RackInferringSnitch.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/locator/RackInferringSnitch.java?rev=1103916r1=1103915r2=1103916view=diff == --- cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/locator/RackInferringSnitch.java (original) +++ cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/locator/RackInferringSnitch.java Mon May 16 21:43:37 2011 @@ -28,11 +28,11 @@ public class RackInferringSnitch extends { public String getRack(InetAddress endpoint) { -return Byte.toString(endpoint.getAddress()[2]); +return Integer.toString(endpoint.getAddress()[2] 0xFF, 10); } public String getDatacenter(InetAddress endpoint) { -return Byte.toString(endpoint.getAddress()[1]); +return Integer.toString(endpoint.getAddress()[1] 0xFF, 10); } }
svn commit: r1124338 - /cassandra/branches/cassandra-0.7/debian/rules
Author: brandonwilliams Date: Wed May 18 17:10:14 2011 New Revision: 1124338 URL: http://svn.apache.org/viewvc?rev=1124338view=rev Log: Fix for dh_installinit syntax for CASSANDRA-2481 Patch by Paul Cannon, reviewed by brandonwilliams Modified: cassandra/branches/cassandra-0.7/debian/rules Modified: cassandra/branches/cassandra-0.7/debian/rules URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/debian/rules?rev=1124338r1=1124337r2=1124338view=diff == --- cassandra/branches/cassandra-0.7/debian/rules (original) +++ cassandra/branches/cassandra-0.7/debian/rules Wed May 18 17:10:14 2011 @@ -46,7 +46,7 @@ binary-indep: build install dh_testdir dh_testroot dh_installchangelogs - dh_installinit -u'start 50 2 3 4 5 . stop 50 0 1 6' + dh_installinit -u'start 50 2 3 4 5 . stop 50 0 1 6 .' dh_installdocs README.txt CHANGES.txt NEWS.txt dh_compress dh_fixperms
svn commit: r1126682 - in /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra: gms/FailureDetector.java locator/DynamicEndpointSnitch.java
Author: brandonwilliams Date: Mon May 23 19:43:53 2011 New Revision: 1126682 URL: http://svn.apache.org/viewvc?rev=1126682view=rev Log: Simplify FD/DES calculations. Patch by Paul Cannon, reviewed by brandonwilliams for CASSANDRA-2597 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java?rev=1126682r1=1126681r2=1126682view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java Mon May 23 19:43:53 2011 @@ -200,6 +200,12 @@ class ArrivalWindow private double tLast_ = 0L; private BoundedStatsDeque arrivalIntervals_; +// this is useless except to provide backwards compatibility in phi_convict_threshold, +// because everyone seems pretty accustomed to the default of 8, and users who have +// already tuned their phi_convict_threshold for their own environments won't need to +// change. +private final double PHI_FACTOR = 1.0 / Math.log(10.0); + ArrivalWindow(int size) { arrivalIntervals_ = new BoundedStatsDeque(size); @@ -249,26 +255,16 @@ class ArrivalWindow { arrivalIntervals_.clear(); } - -double p(double t) -{ -double mean = mean(); -double exponent = (-1)*(t)/mean; -return Math.pow(Math.E, exponent); -} - + +// see CASSANDRA-2597 for an explanation of the math at work here. double phi(long tnow) -{ +{ int size = arrivalIntervals_.size(); -double log = 0d; -if ( size 0 ) -{ -double t = tnow - tLast_; -double probability = p(t); -log = (-1) * Math.log10( probability ); -} -return log; -} +double t = tnow - tLast_; +return (size 0) + ? PHI_FACTOR * t / mean() + : 0.0; +} public String toString() { Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java?rev=1126682r1=1126681r2=1126682view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java Mon May 23 19:43:53 2011 @@ -274,7 +274,6 @@ public class DynamicEndpointSnitch exten class AdaptiveLatencyTracker extends AbstractStatsDeque { private final LinkedBlockingDequeDouble latencies; -private static final double SENTINEL_COMPARE = 0.0001; // arbitrary; as long as it is the same across hosts it doesn't matter AdaptiveLatencyTracker(int size) { @@ -312,22 +311,9 @@ class AdaptiveLatencyTracker extends Abs return latencies.size(); } -double p(double t) -{ -double mean = mean(); -double exponent = (-1) * (t) / mean; -return 1 - Math.pow( Math.E, exponent); -} - double score() { -double log = 0d; -if ( latencies.size() 0 ) -{ -double probability = p(SENTINEL_COMPARE); -log = (-1) * Math.log10( probability ); -} -return log; +return (size() 0) ? mean() : 0.0; } }
svn commit: r1127336 - in /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools: NodeCmd.java NodeProbe.java
Author: brandonwilliams Date: Wed May 25 00:02:22 2011 New Revision: 1127336 URL: http://svn.apache.org/viewvc?rev=1127336view=rev Log: Show rack and dc in nodetool ring/info. Patch by Alex Araujo, reviewed by brandonwilliams for CASSANDRA-2531 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1127336r1=1127335r2=1127336view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Wed May 25 00:02:22 2011 @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.PrintStream; import java.lang.management.MemoryUsage; import java.net.InetAddress; +import java.net.UnknownHostException; import java.text.DecimalFormat; import java.util.*; import java.util.Map.Entry; @@ -161,11 +162,12 @@ public class NodeCmd CollectionString movingNodes = probe.getMovingNodes(); MapString, String loadMap = probe.getLoadMap(); -outs.printf(%-16s%-7s%-8s%-16s%-8s%-44s%n, Address, Status, State, Load, Owns, Token); +String format = %-16s%-12s%-12s%-7s%-8s%-16s%-8s%-44s%n; +outs.printf(format, Address, DC, Rack, Status, State, Load, Owns, Token); // show pre-wrap token twice so you can always read a node's range as // (previous line token, current line token] if (sortedTokens.size() 1) -outs.printf(%-16s%-7s%-8s%-16s%-8s%-44s%n, , , , , , sortedTokens.get(sortedTokens.size() - 1)); +outs.printf(format, , , , , , , , sortedTokens.get(sortedTokens.size() - 1)); // Calculate per-token ownership of the ring MapToken, Float ownerships = probe.getOwnership(); @@ -173,6 +175,24 @@ public class NodeCmd for (Token token : sortedTokens) { String primaryEndpoint = tokenToEndpoint.get(token); +String dataCenter; +try +{ +dataCenter = probe.getEndpointSnitchInfoProxy().getDatacenter(primaryEndpoint); +} +catch (UnknownHostException e) +{ +dataCenter = Unknown; +} +String rack; +try +{ +rack = probe.getEndpointSnitchInfoProxy().getRack(primaryEndpoint); +} +catch (UnknownHostException e) +{ +rack = Unknown; +} String status = liveNodes.contains(primaryEndpoint) ? Up : deadNodes.contains(primaryEndpoint) @@ -192,7 +212,7 @@ public class NodeCmd ? loadMap.get(primaryEndpoint) : ?; String owns = new DecimalFormat(##0.00%).format(ownerships.get(token)); -outs.printf(%-16s%-7s%-8s%-16s%-8s%-44s%n, primaryEndpoint, status, state, load, owns, token); +outs.printf(format, primaryEndpoint, dataCenter, rack, status, state, load, owns, token); } } @@ -236,6 +256,10 @@ public class NodeCmd double memUsed = (double)heapUsage.getUsed() / (1024 * 1024); double memMax = (double)heapUsage.getMax() / (1024 * 1024); outs.printf(%-17s: %.2f / %.2f%n, Heap Memory (MB), memUsed, memMax); + +// Data Center/Rack +outs.printf(%-17s: %s%n, Data Center, probe.getDataCenter()); +outs.printf(%-17s: %s%n, Rack, probe.getRack()); } public void printReleaseVersion(PrintStream outs) Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java?rev=1127336r1=1127335r2=1127336view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java Wed May 25 00:02:22 2011 @@ -25,6 +25,7 @@ import java.lang.management.MemoryMXBean import java.lang.management.MemoryUsage; import java.lang.management.RuntimeMXBean; import java.net.InetAddress; +import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.util.*; import java.util.Map.Entry; @@ -47,6 +48,7 @@ import org.apache.cassandra.db.ColumnFam import org.apache.cassandra.db.CompactionManager; import org.apache.cassandra.db.CompactionManagerMBean; import
svn commit: r1127625 - /cassandra/branches/cassandra-0.8.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
Author: brandonwilliams Date: Wed May 25 18:45:03 2011 New Revision: 1127625 URL: http://svn.apache.org/viewvc?rev=1127625view=rev Log: Fix setting of timestamps and remove extra mutation in pig. Patch by brandonwilliams, reviewed by Jeremy Hanna for CASSANDRA-2706 Modified: cassandra/branches/cassandra-0.8.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Modified: cassandra/branches/cassandra-0.8.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java?rev=1127625r1=1127624r2=1127625view=diff == --- cassandra/branches/cassandra-0.8.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java (original) +++ cassandra/branches/cassandra-0.8.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Wed May 25 18:45:03 2011 @@ -361,14 +361,14 @@ public class CassandraStorage extends Lo org.apache.cassandra.thrift.Column column = new org.apache.cassandra.thrift.Column(); column.name = objToBB(subcol.get(0)); column.value = objToBB(subcol.get(1)); - column.timestamp = System.currentTimeMillis() * 1000; + column.setTimestamp(System.currentTimeMillis() * 1000); columns.add(column); } if (columns.isEmpty()) // a deletion { mutation.deletion = new org.apache.cassandra.thrift.Deletion(); mutation.deletion.super_column = objToBB(pair.get(0)); - mutation.deletion.timestamp = System.currentTimeMillis() * 1000; + mutation.deletion.setTimestamp(System.currentTimeMillis() * 1000); } else { @@ -384,7 +384,7 @@ public class CassandraStorage extends Lo mutation.deletion = new org.apache.cassandra.thrift.Deletion(); mutation.deletion.predicate = new org.apache.cassandra.thrift.SlicePredicate(); mutation.deletion.predicate.column_names = Arrays.asList(objToBB(pair.get(0))); - mutation.deletion.timestamp = System.currentTimeMillis() * 1000; + mutation.deletion.setTimestamp(System.currentTimeMillis() * 1000); } else { @@ -398,10 +398,9 @@ public class CassandraStorage extends Lo column.value = marshallers.get(1).decompose(pair.get(1)); else column.value = validators.get(column.name).decompose(pair.get(1)); - column.timestamp = System.currentTimeMillis() * 1000; + column.setTimestamp(System.currentTimeMillis() * 1000); mutation.column_or_supercolumn = new ColumnOrSuperColumn(); mutation.column_or_supercolumn.column = column; - mutationList.add(mutation); } } mutationList.add(mutation);
svn commit: r1127669 - /cassandra/branches/cassandra-0.8/bin/sstableloader
Author: brandonwilliams Date: Wed May 25 20:18:31 2011 New Revision: 1127669 URL: http://svn.apache.org/viewvc?rev=1127669view=rev Log: Make sstableloader executable. Modified: cassandra/branches/cassandra-0.8/bin/sstableloader (contents, props changed) Modified: cassandra/branches/cassandra-0.8/bin/sstableloader URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/bin/sstableloader?rev=1127669r1=1127668r2=1127669view=diff == (empty) Propchange: cassandra/branches/cassandra-0.8/bin/sstableloader -- svn:executable = *
svn commit: r1127710 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/AbstractBounds.java
Author: brandonwilliams Date: Wed May 25 22:30:28 2011 New Revision: 1127710 URL: http://svn.apache.org/viewvc?rev=1127710view=rev Log: Fix typo in error message Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/AbstractBounds.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/AbstractBounds.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/AbstractBounds.java?rev=1127710r1=1127709r2=1127710view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/AbstractBounds.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/AbstractBounds.java Wed May 25 22:30:28 2011 @@ -101,7 +101,7 @@ public abstract class AbstractBounds imp { ListAbstractBounds unwrapped = bound.unwrap(); assert previous == null || previous.right.compareTo(unwrapped.get(0).left) = 0 : -Overlapping ranges passed to normalize: see CASSANDRA-2461: + previous + and + unwrapped; +Overlapping ranges passed to normalize: see CASSANDRA-2641: + previous + and + unwrapped; output.addAll(unwrapped); previous = unwrapped.get(unwrapped.size() - 1); }
svn commit: r1128488 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java
Author: brandonwilliams Date: Fri May 27 22:25:21 2011 New Revision: 1128488 URL: http://svn.apache.org/viewvc?rev=1128488view=rev Log: Change SSTL.openSSTables to protected Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java?rev=1128488r1=1128487r2=1128488view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java Fri May 27 22:25:21 2011 @@ -51,7 +51,7 @@ public class SSTableLoader this.outputHandler = outputHandler; } -private CollectionSSTableReader openSSTables() +protected CollectionSSTableReader openSSTables() { final ListSSTableReader sstables = new LinkedListSSTableReader();
svn commit: r1130223 - in /cassandra/branches/cassandra-0.8/tools/stress: bin/ src/org/apache/cassandra/stress/ src/org/apache/cassandra/stress/operations/ src/org/apache/cassandra/stress/server/ src/
Author: brandonwilliams Date: Wed Jun 1 16:55:27 2011 New Revision: 1130223 URL: http://svn.apache.org/viewvc?rev=1130223view=rev Log: stress.java daemon mode. Patch by Pavel Yaskevich, reviewed by brandonwilliams for CASSANDRA-2267 Added: cassandra/branches/cassandra-0.8/tools/stress/bin/stressd (with props) cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/StressAction.java - copied, changed from r1130201, cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/Stress.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/StressServer.java (with props) cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/server/ cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/server/StressThread.java (with props) Modified: cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/Session.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/Stress.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/operations/CounterAdder.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/operations/CounterGetter.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/operations/IndexedRangeSlicer.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/operations/Inserter.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/operations/MultiGetter.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/operations/RangeSlicer.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/operations/Reader.java cassandra/branches/cassandra-0.8/tools/stress/src/org/apache/cassandra/stress/util/Operation.java Added: cassandra/branches/cassandra-0.8/tools/stress/bin/stressd URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/tools/stress/bin/stressd?rev=1130223view=auto == --- cassandra/branches/cassandra-0.8/tools/stress/bin/stressd (added) +++ cassandra/branches/cassandra-0.8/tools/stress/bin/stressd Wed Jun 1 16:55:27 2011 @@ -0,0 +1,87 @@ +#!/bin/sh + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# License); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +DESC=Stress Test Daemon + +if [ x$CLASSPATH = x ]; then +# Cassandra class files. +if [ ! -d `dirname $0`/../../../build/classes/main ]; then +echo Unable to locate cassandra class files 2 +exit 1 +fi + +# Stress class files. +if [ ! -d `dirname $0`/../build/classes ]; then +echo Unable to locate stress class files 2 +exit 1 +fi + +CLASSPATH=`dirname $0`/../../../build/classes/main +CLASSPATH=$CLASSPATH:`dirname $0`/../../../build/classes/thrift +CLASSPATH=$CLASSPATH:`dirname $0`/../build/classes +for jar in `dirname $0`/../../../lib/*.jar; do +CLASSPATH=$CLASSPATH:$jar +done +fi + +if [ -x $JAVA_HOME/bin/java ]; then +JAVA=$JAVA_HOME/bin/java +else +JAVA=`which java` +fi + +if [ x$JAVA = x ]; then +echo Java executable not found (hint: set JAVA_HOME) 2 +exit 1 +fi + +case $1 in + start) +echo Starting $DESC: +$JAVA -server -cp $CLASSPATH org.apache.cassandra.stress.StressServer $@ 1 ./stressd.out.log 2 ./stressd.err.log +echo $! ./stressd.pid +echo done. + ;; + + stop) +PID=`cat ./stressd.pid 2 /dev/null` + +if [ x$PID = x ]; then + echo $DESC is not running. +else + kill -9 $PID + rm ./stressd.pid + echo $DESC is stopped. +fi + ;; + + status) +PID=`cat ./stressd.pid 2 /dev/null` + +if [ x$PID = x ]; then + echo $DESC is not running. +else + echo $DESC is running with pid $PID. +fi + ;; + + *) +echo Usage: $0 start|stop|status [-h host] + ;; +esac + Propchange: cassandra/branches/cassandra-0.8/tools/stress/bin/stressd -- svn:executable = * Modified: cassandra/branches/cassandra
svn commit: r1130267 - /cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
Author: brandonwilliams Date: Wed Jun 1 19:11:33 2011 New Revision: 1130267 URL: http://svn.apache.org/viewvc?rev=1130267view=rev Log: Fix pig build Modified: cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Modified: cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java?rev=1130267r1=1130266r2=1130267view=diff == --- cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java (original) +++ cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Wed Jun 1 19:11:33 2011 @@ -357,12 +357,12 @@ public class CassandraStorage extends Lo Mutation mutation = new Mutation(); if (DataType.findType(pair.get(1)) == DataType.BAG) // supercolumn { - org.apache.cassandra.hadoop.avro.SuperColumn sc = new org.apache.cassandra.hadoop.avro.SuperColumn(); + org.apache.cassandra.thrift.SuperColumn sc = new org.apache.cassandra.thrift.SuperColumn(); sc.name = objToBB(pair.get(0)); - ArrayListorg.apache.cassandra.hadoop.avro.Column columns = new ArrayListorg.apache.cassandra.hadoop.avro.Column(); + ArrayListorg.apache.cassandra.thrift.Column columns = new ArrayListorg.apache.cassandra.thrift.Column(); for (Tuple subcol : (DefaultDataBag) pair.get(1)) { - org.apache.cassandra.hadoop.avro.Column column = new org.apache.cassandra.hadoop.avro.Column(); + org.apache.cassandra.thrift.Column column = new org.apache.cassandra.thrift.Column(); column.name = objToBB(subcol.get(0)); column.value = objToBB(subcol.get(1)); column.setTimestamp(System.currentTimeMillis() * 1000);
svn commit: r1134017 - in /cassandra/branches/cassandra-0.8/examples/bmt: CassandraBulkLoader.java README.txt
Author: brandonwilliams Date: Thu Jun 9 17:53:32 2011 New Revision: 1134017 URL: http://svn.apache.org/viewvc?rev=1134017view=rev Log: Remove BMT example Removed: cassandra/branches/cassandra-0.8/examples/bmt/CassandraBulkLoader.java cassandra/branches/cassandra-0.8/examples/bmt/README.txt
svn commit: r1134108 - /cassandra/branches/cassandra-0.8/tools/stress/build.xml
Author: brandonwilliams Date: Thu Jun 9 22:10:19 2011 New Revision: 1134108 URL: http://svn.apache.org/viewvc?rev=1134108view=rev Log: Stress.java creates a jar by default. Patch by Pavel Yaskevich, reviewed by brandonwilliams for CASSANDRA-2744 Modified: cassandra/branches/cassandra-0.8/tools/stress/build.xml Modified: cassandra/branches/cassandra-0.8/tools/stress/build.xml URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/tools/stress/build.xml?rev=1134108r1=1134107r2=1134108view=diff == --- cassandra/branches/cassandra-0.8/tools/stress/build.xml (original) +++ cassandra/branches/cassandra-0.8/tools/stress/build.xml Thu Jun 9 22:10:19 2011 @@ -17,7 +17,7 @@ ~ specific language governing permissions and limitations ~ under the License. -- -project basedir=. default=build name=stress +project basedir=. default=jar name=stress property name=cassandra.dir value=../.. / property name=cassandra.lib value=${cassandra.dir}/lib / property name=build.src value=${basedir}/src / @@ -49,9 +49,19 @@ /target target name=jar depends=build +manifest file=MANIFEST.MF +attribute name=Built-By value=Pavel Yaskevich/ +attribute name=Main-Class value=org.apache.cassandra.stress.Stress/ +/manifest + mkdir dir=${build.classes}/META-INF / -jar jarfile=${build.out}/${final.name}.jar -basedir=${build.classes} / + +jar destfile=${build.out}/${final.name}.jar manifest=MANIFEST.MF +fileset dir=${build.classes}/ +fileset dir=${cassandra.dir}/build/classes/main / +fileset dir=${cassandra.dir}/build/classes/thrift / +zipgroupfileset dir=${cassandra.lib} includes=*.jar / +/jar /target target name=clean
svn commit: r1136637 - in /cassandra/branches/cassandra-0.8: src/java/org/apache/cassandra/tools/SSTableExport.java test/unit/org/apache/cassandra/SchemaLoader.java test/unit/org/apache/cassandra/tool
Author: brandonwilliams Date: Thu Jun 16 20:03:57 2011 New Revision: 1136637 URL: http://svn.apache.org/viewvc?rev=1136637view=rev Log: sstable2json escapes quotes. Patch by Pavel Yaskevich, reviewed by brandonwilliams for CASSANDRA-2780 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/SchemaLoader.java cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableExportTest.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java?rev=1136637r1=1136636r2=1136637view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java Thu Jun 16 20:03:57 2011 @@ -81,7 +81,12 @@ public class SSTableExport */ private static String quote(String val) { -return String.format(\%s\, val); +return String.format(\%s\, escapeQuotes(val)); +} + +private static String escapeQuotes(String val) +{ +return val.replace(\, \\\); } /** Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/SchemaLoader.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/SchemaLoader.java?rev=1136637r1=1136636r2=1136637view=diff == --- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/SchemaLoader.java (original) +++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/SchemaLoader.java Thu Jun 16 20:03:57 2011 @@ -113,6 +113,12 @@ public class SchemaLoader standardCFMD(ks1, Standard4), standardCFMD(ks1, StandardLong1), standardCFMD(ks1, StandardLong2), + new CFMetaData(ks1, + ValuesWithQuotes, + st, + BytesType.instance, + null) + .defaultValidator(UTF8Type.instance), superCFMD(ks1, Super1, LongType.instance), superCFMD(ks1, Super2, LongType.instance), superCFMD(ks1, Super3, LongType.instance), Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableExportTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableExportTest.java?rev=1136637r1=1136636r2=1136637view=diff == --- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableExportTest.java (original) +++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableExportTest.java Thu Jun 16 20:03:57 2011 @@ -22,17 +22,15 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.PrintStream; -import java.nio.ByteBuffer; -import java.util.Arrays; import org.apache.cassandra.SchemaLoader; -import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.ColumnFamily; import org.apache.cassandra.db.CounterColumn; import org.apache.cassandra.db.ExpiringColumn; +import org.apache.cassandra.db.Column; import org.apache.cassandra.db.filter.QueryFilter; import org.apache.cassandra.db.filter.QueryPath; -import org.apache.cassandra.dht.IPartitioner; +import org.apache.cassandra.db.marshal.UTF8Type; import org.apache.cassandra.io.sstable.Descriptor; import org.apache.cassandra.io.sstable.SSTableReader; import org.apache.cassandra.io.sstable.SSTableWriter; @@ -243,4 +241,30 @@ public class SSTableExportTest extends S assert ((String) colA.get(3)).equals(c); assert (Long) colA.get(4) == Long.MIN_VALUE; } + +@Test +public void testEscapingDoubleQuotes() throws IOException +{ +File tempSS = tempSSTableFile(Keyspace1, ValuesWithQuotes); +ColumnFamily cfamily = ColumnFamily.create(Keyspace1, ValuesWithQuotes); +SSTableWriter writer = new SSTableWriter(tempSS.getPath(), 2); + +// Add rowA +cfamily.addColumn(null, new Column(ByteBufferUtil.bytes(data), UTF8Type.instance.fromString({\foo\:\bar\}))); +writer.append(Util.dk(rowA), cfamily); +cfamily.clear(); + +SSTableReader reader
svn commit: r1136991 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java
Author: brandonwilliams Date: Fri Jun 17 19:20:18 2011 New Revision: 1136991 URL: http://svn.apache.org/viewvc?rev=1136991view=rev Log: Use jackson's ObjectMapper instead of hand-crafting json in sstable2json. Patch by Pavel Yaskevich, reviewed by brandonwilliams for CASSANDRA-2780 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java?rev=1136991r1=1136990r2=1136991view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java Fri Jun 17 19:20:18 2011 @@ -25,6 +25,7 @@ import java.nio.ByteBuffer; import java.util.*; import org.apache.cassandra.config.CFMetaData; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.*; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.io.util.BufferedRandomAccessFile; @@ -33,11 +34,11 @@ import org.apache.cassandra.service.Stor import org.apache.commons.cli.*; import org.apache.cassandra.config.ConfigurationException; -import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.io.sstable.*; import org.apache.cassandra.utils.ByteBufferUtil; -import org.apache.cassandra.utils.Pair; +import org.codehaus.jackson.JsonGenerator; +import org.codehaus.jackson.map.ObjectMapper; import static org.apache.cassandra.utils.ByteBufferUtil.bytesToHex; import static org.apache.cassandra.utils.ByteBufferUtil.hexToBytes; @@ -47,12 +48,12 @@ import static org.apache.cassandra.utils */ public class SSTableExport { -// size of the columns page -private static final int PAGE_SIZE = 1000; +private static ObjectMapper jsonMapper = new ObjectMapper(); private static final String KEY_OPTION = k; private static final String EXCLUDEKEY_OPTION = x; private static final String ENUMERATEKEYS_OPTION = e; + private static Options options; private static CommandLine cmd; @@ -72,47 +73,36 @@ public class SSTableExport Option optEnumerate = new Option(ENUMERATEKEYS_OPTION, false, enumerate keys only); options.addOption(optEnumerate); -} -/** - * Wraps given string into quotes - * @param val string to quote - * @return quoted string - */ -private static String quote(String val) -{ -return String.format(\%s\, escapeQuotes(val)); -} - -private static String escapeQuotes(String val) -{ -return val.replace(\, \\\); +// disabling auto close of the stream +jsonMapper.configure(JsonGenerator.Feature.AUTO_CLOSE_TARGET, false); } /** * JSON Hash Key serializer - * @param val value to set as a key - * @return JSON Hash key + * + * @param out The output steam to write data + * @param value value to set as a key */ -private static String asKey(String val) +private static void writeKey(PrintStream out, String value) { -return String.format(%s: , quote(val)); +writeJSON(out, value); +out.print(: ); } /** * Serialize columns using given column iterator + * * @param columns column iterator * @param out output stream * @param comparator columns comparator * @param cfMetaData Column Family metadata (to get validator) - * @return pair of (number of columns serialized, last column serialized) */ private static void serializeColumns(IteratorIColumn columns, PrintStream out, AbstractType comparator, CFMetaData cfMetaData) { while (columns.hasNext()) { -IColumn column = columns.next(); -serializeColumn(column, out, comparator, cfMetaData); +writeJSON(out, serializeColumn(columns.next(), comparator, cfMetaData)); if (columns.hasNext()) out.print(, ); @@ -121,47 +111,42 @@ public class SSTableExport /** * Serialize a given column to the JSON format + * * @param column column presentation - * @param out output stream * @param comparator columns comparator * @param cfMetaData Column Family metadata (to get validator) + * + * @return column as serialized list */ -private static void serializeColumn(IColumn column, PrintStream out, AbstractType comparator, CFMetaData cfMetaData) +private static ListObject serializeColumn(IColumn column, AbstractType comparator, CFMetaData cfMetaData) { +ArrayListObject serializedColumn = new ArrayListObject
svn commit: r1140759 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java
Author: brandonwilliams Date: Tue Jun 28 17:59:17 2011 New Revision: 1140759 URL: http://svn.apache.org/viewvc?rev=1140759view=rev Log: Add CFS.estimatedKeys to cfstats output. Patch by Joe Stein, reviewed by brandonwilliams for CASSANDRA-2836 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1140759r1=1140758r2=1140759view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Tue Jun 28 17:59:17 2011 @@ -445,6 +445,7 @@ public class NodeCmd outs.println(\t\tSSTable count: + cfstore.getLiveSSTableCount()); outs.println(\t\tSpace used (live): + cfstore.getLiveDiskSpaceUsed()); outs.println(\t\tSpace used (total): + cfstore.getTotalDiskSpaceUsed()); +outs.println(\t\tNumber of Keys (estimate): + cfstore.estimateKeys()); outs.println(\t\tMemtable Columns Count: + cfstore.getMemtableColumnsCount()); outs.println(\t\tMemtable Data Size: + cfstore.getMemtableDataSize()); outs.println(\t\tMemtable Switch Count: + cfstore.getMemtableSwitchCount());
svn commit: r1141194 [2/2] - in /cassandra/trunk: conf/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/db/marshal/ src/java/org/apache/cassandra/
Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/BulkLoader.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/BulkLoader.java?rev=1141194r1=1141193r2=1141194view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/tools/BulkLoader.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/tools/BulkLoader.java Wed Jun 29 18:55:50 2011 @@ -184,7 +184,7 @@ public class BulkLoader StorageService.instance.initClient(); SetInetAddress hosts = Gossiper.instance.getLiveMembers(); -hosts.remove(FBUtilities.getLocalAddress()); +hosts.remove(FBUtilities.getBroadcastAddress()); if (hosts.isEmpty()) throw new IllegalStateException(Cannot load any sstable, no live member found in the cluster); Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java?rev=1141194r1=1141193r2=1141194view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java Wed Jun 29 18:55:50 2011 @@ -61,6 +61,7 @@ public class FBUtilities public static final BigInteger TWO = new BigInteger(2); private static volatile InetAddress localInetAddress_; +private static volatile InetAddress broadcastInetAddress_; private static final ThreadLocalMessageDigest localMD5Digest = new ThreadLocalMessageDigest() { @@ -129,6 +130,15 @@ public class FBUtilities return localInetAddress_; } +public static InetAddress getBroadcastAddress() +{ +if (broadcastInetAddress_ == null) +broadcastInetAddress_ = DatabaseDescriptor.getBroadcastAddress() == null +? getLocalAddress() +: DatabaseDescriptor.getBroadcastAddress(); +return broadcastInetAddress_; +} + /** * @param fractOrAbs A double that may represent a fraction or absolute value. * @param total If fractionOrAbs is a fraction, the total to take the fraction from Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/Mx4jTool.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/Mx4jTool.java?rev=1141194r1=1141193r2=1141194view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/utils/Mx4jTool.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/utils/Mx4jTool.java Wed Jun 29 18:55:50 2011 @@ -80,7 +80,7 @@ public class Mx4jTool private static String getAddress() { -return System.getProperty(mx4jaddress, FBUtilities.getLocalAddress().getHostAddress()); +return System.getProperty(mx4jaddress, FBUtilities.getBroadcastAddress().getHostAddress()); } private static int getPort() Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/NodeId.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/NodeId.java?rev=1141194r1=1141193r2=1141194view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/utils/NodeId.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/utils/NodeId.java Wed Jun 29 18:55:50 2011 @@ -102,7 +102,7 @@ public class NodeId implements Comparabl public static NodeId generate() { -return new NodeId(ByteBuffer.wrap(UUIDGen.decompose(UUIDGen.makeType1UUIDFromHost(FBUtilities.getLocalAddress(); +return new NodeId(ByteBuffer.wrap(UUIDGen.decompose(UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress(); } /* Modified: cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java?rev=1141194r1=1141193r2=1141194view=diff == --- cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java (original) +++ cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java Wed Jun 29 18:55:50 2011 @@ -164,7 +164,7 @@ public class DefsTest extends CleanupHel public void saveAndRestore() throws IOException { // verify dump and reload. -UUID first = UUIDGen.makeType1UUIDFromHost(FBUtilities.getLocalAddress()); +UUID first = UUIDGen.makeType1UUIDFromHost(FBUtilities.getBroadcastAddress()); DefsTable.dumpToStorage(first); ListKSMetaData defs = new
svn commit: r1146900 - in /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra: locator/ service/
Author: brandonwilliams Date: Thu Jul 14 21:24:11 2011 New Revision: 1146900 URL: http://svn.apache.org/viewvc?rev=1146900view=rev Log: Allow RF to exceed the number of nodes (but disallow writes) Patch by brandonwilliams, reviewed by Pavel Yaskevich for CASSANDRA-2129 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/SimpleStrategy.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/WriteResponseHandler.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java?rev=1146900r1=1146899r2=1146900view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java Thu Jul 14 21:24:11 2011 @@ -87,9 +87,8 @@ public abstract class AbstractReplicatio * we return a List to avoid an extra allocation when sorting by proximity later * @param searchToken the token the natural endpoints are requested for * @return a copy of the natural endpoints for the given token - * @throws IllegalStateException if the number of requested replicas is greater than the number of known endpoints */ -public ArrayListInetAddress getNaturalEndpoints(Token searchToken) throws IllegalStateException +public ArrayListInetAddress getNaturalEndpoints(Token searchToken) { Token keyToken = TokenMetadata.firstToken(tokenMetadata.sortedTokens(), searchToken); ArrayListInetAddress endpoints = getCachedEndpoints(keyToken); @@ -99,10 +98,6 @@ public abstract class AbstractReplicatio keyToken = TokenMetadata.firstToken(tokenMetadataClone.sortedTokens(), searchToken); endpoints = new ArrayListInetAddress(calculateNaturalEndpoints(searchToken, tokenMetadataClone)); cacheEndpoint(keyToken, endpoints); -// calculateNaturalEndpoints should have checked this already, this is a safety -assert getReplicationFactor() = endpoints.size() : String.format(endpoints %s generated for RF of %s, - Arrays.toString(endpoints.toArray()), - getReplicationFactor()); } return new ArrayListInetAddress(endpoints); @@ -115,9 +110,8 @@ public abstract class AbstractReplicatio * * @param searchToken the token the natural endpoints are requested for * @return a copy of the natural endpoints for the given token - * @throws IllegalStateException if the number of requested replicas is greater than the number of known endpoints */ -public abstract ListInetAddress calculateNaturalEndpoints(Token searchToken, TokenMetadata tokenMetadata) throws IllegalStateException; +public abstract ListInetAddress calculateNaturalEndpoints(Token searchToken, TokenMetadata tokenMetadata); public IWriteResponseHandler getWriteResponseHandler(CollectionInetAddress writeEndpoints, MultimapInetAddress, InetAddress hintedEndpoints, Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java?rev=1146900r1=1146899r2=1146900view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java Thu Jul 14 21:24:11 2011 @@ -120,9 +120,6 @@ public class NetworkTopologyStrategy ext dcEndpoints.add(endpoint); } -if (dcEndpoints.size() dcReplicas) -throw new IllegalStateException(String.format(datacenter (%s) has no more endpoints, (%s) replicas still needed, - dcName, dcReplicas - dcEndpoints.size())); if (logger.isDebugEnabled()) logger.debug({} endpoints in datacenter {} for token
svn commit: r1146923 - /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java
Author: brandonwilliams Date: Thu Jul 14 23:42:11 2011 New Revision: 1146923 URL: http://svn.apache.org/viewvc?rev=1146923view=rev Log: Do not allow extra params to nodetool commands to prevent confusion. Patch by Jon Hermes, reviewed by brandonwilliams for CASSANDRA-2740 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1146923r1=1146922r2=1146923view=diff == --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java Thu Jul 14 23:42:11 2011 @@ -539,19 +539,19 @@ public class NodeCmd switch (command) { -case RING: nodeCmd.printRing(System.out); break; -case INFO: nodeCmd.printInfo(System.out); break; -case CFSTATS : nodeCmd.printColumnFamilyStats(System.out); break; -case DECOMMISSION: probe.decommission(); break; -case LOADBALANCE : probe.loadBalance(); break; -case CLEARSNAPSHOT : probe.clearSnapshot(); break; -case TPSTATS : nodeCmd.printThreadPoolStats(System.out); break; -case VERSION : nodeCmd.printReleaseVersion(System.out); break; -case COMPACTIONSTATS : nodeCmd.printCompactionStats(System.out); break; -case DISABLEGOSSIP : probe.stopGossiping(); break; -case ENABLEGOSSIP: probe.startGossiping(); break; -case DISABLETHRIFT : probe.stopThriftServer(); break; -case ENABLETHRIFT: probe.startThriftServer(); break; +case RING: complainNonzeroArgs(arguments, command); nodeCmd.printRing(System.out); break; +case INFO: complainNonzeroArgs(arguments, command); nodeCmd.printInfo(System.out); break; +case CFSTATS : complainNonzeroArgs(arguments, command); nodeCmd.printColumnFamilyStats(System.out); break; +case DECOMMISSION: complainNonzeroArgs(arguments, command); probe.decommission(); break; +case LOADBALANCE : complainNonzeroArgs(arguments, command); probe.loadBalance(); break; +case CLEARSNAPSHOT : complainNonzeroArgs(arguments, command); probe.clearSnapshot(); break; +case TPSTATS : complainNonzeroArgs(arguments, command); nodeCmd.printThreadPoolStats(System.out); break; +case VERSION : complainNonzeroArgs(arguments, command); nodeCmd.printReleaseVersion(System.out); break; +case COMPACTIONSTATS : complainNonzeroArgs(arguments, command); nodeCmd.printCompactionStats(System.out); break; +case DISABLEGOSSIP : complainNonzeroArgs(arguments, command); probe.stopGossiping(); break; +case ENABLEGOSSIP: complainNonzeroArgs(arguments, command); probe.startGossiping(); break; +case DISABLETHRIFT : complainNonzeroArgs(arguments, command); probe.stopThriftServer(); break; +case ENABLETHRIFT: complainNonzeroArgs(arguments, command); probe.startThriftServer(); break; case DRAIN : try { probe.drain(); } @@ -647,6 +647,15 @@ public class NodeCmd System.exit(3); } +private static void complainNonzeroArgs(String[] args, NodeCommand cmd) +{ +if (args.length 0) { +System.err.println(Too many arguments for command '+cmd.toString()+'.); +printUsage(); +System.exit(1); +} +} + private static void optionalKSandCFs(NodeCommand nc, String[] cmdArgs, NodeProbe probe) throws InterruptedException, IOException { // if there is one additional arg, it's the keyspace; more are columnfamilies
svn commit: r1147210 - /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
Author: brandonwilliams Date: Fri Jul 15 16:07:59 2011 New Revision: 1147210 URL: http://svn.apache.org/viewvc?rev=1147210view=rev Log: Allow quoted class names in the cli. Patch by Pavel Yaskevich, reviewed by brandonwilliams for CASSANDRA-2899 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java?rev=1147210r1=1147209r2=1147210view=diff == --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java Fri Jul 15 16:07:59 2011 @@ -934,7 +934,7 @@ public class CliClient extends CliUserHe cfDef.setKey_cache_save_period_in_seconds(Integer.parseInt(mValue)); break; case DEFAULT_VALIDATION_CLASS: -cfDef.setDefault_validation_class(mValue); + cfDef.setDefault_validation_class(CliUtils.unescapeSQLString(mValue)); break; case MIN_COMPACTION_THRESHOLD: cfDef.setMin_compaction_threshold(Integer.parseInt(mValue));
svn commit: r1147248 - in /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service: StorageService.java StorageServiceMBean.java
Author: brandonwilliams Date: Fri Jul 15 17:03:13 2011 New Revision: 1147248 URL: http://svn.apache.org/viewvc?rev=1147248view=rev Log: Expose data_dir through JMX. Patch by Mike Bulman, reviewed by brandonwilliams for CASSANDRA-2770 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageServiceMBean.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java?rev=1147248r1=1147247r2=1147248view=diff == --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java Fri Jul 15 17:03:13 2011 @@ -1225,6 +1225,26 @@ public class StorageService implements I return stringify(Gossiper.instance.getUnreachableMembers()); } +public String[] getAllDataFileLocations() +{ +return DatabaseDescriptor.getAllDataFileLocations(); +} + +public String[] getAllDataFileLocationsForTable(String table) +{ +return DatabaseDescriptor.getAllDataFileLocationsForTable(table); +} + +public String getCommitLogLocation() +{ +return DatabaseDescriptor.getCommitLogLocation(); +} + +public String getSavedCachesLocation() +{ +return DatabaseDescriptor.getSavedCachesLocation(); +} + private ListString stringify(IterableInetAddress endpoints) { ListString stringEndpoints = new ArrayListString(); Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageServiceMBean.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageServiceMBean.java?rev=1147248r1=1147247r2=1147248view=diff == --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageServiceMBean.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageServiceMBean.java Fri Jul 15 17:03:13 2011 @@ -78,6 +78,31 @@ public interface StorageServiceMBean public String getReleaseVersion(); /** + * Get the list of all data file locations from conf + * @return String array of all locations + */ +public String[] getAllDataFileLocations(); + +/** + * Get the list of data file locations for a given keyspace + * @param keyspace the keyspace to get locatiosn for. + * @return String array of all locations + */ +public String[] getAllDataFileLocationsForTable(String table); + +/** + * Get location of the commit log + * @return a string path + */ +public String getCommitLogLocation(); + +/** + * Get location of the saved caches dir + * @return a string path + */ +public String getSavedCachesLocation(); + +/** * Retrieve a map of range to end points that describe the ring topology * of a Cassandra cluster. *
svn commit: r1147259 - in /cassandra/branches/cassandra-0.8: src/java/org/apache/cassandra/cli/CliClient.java test/unit/org/apache/cassandra/cli/CliTest.java
Author: brandonwilliams Date: Fri Jul 15 17:33:50 2011 New Revision: 1147259 URL: http://svn.apache.org/viewvc?rev=1147259view=rev Log: Proper function support and key validation for cli deletes. Patch by Pavel Yaskevich, reviewed by brandonwilliams for CASSANDRA-2821 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java?rev=1147259r1=1147258r2=1147259view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java Fri Jul 15 17:33:50 2011 @@ -376,13 +376,14 @@ public class CliClient Tree columnFamilySpec = statement.getChild(0); -String key = CliCompiler.getKey(columnFamilySpec); String columnFamily = CliCompiler.getColumnFamily(columnFamilySpec, keyspacesMap.get(keySpace).cf_defs); +CfDef cfDef = getCfDef(columnFamily); + +ByteBuffer key = getKeyAsBytes(columnFamily, columnFamilySpec.getChild(1)); int columnSpecCnt = CliCompiler.numColumnSpecifiers(columnFamilySpec); byte[] superColumnName = null; byte[] columnName = null; -CfDef cfDef = getCfDef(columnFamily); boolean isSuper = cfDef.column_type.equals(Super); if ((columnSpecCnt 0) || (columnSpecCnt 2)) @@ -390,20 +391,42 @@ public class CliClient sessionState.out.println(Invalid row, super column, or column specification.); return; } - + +Tree columnTree = (columnSpecCnt = 1) + ? columnFamilySpec.getChild(2) + : null; + +Tree subColumnTree = (columnSpecCnt == 2) + ? columnFamilySpec.getChild(3) + : null; + if (columnSpecCnt == 1) { +assert columnTree != null; + +byte[] columnNameBytes = (columnTree.getType() == CliParser.FUNCTION_CALL) + ? convertValueByFunction(columnTree, null, null).array() + : columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), cfDef); + // table.cf['key']['column'] if (isSuper) -superColumnName = columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), cfDef); +superColumnName = columnNameBytes; else -columnName = columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), cfDef); +columnName = columnNameBytes; } else if (columnSpecCnt == 2) { +assert columnTree != null; +assert subColumnTree != null; + // table.cf['key']['column']['column'] -superColumnName = columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), cfDef); -columnName = subColumnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 1), cfDef); +superColumnName = (columnTree.getType() == CliParser.FUNCTION_CALL) + ? convertValueByFunction(columnTree, null, null).array() + : columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), cfDef); + +columnName = (subColumnTree.getType() == CliParser.FUNCTION_CALL) + ? convertValueByFunction(subColumnTree, null, null).array() + : subColumnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 1), cfDef); } ColumnPath path = new ColumnPath(columnFamily); @@ -415,12 +438,11 @@ public class CliClient if (isCounterCF(cfDef)) { -thriftClient.remove_counter(ByteBufferUtil.bytes(key), path, consistencyLevel); +thriftClient.remove_counter(key, path, consistencyLevel); } else { -thriftClient.remove(ByteBufferUtil.bytes(key), path, -FBUtilities.timestampMicros(), consistencyLevel); +thriftClient.remove(key, path, FBUtilities.timestampMicros(), consistencyLevel); } sessionState.out.println(String.format(%s removed., (columnSpecCnt == 0) ? row : column)); } Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1147259r1=1147258r2=1147259view=diff
svn commit: r1147261 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java
Author: brandonwilliams Date: Fri Jul 15 17:42:11 2011 New Revision: 1147261 URL: http://svn.apache.org/viewvc?rev=1147261view=rev Log: cli validates CFMetaData on update. Patch by jbellis, reviewed by Pavel Yaskevich for CASSANDRA-2809 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java?rev=1147261r1=1147260r2=1147261view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java Fri Jul 15 17:42:11 2011 @@ -960,6 +960,7 @@ public class CassandraServer implements CFMetaData oldCfm = DatabaseDescriptor.getCFMetaData(CFMetaData.getId(cf_def.keyspace, cf_def.name)); if (oldCfm == null) throw new InvalidRequestException(Could not find column family definition to modify.); +ThriftValidation.validateCfDef(cf_def, oldCfm); validateSchemaAgreement(); try
svn commit: r1147316 - in /cassandra/branches/cassandra-0.8: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/cli/ src/java/org/apache/cassandra/config/
Author: brandonwilliams Date: Fri Jul 15 20:54:32 2011 New Revision: 1147316 URL: http://svn.apache.org/viewvc?rev=1147316view=rev Log: Merge from 0.7 Modified: cassandra/branches/cassandra-0.8/ (props changed) cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/contrib/ (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageServiceMBean.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Propchange: cassandra/branches/cassandra-0.8/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jul 15 20:54:32 2011 @@ -1,5 +1,5 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7:1026516-1144407 +/cassandra/branches/cassandra-0.7:1026516-1147315 /cassandra/branches/cassandra-0.7.0:1053690-1055654 /cassandra/branches/cassandra-0.8:1090934-1125013,1125041 /cassandra/branches/cassandra-0.8.0:1125021-1130369 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1147316r1=1147315r2=1147316view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Jul 15 20:54:32 2011 @@ -25,6 +25,7 @@ * decrease HH page size (CASSANDRA-2832) * reset cli keyspace after dropping the current one (CASSANDRA-2763) * add KeyRange option to Hadoop inputformat (CASSANDRA-1125) + * support spaces in path to log4j configuration (CASSANDRA-2383) 0.8.1 Propchange: cassandra/branches/cassandra-0.8/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jul 15 20:54:32 2011 @@ -1,5 +1,5 @@ /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009 -/cassandra/branches/cassandra-0.7/contrib:1026516-1144407 +/cassandra/branches/cassandra-0.7/contrib:1026516-1147315 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 /cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125041 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jul 15 20:54:32 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-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1144407 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1147315 /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,1125041 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jul 15 20:54:32 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-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra
svn commit: r1147334 - in /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra: cli/CliClient.java tools/NodeCmd.java
Author: brandonwilliams Date: Fri Jul 15 22:12:22 2011 New Revision: 1147334 URL: http://svn.apache.org/viewvc?rev=1147334view=rev Log: Fix broken merge Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java?rev=1147334r1=1147333r2=1147334view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java Fri Jul 15 22:12:22 2011 @@ -408,12 +408,6 @@ public class CliClient ? convertValueByFunction(columnTree, null, null).array() : columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), cfDef); -// table.cf['key']['column'] -assert columnTree != null; - -byte[] columnNameBytes = (columnTree.getType() == CliParser.FUNCTION_CALL) - ? convertValueByFunction(columnTree, null, null).array() - : columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), cfDef); if (isSuper) superColumnName = columnNameBytes; Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1147334r1=1147333r2=1147334view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Fri Jul 15 22:12:22 2011 @@ -603,19 +603,17 @@ public class NodeCmd switch (command) { -case RING: complainNonzeroArgs(arguments, command); nodeCmd.printRing(System.out); break; -case INFO: complainNonzeroArgs(arguments, command); nodeCmd.printInfo(System.out); break; -case CFSTATS : complainNonzeroArgs(arguments, command); nodeCmd.printColumnFamilyStats(System.out); break; -case DECOMMISSION: complainNonzeroArgs(arguments, command); probe.decommission(); break; -case LOADBALANCE : complainNonzeroArgs(arguments, command); probe.loadBalance(); break; -case CLEARSNAPSHOT : complainNonzeroArgs(arguments, command); probe.clearSnapshot(); break; -case TPSTATS : complainNonzeroArgs(arguments, command); nodeCmd.printThreadPoolStats(System.out); break; -case VERSION : complainNonzeroArgs(arguments, command); nodeCmd.printReleaseVersion(System.out); break; -case COMPACTIONSTATS : complainNonzeroArgs(arguments, command); nodeCmd.printCompactionStats(System.out); break; -case DISABLEGOSSIP : complainNonzeroArgs(arguments, command); probe.stopGossiping(); break; -case ENABLEGOSSIP: complainNonzeroArgs(arguments, command); probe.startGossiping(); break; -case DISABLETHRIFT : complainNonzeroArgs(arguments, command); probe.stopThriftServer(); break; -case ENABLETHRIFT: complainNonzeroArgs(arguments, command); probe.startThriftServer(); break; +case RING: nodeCmd.printRing(System.out); break; +case INFO: nodeCmd.printInfo(System.out); break; +case CFSTATS : nodeCmd.printColumnFamilyStats(System.out); break; +case DECOMMISSION: probe.decommission(); break; +case TPSTATS : nodeCmd.printThreadPoolStats(System.out); break; +case VERSION : nodeCmd.printReleaseVersion(System.out); break; +case COMPACTIONSTATS : nodeCmd.printCompactionStats(System.out); break; +case DISABLEGOSSIP : probe.stopGossiping(); break; +case ENABLEGOSSIP: probe.startGossiping(); break; +case DISABLETHRIFT : probe.stopThriftServer(); break; +case ENABLETHRIFT: probe.startThriftServer(); break; case STATUSTHRIFT: nodeCmd.printIsThriftServerRunning(System.out); break; case DRAIN : @@ -722,7 +720,7 @@ public class NodeCmd e.printStackTrace(); System.exit(3); } - + private static void complainNonzeroArgs(String[] args, NodeCommand cmd) { if (args.length 0) { @@ -732,6 +730,27 @@ public class NodeCmd } } +private static void
svn commit: r1147336 - in /cassandra/branches/cassandra-0.8: src/java/org/apache/cassandra/cli/CliClient.java test/unit/org/apache/cassandra/cli/CliTest.java
Author: brandonwilliams Date: Fri Jul 15 22:17:58 2011 New Revision: 1147336 URL: http://svn.apache.org/viewvc?rev=1147336view=rev Log: Proper support of key validation class and function calls for COUNT in the cli. Patch by Pavel Yaskevich, reviewed by brandonwilliams for CASSANDRA-2902 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java?rev=1147336r1=1147335r2=1147336view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java Fri Jul 15 22:17:58 2011 @@ -349,7 +349,6 @@ public class CliClient Tree columnFamilySpec = statement.getChild(0); -String key = CliCompiler.getKey(columnFamilySpec); String columnFamily = CliCompiler.getColumnFamily(columnFamilySpec, keyspacesMap.get(keySpace).cf_defs); int columnSpecCnt = CliCompiler.numColumnSpecifiers(columnFamilySpec); @@ -357,14 +356,19 @@ public class CliClient if (columnSpecCnt != 0) { -byte[] superColumn = columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), columnFamily); +Tree columnTree = columnFamilySpec.getChild(2); + +byte[] superColumn = (columnTree.getType() == CliParser.FUNCTION_CALL) + ? convertValueByFunction(columnTree, null, null).array() + : columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), columnFamily); + colParent = new ColumnParent(columnFamily).setSuper_column(superColumn); } SliceRange range = new SliceRange(ByteBufferUtil.EMPTY_BYTE_BUFFER, ByteBufferUtil.EMPTY_BYTE_BUFFER, false, Integer.MAX_VALUE); SlicePredicate predicate = new SlicePredicate().setColumn_names(null).setSlice_range(range); -int count = thriftClient.get_count(ByteBufferUtil.bytes(key), colParent, predicate, consistencyLevel); +int count = thriftClient.get_count(getKeyAsBytes(columnFamily, columnFamilySpec.getChild(1)), colParent, predicate, consistencyLevel); sessionState.out.printf(%d columns%n, count); } Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1147336r1=1147335r2=1147336view=diff == --- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java (original) +++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java Fri Jul 15 22:17:58 2011 @@ -134,6 +134,10 @@ public class CliTest extends CleanupHelp set sCf1['hello'][1][] = 938;, set sCf1['hello'][1][] = 938 with ttl = 30;, set sCf1['hello'][1][] = 938 with ttl = 560;, +count sCf1[hello];, +count sCf1[utf8('hello')];, +count sCf1[utf8('hello')][integer(1)];, +count sCF1[hello][1];, list sCf1;, del SCF1['hello'][1][];, assume sCf1 comparator as utf8;,
svn commit: r1148866 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java
Author: brandonwilliams Date: Wed Jul 20 17:52:42 2011 New Revision: 1148866 URL: http://svn.apache.org/viewvc?rev=1148866view=rev Log: Don't sample the system table keys when choosing a bootstrap token. Patch by brandonwilliams, reviewed by jbellis for CASSANDRA-2825 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java?rev=1148866r1=1148865r2=1148866view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Wed Jul 20 17:52:42 2011 @@ -1716,6 +1716,8 @@ public class StorageService implements I ListDecoratedKey keys = new ArrayListDecoratedKey(); for (ColumnFamilyStore cfs : ColumnFamilyStore.all()) { +if (cfs.table.name.equals(Table.SYSTEM_TABLE)) +continue; for (DecoratedKey key : cfs.allKeySamples()) { if (range.contains(key.token)) @@ -1724,9 +1726,19 @@ public class StorageService implements I } FBUtilities.sortSampledKeys(keys, range); -Token token = keys.size() 3 -? partitioner.midpoint(range.left, range.right) -: keys.get(keys.size() / 2).token; +Token token; +if (keys.size() 3) +{ +token = partitioner.midpoint(range.left, range.right); +logger_.debug(Used midpoint to assign token + token); +} +else +{ +token = keys.get(keys.size() / 2).token; +logger_.debug(Used key sample of size + keys.size() + to assign token + token); +} +if (tokenMetadata_.isMember(tokenMetadata_.getEndpoint(token))) +throw new RuntimeException(Chose token + token + which is already in use by + tokenMetadata_.getEndpoint(token) + -- specify one manually with initial_token); // Hack to prevent giving nodes tokens with DELIMITER_STR in them (which is fine in a row key/token) if (token instanceof StringToken) {
svn commit: r1149341 - /cassandra/branches/cassandra-0.7/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
Author: brandonwilliams Date: Thu Jul 21 20:10:54 2011 New Revision: 1149341 URL: http://svn.apache.org/viewvc?rev=1149341view=rev Log: Use a UDF-specific context signature. Patch by Jeremy Hanna, reviewed by brandonwilliams for CASSANDRA-2869 Modified: cassandra/branches/cassandra-0.7/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Modified: cassandra/branches/cassandra-0.7/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java?rev=1149341r1=1149340r2=1149341view=diff == --- cassandra/branches/cassandra-0.7/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java (original) +++ cassandra/branches/cassandra-0.7/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Thu Jul 21 20:10:54 2011 @@ -68,8 +68,6 @@ public class CassandraStorage extends Lo public final static String PIG_INITIAL_ADDRESS = PIG_INITIAL_ADDRESS; public final static String PIG_PARTITIONER = PIG_PARTITIONER; -private static String UDFCONTEXT_SCHEMA_KEY_PREFIX = cassandra.schema; - private final static ByteBuffer BOUND = ByteBufferUtil.EMPTY_BYTE_BUFFER; private static final Log logger = LogFactory.getLog(CassandraStorage.class); @@ -78,6 +76,8 @@ public class CassandraStorage extends Lo private boolean slice_reverse = false; private String keyspace; private String column_family; +private String loadSignature; +private String storeSignature; private Configuration conf; private RecordReader reader; @@ -112,7 +112,7 @@ public class CassandraStorage extends Lo if (!reader.nextKeyValue()) return null; -CfDef cfDef = getCfDef(); +CfDef cfDef = getCfDef(loadSignature); ByteBuffer key = (ByteBuffer)reader.getCurrentKey(); SortedMapByteBuffer,IColumn cf = (SortedMapByteBuffer,IColumn)reader.getCurrentValue(); assert key != null cf != null; @@ -165,11 +165,11 @@ public class CassandraStorage extends Lo return pair; } -private CfDef getCfDef() +private CfDef getCfDef(String signature) { UDFContext context = UDFContext.getUDFContext(); Properties property = context.getUDFProperties(CassandraStorage.class); -return cfdefFromString(property.getProperty(getSchemaContextKey())); +return cfdefFromString(property.getProperty(signature)); } private ListAbstractType getDefaultMarshallers(CfDef cfDef) throws IOException @@ -289,7 +289,7 @@ public class CassandraStorage extends Lo } ConfigHelper.setInputColumnFamily(conf, keyspace, column_family); setConnectionInformation(); -initSchema(); +initSchema(loadSignature); } @Override @@ -298,9 +298,16 @@ public class CassandraStorage extends Lo return location; } +@Override +public void setUDFContextSignature(String signature) +{ +this.loadSignature = signature; +} + /* StoreFunc methods */ public void setStoreFuncUDFContextSignature(String signature) { +this.storeSignature = signature; } public String relToAbsPathForStoreLocation(String location, Path curDir) throws IOException @@ -314,7 +321,7 @@ public class CassandraStorage extends Lo setLocationFromUri(location); ConfigHelper.setOutputColumnFamily(conf, keyspace, column_family); setConnectionInformation(); -initSchema(); +initSchema(storeSignature); } public OutputFormat getOutputFormat() @@ -346,7 +353,7 @@ public class CassandraStorage extends Lo ByteBuffer key = objToBB(t.get(0)); DefaultDataBag pairs = (DefaultDataBag) t.get(1); ArrayListMutation mutationList = new ArrayListMutation(); -CfDef cfDef = getCfDef(); +CfDef cfDef = getCfDef(storeSignature); ListAbstractType marshallers = getDefaultMarshallers(cfDef); MapByteBuffer,AbstractType validators = getValidatorMap(cfDef); try @@ -404,7 +411,6 @@ public class CassandraStorage extends Lo column.timestamp = System.currentTimeMillis() * 1000; mutation.column_or_supercolumn = new ColumnOrSuperColumn(); mutation.column_or_supercolumn.column = column; - mutationList.add(mutation); } } mutationList.add(mutation); @@ -412,7 +418,7 @@ public class CassandraStorage extends Lo } catch (ClassCastException e) { -throw new IOException(e + Output must be (key, {(column,value)...}) for ColumnFamily or (key, {supercolumn:{(column,value
svn commit: r1150847 - in /cassandra/branches/cassandra-0.8: ./ src/java/org/apache/cassandra/gms/ src/java/org/apache/cassandra/net/ src/java/org/apache/cassandra/service/
Author: brandonwilliams Date: Mon Jul 25 18:58:27 2011 New Revision: 1150847 URL: http://svn.apache.org/viewvc?rev=1150847view=rev Log: Gossip handles dead states, token removal actually works, gossip states are held for aVeryLongTime. Patch by brandonwilliams and Paul Cannon, reviewed by Paul Cannon for CASSANDRA-2496. Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/NEWS.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/HeartBeatState.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1150847r1=1150846r2=1150847view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Mon Jul 25 18:58:27 2011 @@ -1,6 +1,7 @@ 0.8.3 * add ability to drop local reads/writes that are going to timeout (CASSANDRA-2943) + * revamp token removal process, keep gossip states for 3 days (CASSANDRA-2946) 0.8.2 Modified: cassandra/branches/cassandra-0.8/NEWS.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/NEWS.txt?rev=1150847r1=1150846r2=1150847view=diff == --- cassandra/branches/cassandra-0.8/NEWS.txt (original) +++ cassandra/branches/cassandra-0.8/NEWS.txt Mon Jul 25 18:58:27 2011 @@ -1,3 +1,12 @@ +0.8.3 += + +Upgrading +- +- Token removal has been revamped. Removing tokens in a mixed cluster with + 0.8.3 will not work, so the entire cluster will need to be running 0.8.3 + first, except for the dead node. + 0.8.2 = Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java?rev=1150847r1=1150846r2=1150847view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java Mon Jul 25 18:58:27 2011 @@ -29,6 +29,7 @@ public enum ApplicationState DC, RACK, RELEASE_VERSION, +REMOVAL_COORDINATOR, // pad to allow adding new states to existing cluster X1, X2, Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1150847r1=1150846r2=1150847view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java Mon Jul 25 18:58:27 2011 @@ -27,6 +27,7 @@ import java.util.*; import java.util.Map.Entry; import java.util.concurrent.*; +import org.apache.cassandra.dht.Token; import org.apache.cassandra.db.SystemTable; import org.apache.cassandra.net.MessageProducer; import org.apache.cassandra.config.ConfigurationException; @@ -58,6 +59,8 @@ public class Gossiper implements IFailur private static final RetryingScheduledThreadPoolExecutor executor = new RetryingScheduledThreadPoolExecutor(GossipTasks); static final ApplicationState[] STATES = ApplicationState.values(); +static final ListString DEAD_STATES = Arrays.asList(VersionedValue.REMOVING_TOKEN, VersionedValue.REMOVED_TOKEN, VersionedValue.STATUS_LEFT); + private ScheduledFuture? scheduledGossipTask; public final static int intervalInMillis = 1000; public final static int QUARANTINE_DELAY = StorageService.RING_DELAY * 2; @@ -264,17 +267,21 @@ public class Gossiper implements IFailur } /** - * Removes the endpoint from unreachable endpoint set + * Removes the endpoint from gossip completely * * @param endpoint endpoint to be removed from the current membership. */ private void evictFromMembership(InetAddress endpoint) { unreachableEndpoints.remove(endpoint); +endpointStateMap.remove(endpoint); +justRemovedEndpoints.put(endpoint, System.currentTimeMillis()); +if (logger.isDebugEnabled
svn commit: r1151587 - /cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/RemoveTest.java
Author: brandonwilliams Date: Wed Jul 27 18:42:32 2011 New Revision: 1151587 URL: http://svn.apache.org/viewvc?rev=1151587view=rev Log: Remove obsolete tests for removetoken Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/RemoveTest.java Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/RemoveTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/RemoveTest.java?rev=1151587r1=1151586r2=1151587view=diff == --- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/RemoveTest.java (original) +++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/RemoveTest.java Wed Jul 27 18:42:32 2011 @@ -154,44 +154,6 @@ public class RemoveTest extends CleanupH assertTrue(tmd.getLeavingEndpoints().isEmpty()); } -@Test -public void testStartRemoving() -{ -IPartitioner partitioner = StorageService.getPartitioner(); -VersionedValue.VersionedValueFactory valueFactory = new VersionedValue.VersionedValueFactory(partitioner); - -NotificationSink nSink = new NotificationSink(); -ReplicationSink rSink = new ReplicationSink(); -SinkManager.add(nSink); -SinkManager.add(rSink); - -assertEquals(0, tmd.getLeavingEndpoints().size()); - -ss.onChange(hosts.get(1), -ApplicationState.STATUS, -valueFactory.removingNonlocal(endpointTokens.get(1), removaltoken)); - -assertEquals(1, nSink.callCount); -assertTrue(tmd.isLeaving(removalhost)); -assertEquals(1, tmd.getLeavingEndpoints().size()); -} - -@Test -public void testFinishRemoving() -{ -IPartitioner partitioner = StorageService.getPartitioner(); -VersionedValue.VersionedValueFactory valueFactory = new VersionedValue.VersionedValueFactory(partitioner); - -assertEquals(0, tmd.getLeavingEndpoints().size()); - -ss.onChange(hosts.get(1), -ApplicationState.STATUS, -valueFactory.removedNonlocal(endpointTokens.get(1), removaltoken)); - -assertFalse(Gossiper.instance.getLiveMembers().contains(removalhost)); -assertFalse(tmd.isMember(removalhost)); -} - class ReplicationSink implements IMessageSink { public Message handleMessage(Message msg, String id, InetAddress to) @@ -205,25 +167,4 @@ public class RemoveTest extends CleanupH } } -class NotificationSink implements IMessageSink -{ -public int callCount = 0; - -public Message handleMessage(Message msg, String id, InetAddress to) -{ -if (msg.getVerb().equals(StorageService.Verb.REPLICATION_FINISHED)) -{ -callCount++; -assertEquals(Stage.MISC, msg.getMessageType()); -// simulate a response from remote server -Message response = msg.getReply(FBUtilities.getLocalAddress(), new byte[]{ }, msg.getVersion()); -MessagingService.instance().sendReply(response, id, FBUtilities.getLocalAddress()); -return null; -} -else -{ -return msg; -} -} -} }
svn commit: r1151659 - in /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra: gms/Gossiper.java service/StorageService.java
Author: brandonwilliams Date: Wed Jul 27 22:47:02 2011 New Revision: 1151659 URL: http://svn.apache.org/viewvc?rev=1151659view=rev Log: Gossiper notifies of local state changes. Patch by Sam Overton, reviewed by brandonwilliams for CASSANDRA-2948 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1151659r1=1151658r2=1151659view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java Wed Jul 27 22:47:02 2011 @@ -981,6 +981,7 @@ public class Gossiper implements IFailur EndpointState epState = endpointStateMap.get(FBUtilities.getLocalAddress()); assert epState != null; epState.addApplicationState(state, value); +doNotifications(FBUtilities.getLocalAddress(), state, value); } public void stop() Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java?rev=1151659r1=1151658r2=1151659view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Wed Jul 27 22:47:02 2011 @@ -1913,7 +1913,7 @@ public class StorageService implements I // ring ranges and endpoints associated with them // this used to determine what nodes should we ping about range data -MultimapRange, InetAddress rangeAddresses = strategy.getRangeAddresses(tokenMetaClone); +MultimapRange, InetAddress rangeAddresses = strategy.getRangeAddresses(tokenMetadata_); // calculated parts of the ranges to request/stream from/to nodes in the ring PairSetRange, SetRange rangesPerTable = calculateStreamAndFetchRanges(currentRanges, updatedRanges);
svn commit: r1151990 - in /cassandra/trunk/src/java/org/apache/cassandra: gms/ApplicationState.java gms/VersionedValue.java locator/Ec2MultiRegionSnitch.java net/OutboundTcpConnection.java net/Outboun
Author: brandonwilliams Date: Thu Jul 28 20:27:13 2011 New Revision: 1151990 URL: http://svn.apache.org/viewvc?rev=1151990view=rev Log: Ec2 snitch with support for multiple regions. Patch by Vijay Parthasarathy, reviewed by brandonwilliams for CASSANDRA-2452 Added: cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java (with props) Modified: cassandra/trunk/src/java/org/apache/cassandra/gms/ApplicationState.java cassandra/trunk/src/java/org/apache/cassandra/gms/VersionedValue.java cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnectionPool.java Modified: cassandra/trunk/src/java/org/apache/cassandra/gms/ApplicationState.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/gms/ApplicationState.java?rev=1151990r1=1151989r2=1151990view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/gms/ApplicationState.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/gms/ApplicationState.java Thu Jul 28 20:27:13 2011 @@ -29,6 +29,7 @@ public enum ApplicationState DC, RACK, RELEASE_VERSION, +INTERNAL_IP, // pad to allow adding new states to existing cluster X1, X2, Modified: cassandra/trunk/src/java/org/apache/cassandra/gms/VersionedValue.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/gms/VersionedValue.java?rev=1151990r1=1151989r2=1151990view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/gms/VersionedValue.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/gms/VersionedValue.java Thu Jul 28 20:27:13 2011 @@ -159,6 +159,11 @@ public class VersionedValue implements C { return new VersionedValue(FBUtilities.getReleaseVersionString()); } + +public VersionedValue internalIP(String private_ip) +{ +return new VersionedValue(private_ip); +} } private static class VersionedValueSerializer implements ICompactSerializerVersionedValue Added: cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java?rev=1151990view=auto == --- cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java (added) +++ cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java Thu Jul 28 20:27:13 2011 @@ -0,0 +1,103 @@ +package org.apache.cassandra.locator; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.UnknownHostException; + +import org.apache.cassandra.config.ConfigurationException; +import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.gms.ApplicationState; +import org.apache.cassandra.gms.EndpointState; +import org.apache.cassandra.gms.Gossiper; +import org.apache.cassandra.gms.IEndpointStateChangeSubscriber; +import org.apache.cassandra.gms.VersionedValue; +import org.apache.cassandra.net.MessagingService; +import org.apache.cassandra.service.StorageService; + +/** + * 1) Snitch will automatically set the public IP by querying the AWS API + * + * 2) Snitch will set the private IP as a Gossip application state. + * + * 3) Snitch implements IESCS and will reset the connection if it is within the + * same region to communicate via private IP. + * + * Implements Ec2Snitch to inherit its functionality and extend it for + * Multi-Region. + * + * Operational: All the nodes in this cluster needs to be able to (modify the + * Security group settings in AWS) communicate via Public IP's. + */ +public class Ec2MultiRegionSnitch extends Ec2Snitch implements IEndpointStateChangeSubscriber +{ +private static final String PUBLIC_IP_QUERY_URL = http://169.254.169.254/latest/meta-data/public-ipv4;; +private static final String PRIVATE_IP_QUERY_URL = http://169.254.169.254/latest/meta-data/local-ipv4;; +private final InetAddress public_ip; +private final String private_ip; + +public Ec2MultiRegionSnitch() throws IOException, ConfigurationException +{ +super(); +public_ip = InetAddress.getByName(awsApiCall(PUBLIC_IP_QUERY_URL)); +logger.info(EC2Snitch using publicIP as identifier: + public_ip); +private_ip = awsApiCall(PRIVATE_IP_QUERY_URL); +// use the Public IP to broadcast Address to other nodes. +DatabaseDescriptor.setBroadcastAddress(public_ip); +} + +@Override +public void onJoin(InetAddress endpoint, EndpointState epState) +{ +if (epState.getApplicationState(ApplicationState.INTERNAL_IP) != null
svn commit: r1152038 - /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
Author: brandonwilliams Date: Thu Jul 28 23:42:47 2011 New Revision: 1152038 URL: http://svn.apache.org/viewvc?rev=1152038view=rev Log: DES shouldn't ignore nodes when the read repair chance is zero. Patch by brandonwilliams reviewed by Paul Cannon for CASSANDRA-2662 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java?rev=1152038r1=1152037r2=1152038view=diff == --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java Thu Jul 28 23:42:47 2011 @@ -178,8 +178,20 @@ public class DynamicEndpointSnitch exten { Double scored1 = scores.get(a1); Double scored2 = scores.get(a2); + +if (scored1 == null) +{ +scored1 = 0.0; +receiveTiming(a1, 0.0); +} + +if (scored2 == null) +{ +scored2 = 0.0; +receiveTiming(a2, 0.0); +} -if (scored1 == null || scored2 == null || scored1.equals(scored2)) +if (scored1.equals(scored2)) return subsnitch.compareEndpoints(target, a1, a2); if (scored1 scored2) return -1;
svn commit: r1152233 [3/9] - in /cassandra/trunk: conf/ src/gen-java/ src/gen-java/org/ src/gen-java/org/apache/ src/gen-java/org/apache/cassandra/ src/gen-java/org/apache/cassandra/cli/ src/gen-java/
Propchange: cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliLexer.java -- svn:eol-style = native
svn commit: r1152233 [5/9] - in /cassandra/trunk: conf/ src/gen-java/ src/gen-java/org/ src/gen-java/org/apache/ src/gen-java/org/apache/cassandra/ src/gen-java/org/apache/cassandra/cli/ src/gen-java/
Propchange: cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliParser.java -- svn:eol-style = native Added: cassandra/trunk/src/gen-java/org/apache/cassandra/cql/Cql.tokens URL: http://svn.apache.org/viewvc/cassandra/trunk/src/gen-java/org/apache/cassandra/cql/Cql.tokens?rev=1152233view=auto == --- cassandra/trunk/src/gen-java/org/apache/cassandra/cql/Cql.tokens (added) +++ cassandra/trunk/src/gen-java/org/apache/cassandra/cql/Cql.tokens Fri Jul 29 14:21:06 2011 @@ -0,0 +1,126 @@ +LETTER=75 +K_CREATE=32 +K_PRIMARY=37 +T__93=93 +T__94=94 +T__91=91 +K_USE=4 +T__92=92 +K_VALUES=23 +STRING_LITERAL=9 +T__90=90 +K_ON=41 +K_USING=11 +K_ADD=45 +K_KEY=38 +COMMENT=78 +K_TRUNCATE=47 +T__99=99 +T__98=98 +T__97=97 +T__96=96 +T__95=95 +D=61 +E=49 +F=53 +G=67 +K_COUNT=7 +T__80=80 +K_KEYSPACE=33 +K_TYPE=44 +T__81=81 +A=59 +B=70 +T__82=82 +T__83=83 +C=51 +L=50 +M=56 +N=60 +O=55 +H=58 +I=64 +J=72 +K_UPDATE=29 +K=62 +U=65 +T=52 +W=57 +V=69 +Q=68 +P=66 +S=48 +R=54 +T__85=85 +T__84=84 +T__87=87 +T__86=86 +K_TTL=25 +T__89=89 +Y=63 +X=71 +T__88=88 +Z=73 +K_INDEX=40 +K_REVERSED=17 +K_INSERT=21 +WS=77 +K_APPLY=28 +K_TIMESTAMP=24 +K_AND=19 +K_LEVEL=13 +K_BATCH=27 +UUID=46 +K_DELETE=31 +FLOAT=39 +K_SELECT=6 +K_LIMIT=15 +K_ALTER=43 +K_SET=30 +K_WHERE=14 +MULTILINE_COMMENT=79 +HEX=76 +K_INTO=22 +T__103=103 +T__104=104 +IDENT=5 +DIGIT=74 +K_FIRST=16 +K_BEGIN=26 +INTEGER=10 +RANGEOP=18 +K_CONSISTENCY=12 +K_WITH=34 +COMPIDENT=35 +T__102=102 +T__101=101 +T__100=100 +K_IN=20 +K_FROM=8 +K_COLUMNFAMILY=36 +K_DROP=42 +'counter'=94 +'='=103 +'text'=88 +'uuid'=93 +''=104 +'bytea'=86 +'\*'=83 +';'=84 +'='=85 +'+'=99 +')'=81 +'date'=96 +'float'=97 +'boolean'=95 +'ascii'=87 +'double'=98 +'varint'=91 +'='=102 +'varchar'=89 +'int'=90 +''=101 +'bigint'=92 +'('=80 +'-'=100 +','=82
svn commit: r1152233 [1/9] - in /cassandra/trunk: conf/ src/gen-java/ src/gen-java/org/ src/gen-java/org/apache/ src/gen-java/org/apache/cassandra/ src/gen-java/org/apache/cassandra/cli/ src/gen-java/
Author: brandonwilliams Date: Fri Jul 29 14:21:06 2011 New Revision: 1152233 URL: http://svn.apache.org/viewvc?rev=1152233view=rev Log: Add asynchronous and half-sync/half-async thrift servers. Patch by Vijay Parthasarathy, reviewed by brandonwilliams for CASSANDRA-1405 Added: cassandra/trunk/src/gen-java/ cassandra/trunk/src/gen-java/org/ cassandra/trunk/src/gen-java/org/apache/ cassandra/trunk/src/gen-java/org/apache/cassandra/ cassandra/trunk/src/gen-java/org/apache/cassandra/cli/ cassandra/trunk/src/gen-java/org/apache/cassandra/cli/Cli.tokens cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliLexer.java (with props) cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliParser.java (with props) cassandra/trunk/src/gen-java/org/apache/cassandra/cql/ cassandra/trunk/src/gen-java/org/apache/cassandra/cql/Cql.tokens cassandra/trunk/src/gen-java/org/apache/cassandra/cql/CqlLexer.java (with props) cassandra/trunk/src/gen-java/org/apache/cassandra/cql/CqlParser.java (with props) cassandra/trunk/src/java/org/apache/cassandra/service/SocketSessionManagementService.java (with props) cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTHsHaServer.java (with props) cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTNonBlockingServer.java (with props) cassandra/trunk/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java (with props) Modified: cassandra/trunk/conf/cassandra.yaml cassandra/trunk/conf/log4j-server.properties cassandra/trunk/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java cassandra/trunk/src/java/org/apache/cassandra/config/Config.java cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraDaemon.java cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java Modified: cassandra/trunk/conf/cassandra.yaml URL: http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra.yaml?rev=1152233r1=1152232r2=1152233view=diff == --- cassandra/trunk/conf/cassandra.yaml (original) +++ cassandra/trunk/conf/cassandra.yaml Fri Jul 29 14:21:06 2011 @@ -203,16 +203,35 @@ rpc_port: 9160 # enable or disable keepalive on rpc connections rpc_keepalive: true -# Cassandra uses thread-per-client for client RPC. This can -# be expensive in memory used for thread stack for a large -# enough number of clients. (Hence, connection pooling is -# very, very strongly recommended.) -# +# Cassandra provides you with a variety of options for RPC Server +# sync - Creates one thread per connection but with a configurable number of +# threads. This can be expensive in memory used for thread stack for +# a large enough number of clients. (Hence, connection pooling is +# very, very strongly recommended.) +# +# async - Nonblocking server implementation with one thread to serve +# rpc connections. This is not recommended for high throughput use +# cases. +# +# hsha - half sync and half async implementation with configurable number +# of worker threads (For managing connections). IO Management is +# done by a set of threads currently equal to the number of +# processors in the system. The number of threads in the threadpool +# is configured via rpc_min_threads and rpc_max_threads. (Connection +# pooling is strongly recommended in this case too.) + +rpc_server_type: sync + # Uncomment rpc_min|max|thread to set request pool size. -# You would primarily set max as a safeguard against misbehaved -# clients; if you do hit the max, Cassandra will block until -# one disconnects before accepting more. The defaults are -# min of 16 and max unlimited. +# You would primarily set max for the sync server to safeguard against +# misbehaved clients; if you do hit the max, Cassandra will block until one +# disconnects before accepting more. The defaults are min of 16 and max +# unlimited. +# +# For the Hsha server, you would set the max so that a fair amount of resources +# are provided to the other working threads on the server. +# +# This configuration is not used for the async server. # # rpc_min_threads: 16 # rpc_max_threads: 2048 Modified: cassandra/trunk/conf/log4j-server.properties URL: http://svn.apache.org/viewvc/cassandra/trunk/conf/log4j-server.properties?rev=1152233r1=1152232r2=1152233view=diff == --- cassandra/trunk/conf/log4j-server.properties (original) +++ cassandra/trunk/conf/log4j-server.properties Fri Jul 29 14:21:06 2011 @@ -39,3 +39,6 @@ log4j.appender.R.File=/var/log/cassandra #log4j.logger.org.apache.cassandra.db=DEBUG #log4j.logger.org.apache.cassandra.service.StorageProxy
svn commit: r1152233 [7/9] - in /cassandra/trunk: conf/ src/gen-java/ src/gen-java/org/ src/gen-java/org/apache/ src/gen-java/org/apache/cassandra/ src/gen-java/org/apache/cassandra/cli/ src/gen-java/
Propchange: cassandra/trunk/src/gen-java/org/apache/cassandra/cql/CqlLexer.java -- svn:eol-style = native
svn commit: r1152233 [9/9] - in /cassandra/trunk: conf/ src/gen-java/ src/gen-java/org/ src/gen-java/org/apache/ src/gen-java/org/apache/cassandra/ src/gen-java/org/apache/cassandra/cli/ src/gen-java/
Propchange: cassandra/trunk/src/gen-java/org/apache/cassandra/cql/CqlParser.java -- svn:eol-style = native Modified: cassandra/trunk/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java?rev=1152233r1=1152232r2=1152233view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java Fri Jul 29 14:21:06 2011 @@ -56,13 +56,24 @@ public class JMXEnabledThreadPoolExecuto } public JMXEnabledThreadPoolExecutor(int corePoolSize, +long keepAliveTime, +TimeUnit unit, +BlockingQueueRunnable workQueue, +NamedThreadFactory threadFactory, +String jmxPath) +{ +this(corePoolSize, corePoolSize, keepAliveTime, unit, workQueue, threadFactory, jmxPath); +} + +public JMXEnabledThreadPoolExecutor(int corePoolSize, +int maxPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueueRunnable workQueue, NamedThreadFactory threadFactory, String jmxPath) { -super(corePoolSize, keepAliveTime, unit, workQueue, threadFactory); +super(corePoolSize, maxPoolSize, keepAliveTime, unit, workQueue, threadFactory); super.prestartAllCoreThreads(); MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); Modified: cassandra/trunk/src/java/org/apache/cassandra/config/Config.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/Config.java?rev=1152233r1=1152232r2=1152233view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/config/Config.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/config/Config.java Fri Jul 29 14:21:06 2011 @@ -67,6 +67,7 @@ public class Config public String rpc_address; public Integer rpc_port = 9160; +public String rpc_server_type = sync; public Boolean rpc_keepalive = true; public Integer rpc_min_threads = 16; public Integer rpc_max_threads = Integer.MAX_VALUE; Modified: cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1152233r1=1152232r2=1152233view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Fri Jul 29 14:21:06 2011 @@ -48,6 +48,7 @@ import org.apache.cassandra.io.util.Mmap import org.apache.cassandra.locator.*; import org.apache.cassandra.scheduler.IRequestScheduler; import org.apache.cassandra.scheduler.NoScheduler; +import org.apache.cassandra.thrift.CassandraDaemon; import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.Pair; import org.yaml.snakeyaml.Loader; @@ -369,6 +370,9 @@ public class DatabaseDescriptor if (conf.compaction_throughput_mb_per_sec == null) conf.compaction_throughput_mb_per_sec = 16; +if (!CassandraDaemon.rpc_server_types.contains(conf.rpc_server_type.toLowerCase())) +throw new ConfigurationException(Unknown rpc_server_type: + conf.rpc_server_type); + /* data file and commit log directories. they get created later, when they're needed. */ if (conf.commitlog_directory != null conf.data_file_directories != null conf.saved_caches_directory != null) { @@ -899,6 +903,11 @@ public class DatabaseDescriptor { return rpcAddress; } + +public static String getRpcServerType() +{ +return conf.rpc_server_type; +} public static boolean getRpcKeepAlive() { Added: cassandra/trunk/src/java/org/apache/cassandra/service/SocketSessionManagementService.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/SocketSessionManagementService.java?rev=1152233view=auto == --- cassandra/trunk/src/java/org/apache/cassandra/service/SocketSessionManagementService.java (added) +++
svn commit: r1152234 - in /cassandra/trunk/src/gen-java/org/apache/cassandra: cli/Cli.tokens cli/CliLexer.java cli/CliParser.java cql/Cql.tokens cql/CqlLexer.java cql/CqlParser.java
Author: brandonwilliams Date: Fri Jul 29 14:22:40 2011 New Revision: 1152234 URL: http://svn.apache.org/viewvc?rev=1152234view=rev Log: Remove accidentally committed gen-java crap Removed: cassandra/trunk/src/gen-java/org/apache/cassandra/cli/Cli.tokens cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliLexer.java cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliParser.java cassandra/trunk/src/gen-java/org/apache/cassandra/cql/Cql.tokens cassandra/trunk/src/gen-java/org/apache/cassandra/cql/CqlLexer.java cassandra/trunk/src/gen-java/org/apache/cassandra/cql/CqlParser.java
svn commit: r1152238 - in /cassandra/branches/cassandra-0.8: conf/ src/java/org/apache/cassandra/concurrent/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/service/ src/java/org/a
Author: brandonwilliams Date: Fri Jul 29 14:29:49 2011 New Revision: 1152238 URL: http://svn.apache.org/viewvc?rev=1152238view=rev Log: Add asynchronous and half-sync/half-async thrift servers. Patch by Vijay Parthasarathy, reviewed by brandonwilliams for CASSANDRA-1405 Added: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/SocketSessionManagementService.java (with props) cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CustomTHsHaServer.java (with props) cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CustomTNonBlockingServer.java (with props) cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java (with props) Modified: cassandra/branches/cassandra-0.8/conf/cassandra.yaml cassandra/branches/cassandra-0.8/conf/log4j-server.properties cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/Config.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraDaemon.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java Modified: cassandra/branches/cassandra-0.8/conf/cassandra.yaml URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/conf/cassandra.yaml?rev=1152238r1=1152237r2=1152238view=diff == --- cassandra/branches/cassandra-0.8/conf/cassandra.yaml (original) +++ cassandra/branches/cassandra-0.8/conf/cassandra.yaml Fri Jul 29 14:29:49 2011 @@ -196,16 +196,35 @@ rpc_port: 9160 # enable or disable keepalive on rpc connections rpc_keepalive: true -# Cassandra uses thread-per-client for client RPC. This can -# be expensive in memory used for thread stack for a large -# enough number of clients. (Hence, connection pooling is -# very, very strongly recommended.) -# +# Cassandra provides you with a variety of options for RPC Server +# sync - Creates one thread per connection but with a configurable number of +# threads. This can be expensive in memory used for thread stack for +# a large enough number of clients. (Hence, connection pooling is +# very, very strongly recommended.) +# +# async - Nonblocking server implementation with one thread to serve +# rpc connections. This is not recommended for high throughput use +# cases. +# +# hsha - half sync and half async implementation with configurable number +# of worker threads (For managing connections). IO Management is +# done by a set of threads currently equal to the number of +# processors in the system. The number of threads in the threadpool +# is configured via rpc_min_threads and rpc_max_threads. (Connection +# pooling is strongly recommended in this case too.) + +rpc_server_type: sync + # Uncomment rpc_min|max|thread to set request pool size. -# You would primarily set max as a safeguard against misbehaved -# clients; if you do hit the max, Cassandra will block until -# one disconnects before accepting more. The defaults are -# min of 16 and max unlimited. +# You would primarily set max for the sync server to safeguard against +# misbehaved clients; if you do hit the max, Cassandra will block until one +# disconnects before accepting more. The defaults are min of 16 and max +# unlimited. +# +# For the Hsha server, you would set the max so that a fair amount of resources +# are provided to the other working threads on the server. +# +# This configuration is not used for the async server. # # rpc_min_threads: 16 # rpc_max_threads: 2048 Modified: cassandra/branches/cassandra-0.8/conf/log4j-server.properties URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/conf/log4j-server.properties?rev=1152238r1=1152237r2=1152238view=diff == --- cassandra/branches/cassandra-0.8/conf/log4j-server.properties (original) +++ cassandra/branches/cassandra-0.8/conf/log4j-server.properties Fri Jul 29 14:29:49 2011 @@ -39,3 +39,6 @@ log4j.appender.R.File=/var/log/cassandra #log4j.logger.org.apache.cassandra.db=DEBUG #log4j.logger.org.apache.cassandra.service.StorageProxy=DEBUG +# Adding this to avoid thrift logging disconnect errors. +log4j.logger.org.apache.thrift.server.TNonblockingServer=ERROR + Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java?rev=1152238r1=1152237r2=1152238view=diff
svn commit: r1152876 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java
Author: brandonwilliams Date: Mon Aug 1 17:54:50 2011 New Revision: 1152876 URL: http://svn.apache.org/viewvc?rev=1152876view=rev Log: Don't sample the system table keys when choosing a bootstrap token. Patch by brandonwilliams, reviewed by jbellis for CASSANDRA-2825 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java?rev=1152876r1=1152875r2=1152876view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Mon Aug 1 17:54:50 2011 @@ -1759,6 +1759,8 @@ public class StorageService implements I ListDecoratedKey keys = new ArrayListDecoratedKey(); for (ColumnFamilyStore cfs : ColumnFamilyStore.all()) { +if (cfs.table.name.equals(Table.SYSTEM_TABLE)) +continue; for (DecoratedKey key : cfs.allKeySamples()) { if (range.contains(key.token)) @@ -1767,9 +1769,19 @@ public class StorageService implements I } FBUtilities.sortSampledKeys(keys, range); -Token token = keys.size() 3 -? partitioner.midpoint(range.left, range.right) -: keys.get(keys.size() / 2).token; +Token token; +if (keys.size() 3) +{ +token = partitioner.midpoint(range.left, range.right); +logger_.debug(Used midpoint to assign token + token); +} +else +{ +token = keys.get(keys.size() / 2).token; +logger_.debug(Used key sample of size + keys.size() + to assign token + token); +} +if (tokenMetadata_.getEndpoint(token) != null tokenMetadata_.isMember(tokenMetadata_.getEndpoint(token))) +throw new RuntimeException(Chose token + token + which is already in use by + tokenMetadata_.getEndpoint(token) + -- specify one manually with initial_token); // Hack to prevent giving nodes tokens with DELIMITER_STR in them (which is fine in a row key/token) if (token instanceof StringToken) {
svn commit: r1152967 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java
Author: brandonwilliams Date: Mon Aug 1 23:19:22 2011 New Revision: 1152967 URL: http://svn.apache.org/viewvc?rev=1152967view=rev Log: Fix ordering of memtable thresholds in the cli, again. Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java?rev=1152967r1=1152966r2=1152967view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java Mon Aug 1 23:19:22 2011 @@ -1715,7 +1715,7 @@ public class CliClient sessionState.out.printf( Columns sorted by: %s%s%n, cf_def.comparator_type, cf_def.column_type.equals(Super) ? / + cf_def.subcomparator_type : ); sessionState.out.printf( Row cache size / save period in seconds: %s/%s%n, cf_def.row_cache_size, cf_def.row_cache_save_period_in_seconds); sessionState.out.printf( Key cache size / save period in seconds: %s/%s%n, cf_def.key_cache_size, cf_def.key_cache_save_period_in_seconds); -sessionState.out.printf( Memtable thresholds: %s/%s/%s (millions of ops/MB/minutes)%n, +sessionState.out.printf( Memtable thresholds: %s/%s/%s (millions of ops/minutes/MB)%n, cf_def.memtable_operations_in_millions, cf_def.memtable_flush_after_mins, cf_def.memtable_throughput_in_mb); sessionState.out.printf( GC grace seconds: %s%n, cf_def.gc_grace_seconds); sessionState.out.printf( Compaction min/max thresholds: %s/%s%n, cf_def.min_compaction_threshold, cf_def.max_compaction_threshold);
svn commit: r1153678 - in /cassandra/trunk: src/java/org/apache/cassandra/net/ test/unit/org/apache/cassandra/db/ test/unit/org/apache/cassandra/net/ test/unit/org/apache/cassandra/service/ test/unit/
Author: brandonwilliams Date: Wed Aug 3 21:40:34 2011 New Revision: 1153678 URL: http://svn.apache.org/viewvc?rev=1153678view=rev Log: Reduce copies on read/write paths. Patch by jbellis reviewed by brandonwilliams for CASSANDRA-1788 Added: cassandra/trunk/test/unit/org/apache/cassandra/net/ cassandra/trunk/test/unit/org/apache/cassandra/net/MessageSerializer.java (with props) Modified: cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java cassandra/trunk/src/java/org/apache/cassandra/net/Header.java cassandra/trunk/src/java/org/apache/cassandra/net/IncomingTcpConnection.java cassandra/trunk/src/java/org/apache/cassandra/net/Message.java cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnectionPool.java cassandra/trunk/test/unit/org/apache/cassandra/db/SerializationsTest.java cassandra/trunk/test/unit/org/apache/cassandra/service/SerializationsTest.java cassandra/trunk/test/unit/org/apache/cassandra/streaming/SerializationsTest.java Modified: cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java?rev=1153678r1=1153677r2=1153678view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java Wed Aug 3 21:40:34 2011 @@ -21,6 +21,8 @@ package org.apache.cassandra.net; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.net.Inet4Address; +import java.net.Inet6Address; import java.net.InetAddress; public class CompactEndpointSerializationHelper @@ -38,4 +40,12 @@ public class CompactEndpointSerializatio dis.readFully(bytes, 0, bytes.length); return InetAddress.getByAddress(bytes); } + +public static int serializedSize(InetAddress from) +{ +if (from instanceof Inet4Address) +return 1 + 4; +assert from instanceof Inet6Address; +return 1 + 16; +} } Modified: cassandra/trunk/src/java/org/apache/cassandra/net/Header.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/Header.java?rev=1153678r1=1153677r2=1153678view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/net/Header.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/net/Header.java Wed Aug 3 21:40:34 2011 @@ -29,6 +29,7 @@ import java.util.concurrent.atomic.Atomi import org.apache.cassandra.io.ICompactSerializer; import org.apache.cassandra.service.StorageService; +import org.apache.cassandra.utils.FBUtilities; public class Header { @@ -88,6 +89,21 @@ public class Header { details_.remove(key); } + +public int serializedSize() +{ +int size = 0; +size += CompactEndpointSerializationHelper.serializedSize(getFrom()); +size += 4; +size += 4; +for (String key : details_.keySet()) +{ +size += 2 + FBUtilities.encodedUTF8Length(key); +byte[] value = details_.get(key); +size += 4 + value.length; +} +return size; +} } class HeaderSerializer implements ICompactSerializerHeader @@ -96,13 +112,8 @@ class HeaderSerializer implements ICompa { CompactEndpointSerializationHelper.serialize(t.getFrom(), dos); dos.writeInt(t.getVerb().ordinal()); - -/* Serialize the message header */ -int size = t.details_.size(); -dos.writeInt(size); -SetString keys = t.details_.keySet(); - -for( String key : keys ) +dos.writeInt(t.details_.size()); +for (String key : t.details_.keySet()) { dos.writeUTF(key); byte[] value = t.details_.get(key); @@ -115,8 +126,6 @@ class HeaderSerializer implements ICompa { InetAddress from = CompactEndpointSerializationHelper.deserialize(dis); int verbOrdinal = dis.readInt(); - -/* Deserializing the message header */ int size = dis.readInt(); MapString, byte[] details = new HashtableString, byte[](size); for ( int i = 0; i size; ++i ) @@ -127,7 +136,6 @@ class HeaderSerializer implements ICompa dis.readFully(bytes); details.put(key, bytes); } - return new Header(from, StorageService.VERBS[verbOrdinal], details); } } Modified: cassandra/trunk/src/java/org
svn commit: r1153683 - in /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra: gms/ApplicationState.java gms/VersionedValue.java service/StorageService.java thrift/CassandraServer.java
Author: brandonwilliams Date: Wed Aug 3 21:44:53 2011 New Revision: 1153683 URL: http://svn.apache.org/viewvc?rev=1153683view=rev Log: describe_ring returns the interface thrift is bound to instead of the one the storage proto is bound to. Patch by brandonwilliams, reviewed by jbellis for CASSANDRA-1777 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java?rev=1153683r1=1153682r2=1153683view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/ApplicationState.java Wed Aug 3 21:44:53 2011 @@ -30,6 +30,7 @@ public enum ApplicationState RACK, RELEASE_VERSION, REMOVAL_COORDINATOR, +RPC_ADDRESS, // pad to allow adding new states to existing cluster X1, X2, Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java?rev=1153683r1=1153682r2=1153683view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java Wed Aug 3 21:44:53 2011 @@ -21,6 +21,7 @@ package org.apache.cassandra.gms; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.net.InetAddress; import java.util.UUID; import org.apache.cassandra.dht.IPartitioner; @@ -157,6 +158,11 @@ public class VersionedValue implements C return new VersionedValue(rackId); } +public VersionedValue rpcaddress(InetAddress endpoint) +{ +return new VersionedValue(endpoint.toString()); +} + public VersionedValue releaseVersion() { return new VersionedValue(FBUtilities.getReleaseVersionString()); Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java?rev=1153683r1=1153682r2=1153683view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Wed Aug 3 21:44:53 2011 @@ -451,6 +451,12 @@ public class StorageService implements I Gossiper.instance.register(migrationManager); Gossiper.instance.start(SystemTable.incrementAndGetGeneration()); // needed for node-ring gathering. +// add rpc listening info +if (DatabaseDescriptor.getRpcAddress() == null) + Gossiper.instance.addLocalApplicationState(ApplicationState.RPC_ADDRESS, valueFactory.rpcaddress(FBUtilities.getLocalAddress())); +else + Gossiper.instance.addLocalApplicationState(ApplicationState.RPC_ADDRESS, valueFactory.rpcaddress(DatabaseDescriptor.getRpcAddress())); + MessagingService.instance().listen(FBUtilities.getLocalAddress()); StorageLoadBalancer.instance.startBroadcasting(); MigrationManager.passiveAnnounce(DatabaseDescriptor.getDefsVersion()); @@ -595,6 +601,35 @@ public class StorageService implements I return map; } +/** + * for a keyspace, return the ranges and corresponding RPC addresses for a given keyspace. + * @param keyspace + * @return + */ +public MapRange, ListString getRangeToRpcaddressMap(String keyspace) +{ +// some people just want to get a visual representation of things. Allow null and set it to the first +// non-system table. +if (keyspace == null) +keyspace = DatabaseDescriptor.getNonSystemTables().get(0); + +/* All the ranges for the tokens */ +MapRange, ListString map = new HashMapRange, ListString(); +for (Map.EntryRange,ListInetAddress entry : getRangeToAddressMap(keyspace).entrySet()) +{ +ListString rpcaddrs = new ArrayListString
svn commit: r1153686 - in /cassandra/trunk: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/gms/ src/java/org/apache/cassandra/service/ src/java/org/ap
Author: brandonwilliams Date: Wed Aug 3 22:06:14 2011 New Revision: 1153686 URL: http://svn.apache.org/viewvc?rev=1153686view=rev Log: Merge from 0.8 Modified: cassandra/trunk/ (props changed) cassandra/trunk/contrib/ (props changed) 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/gms/ApplicationState.java cassandra/trunk/src/java/org/apache/cassandra/gms/VersionedValue.java cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java Propchange: cassandra/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Aug 3 22:06:14 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 /cassandra/branches/cassandra-0.7:1026516-1151306 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1153202 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1153202,1153683 /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 Propchange: cassandra/trunk/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Aug 3 22:06:14 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-1151306 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1153202 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1153202,1153683 /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 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Aug 3 22:06:14 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-1151306 /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-1153202 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1153202,1153683 /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 Wed Aug 3 22:06:14 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-1151306 /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-1153202 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1153202,1153683 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra
svn commit: r1153688 - in /cassandra/branches/cassandra-0.8/test: distributed/org/apache/cassandra/ resources/functions/
Author: brandonwilliams Date: Wed Aug 3 22:10:32 2011 New Revision: 1153688 URL: http://svn.apache.org/viewvc?rev=1153688view=rev Log: Update distributed tests to work with whirr 0.4 Patch by Michael Allen, reviewed by brandonwilliams for CASSANDRA-2523 Added: cassandra/branches/cassandra-0.8/test/resources/functions/ cassandra/branches/cassandra-0.8/test/resources/functions/configure_cassandra.sh (with props) cassandra/branches/cassandra-0.8/test/resources/functions/install_cassandra.sh (with props) cassandra/branches/cassandra-0.8/test/resources/functions/nodetool_cassandra.sh (with props) cassandra/branches/cassandra-0.8/test/resources/functions/start_cassandra.sh (with props) cassandra/branches/cassandra-0.8/test/resources/functions/stop_cassandra.sh (with props) cassandra/branches/cassandra-0.8/test/resources/functions/wipe_cassandra.sh (with props) Modified: cassandra/branches/cassandra-0.8/test/distributed/org/apache/cassandra/CassandraServiceController.java cassandra/branches/cassandra-0.8/test/distributed/org/apache/cassandra/MutationTest.java cassandra/branches/cassandra-0.8/test/distributed/org/apache/cassandra/TestBase.java Modified: cassandra/branches/cassandra-0.8/test/distributed/org/apache/cassandra/CassandraServiceController.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/distributed/org/apache/cassandra/CassandraServiceController.java?rev=1153688r1=1153687r2=1153688view=diff == --- cassandra/branches/cassandra-0.8/test/distributed/org/apache/cassandra/CassandraServiceController.java (original) +++ cassandra/branches/cassandra-0.8/test/distributed/org/apache/cassandra/CassandraServiceController.java Wed Aug 3 22:10:32 2011 @@ -39,21 +39,21 @@ import org.apache.thrift.transport.TTran import org.apache.whirr.service.*; import org.apache.whirr.service.Cluster.Instance; import org.apache.whirr.service.cassandra.CassandraClusterActionHandler; -import org.apache.whirr.service.jclouds.RunUrlStatement; +import org.apache.whirr.service.jclouds.StatementBuilder; import org.jclouds.blobstore.domain.BlobMetadata; import org.jclouds.compute.ComputeService; import org.jclouds.compute.domain.ExecResponse; import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.options.RunScriptOptions; +import org.jclouds.compute.RunScriptOnNodesException; import org.jclouds.domain.Credentials; import org.jclouds.scriptbuilder.domain.OsFamily; +import org.jclouds.scriptbuilder.domain.Statements; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static org.jclouds.io.Payloads.newStringPayload; - public class CassandraServiceController { private static final Logger LOG = @@ -76,7 +76,6 @@ public class CassandraServiceController private Service service; private Cluster cluster; private ComputeService computeService; -private Credentials credentials; private CompositeConfiguration config; private BlobMetadatatarball; private ListInetAddress hosts; @@ -113,12 +112,12 @@ public class CassandraServiceController try { Cassandra.Client client = createClient(addr); - client.describe_cluster_name(); break; } catch (TException e) { +LOG.debug(e.toString()); try { Thread.sleep(1000); @@ -168,14 +167,13 @@ public class CassandraServiceController for (Instance instance : cluster.getInstances()) { hosts.add(instance.getPublicAddress()); -credentials = instance.getLoginCredentials(); } -waitForClusterInitialization(); - ShutdownHook shutdownHook = new ShutdownHook(this); Runtime.getRuntime().addShutdownHook(shutdownHook); +waitForClusterInitialization(); + running = true; } @@ -231,7 +229,7 @@ public class CassandraServiceController */ public void nodetool(String args, InetAddress... hosts) { -callOnHosts(String.format(apache/cassandra/nodetool %s, args), hosts); +callOnHosts(Arrays.asList(hosts), nodetool_cassandra, args); } /** @@ -239,25 +237,31 @@ public class CassandraServiceController */ public void wipeHosts(InetAddress... hosts) { -callOnHosts(apache/cassandra/wipe-state, hosts); +callOnHosts(Arrays.asList(hosts), wipe_cassandra); } public Failure failHosts(ListInetAddress hosts) { -return new Failure(hosts.toArray(new InetAddress[hosts.size()])).trigger(); +return new Failure(hosts).trigger(); } public Failure failHosts(InetAddress... hosts) { -return new Failure(hosts).trigger
svn commit: r1154006 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java
Author: brandonwilliams Date: Thu Aug 4 20:50:25 2011 New Revision: 1154006 URL: http://svn.apache.org/viewvc?rev=1154006view=rev Log: Avoid possible race in gossip to unreachable endpoints Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1154006r1=1154005r2=1154006view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java Thu Aug 4 20:50:25 2011 @@ -443,6 +443,8 @@ public class Gossiper implements IFailur private boolean sendGossip(MessageProducer prod, SetInetAddress epSet) { int size = epSet.size(); +if (size 1) +return false; /* Generate a random number from 0 - size */ ListInetAddress liveEndpoints = new ArrayListInetAddress(epSet); int index = (size == 1) ? 0 : random.nextInt(size);
svn commit: r1155100 - in /cassandra/branches/cassandra-0.8: src/java/org/apache/cassandra/cli/ src/resources/org/apache/cassandra/cli/ test/unit/org/apache/cassandra/cli/
Author: brandonwilliams Date: Mon Aug 8 21:08:04 2011 New Revision: 1155100 URL: http://svn.apache.org/viewvc?rev=1155100view=rev Log: Add 'show creates' commands to the cli to export schema. Patch by Aaron Morton, reviewed by xedin for CASSANDRA-2221 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliCompleter.java cassandra/branches/cassandra-0.8/src/resources/org/apache/cassandra/cli/CliHelp.yaml cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g?rev=1155100r1=1155099r2=1155100view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g Mon Aug 8 21:08:04 2011 @@ -44,6 +44,7 @@ tokens { NODE_SHOW_CLUSTER_NAME; NODE_SHOW_VERSION; NODE_SHOW_KEYSPACES; +NODE_SHOW_SCHEMA; NODE_THRIFT_GET; NODE_THRIFT_GET_WITH_CONDITIONS; NODE_THRIFT_SET; @@ -191,6 +192,8 @@ helpStatement - ^(NODE_HELP NODE_SHOW_CLUSTER_NAME) | HELP SHOW KEYSPACES - ^(NODE_HELP NODE_SHOW_KEYSPACES) +| HELP SHOW SCHEMA +- ^(NODE_HELP NODE_SHOW_SCHEMA) | HELP SHOW API_VERSION - ^(NODE_HELP NODE_SHOW_VERSION) | HELP CREATE KEYSPACE @@ -284,6 +287,7 @@ showStatement : showClusterName | showVersion | showKeyspaces +| showSchema ; listStatement @@ -356,6 +360,11 @@ showKeyspaces - ^(NODE_SHOW_KEYSPACES) ; +showSchema +: SHOW SCHEMA (keyspace)? +- ^(NODE_SHOW_SCHEMA (keyspace)?) +; + describeTable : DESCRIBE KEYSPACE (keyspace)? - ^(NODE_DESCRIBE_TABLE (keyspace)?) @@ -573,6 +582,7 @@ TTL: 'TTL'; CONSISTENCYLEVEL: 'CONSISTENCYLEVEL'; INDEX: 'INDEX'; ON: 'ON'; +SCHEMA: 'SCHEMA'; IP_ADDRESS : IntegerPositiveLiteral '.' IntegerPositiveLiteral '.' IntegerPositiveLiteral '.' IntegerPositiveLiteral Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java?rev=1155100r1=1155099r2=1155100view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java Mon Aug 8 21:08:04 2011 @@ -26,6 +26,9 @@ import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.util.*; +import com.google.common.base.Predicate; +import com.google.common.collect.Collections2; +import org.apache.commons.lang.StringUtils; import com.google.common.base.Charsets; import com.google.common.base.Joiner; @@ -71,7 +74,7 @@ public class CliClient COUNTERCOLUMN (CounterColumnType.instance); private AbstractType validator; - + Function(AbstractType validator) { this.validator = validator; @@ -136,6 +139,8 @@ public class CliClient } private static final String DEFAULT_PLACEMENT_STRATEGY = org.apache.cassandra.locator.NetworkTopologyStrategy; +private final String NEWLINE = System.getProperty(line.separator); +private final String TAB = ; private Cassandra.Client thriftClient = null; private CliSessionState sessionState = null; @@ -241,6 +246,9 @@ public class CliClient case CliParser.NODE_SHOW_KEYSPACES: executeShowKeySpaces(); break; +case CliParser.NODE_SHOW_SCHEMA: +executeShowSchema(tree); +break; case CliParser.NODE_DESCRIBE_TABLE: executeDescribeKeySpace(tree); break; @@ -1246,7 +1254,7 @@ public class CliClient cfDef.setReplicate_on_write(Boolean.parseBoolean(mValue)); break; case ROW_CACHE_PROVIDER: -cfDef.setRow_cache_provider(mValue); + cfDef.setRow_cache_provider(CliUtils.unescapeSQLString(mValue)); break; case KEY_VALIDATION_CLASS: cfDef.setKey_validation_class(CliUtils.unescapeSQLString(mValue)); @@ -1560,6 +1568,187 @@ public class CliClient } } +// SHOW SCHEMA +private void executeShowSchema(Tree statement) throws TException
svn commit: r1155147 - /cassandra/drivers/py/cql/marshal.py
Author: brandonwilliams Date: Mon Aug 8 23:18:29 2011 New Revision: 1155147 URL: http://svn.apache.org/viewvc?rev=1155147view=rev Log: Allow escaping of colons in the python cql driver. Patch by brandonwilliams, reviewed by Blake Visin for CASSANDRA-2898 Modified: cassandra/drivers/py/cql/marshal.py Modified: cassandra/drivers/py/cql/marshal.py URL: http://svn.apache.org/viewvc/cassandra/drivers/py/cql/marshal.py?rev=1155147r1=1155146r2=1155147view=diff == --- cassandra/drivers/py/cql/marshal.py (original) +++ cassandra/drivers/py/cql/marshal.py Mon Aug 8 23:18:29 2011 @@ -29,7 +29,7 @@ if hasattr(struct, 'Struct'): # new in P else: _have_struct = False -_param_re = re.compile(r(?!strategy_options)(:[a-zA-Z_][a-zA-Z0-9_]*), re.M) +_param_re = re.compile(r(?!strategy_options)(?!\\)(:[a-zA-Z_][a-zA-Z0-9_]*), re.M) BYTES_TYPE = org.apache.cassandra.db.marshal.BytesType ASCII_TYPE = org.apache.cassandra.db.marshal.AsciiType @@ -48,7 +48,7 @@ def prepare(query, params): new, count = re.subn(_param_re, lambda m: marshal(params[m.group(1)[1:]]), query) if len(params) count: raise cql.ProgrammingError(More keywords were provided than parameters) -return new +return new.replace(\:, :) def marshal(term): if isinstance(term, unicode):
svn commit: r1155157 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java
Author: brandonwilliams Date: Mon Aug 8 23:41:44 2011 New Revision: 1155157 URL: http://svn.apache.org/viewvc?rev=1155157view=rev Log: Fix stringification for local address in getRangeToRpcaddressMap Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java?rev=1155157r1=1155156r2=1155157view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Mon Aug 8 23:41:44 2011 @@ -618,7 +618,7 @@ public class StorageService implements I for (InetAddress endpoint: entry.getValue()) { if (endpoint.equals(FBUtilities.getLocalAddress())) - rpcaddrs.add(DatabaseDescriptor.getRpcAddress().toString()); + rpcaddrs.add(DatabaseDescriptor.getRpcAddress().getHostAddress()); else rpcaddrs.add(Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.RPC_ADDRESS).value); }
svn commit: r1156254 - in /cassandra/trunk/src/java/org/apache/cassandra: gms/Gossiper.java net/MessagingService.java net/OutboundTcpConnection.java service/StorageProxy.java service/StorageService.ja
Author: brandonwilliams Date: Wed Aug 10 16:28:35 2011 New Revision: 1156254 URL: http://svn.apache.org/viewvc?rev=1156254view=rev Log: Use broadcastAddress instead of localAddress. Patch by Vijay, reviewed by brandonwilliams for CASSANDRA-3000 Modified: cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java Modified: cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1156254r1=1156253r2=1156254view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java Wed Aug 10 16:28:35 2011 @@ -983,7 +983,7 @@ public class Gossiper implements IFailur EndpointState epState = endpointStateMap.get(FBUtilities.getBroadcastAddress()); assert epState != null; epState.addApplicationState(state, value); -doNotifications(FBUtilities.getLocalAddress(), state, value); +doNotifications(FBUtilities.getBroadcastAddress(), state, value); } public void stop() 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=1156254r1=1156253r2=1156254view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java Wed Aug 10 16:28:35 2011 @@ -442,7 +442,7 @@ public final class MessagingService impl public void receive(Message message, String id) { if (logger_.isTraceEnabled()) -logger_.trace(FBUtilities.getLocalAddress() + received + message.getVerb() +logger_.trace(FBUtilities.getBroadcastAddress() + received + message.getVerb() + from + id + @ + message.getFrom()); message = SinkManager.processServerMessage(message, id); Modified: cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java?rev=1156254r1=1156253r2=1156254view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java Wed Aug 10 16:28:35 2011 @@ -45,7 +45,7 @@ public class OutboundTcpConnection exten { private static final Logger logger = LoggerFactory.getLogger(OutboundTcpConnection.class); -private static final Message CLOSE_SENTINEL = new Message(FBUtilities.getLocalAddress(), +private static final Message CLOSE_SENTINEL = new Message(FBUtilities.getBroadcastAddress(), StorageService.Verb.INTERNAL_RESPONSE, ArrayUtils.EMPTY_BYTE_ARRAY, MessagingService.version_); 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=1156254r1=1156253r2=1156254view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java Wed Aug 10 16:28:35 2011 @@ -446,7 +446,7 @@ public class StorageProxy implements Sto responseHandler.response(null); // then send to replicas, if any -hintedEndpoints.removeAll(FBUtilities.getLocalAddress()); +hintedEndpoints.removeAll(FBUtilities.getBroadcastAddress()); if (cm.shouldReplicateOnWrite() !hintedEndpoints.isEmpty()) { // We do the replication on another stage because it involves a read (see CM.makeReplicationMutation) Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=1156254r1=1156253r2
svn commit: r1158940 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java
Author: brandonwilliams Date: Wed Aug 17 22:17:51 2011 New Revision: 1158940 URL: http://svn.apache.org/viewvc?rev=1158940view=rev Log: Fix stringification of rpc address in gossip. Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java?rev=1158940r1=1158939r2=1158940view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/VersionedValue.java Wed Aug 17 22:17:51 2011 @@ -160,7 +160,7 @@ public class VersionedValue implements C public VersionedValue rpcaddress(InetAddress endpoint) { -return new VersionedValue(endpoint.toString()); +return new VersionedValue(endpoint.getHostAddress()); } public VersionedValue releaseVersion()
svn commit: r1160311 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java
Author: brandonwilliams Date: Mon Aug 22 15:42:56 2011 New Revision: 1160311 URL: http://svn.apache.org/viewvc?rev=1160311view=rev Log: Handle snapshot arguments correctly. Patch by Nate McCall, reviewed by brandonwilliams for CASSANDRA-3038 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1160311r1=1160310r2=1160311view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Mon Aug 22 15:42:56 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 :
svn commit: r1160825 - /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java
Author: brandonwilliams Date: Tue Aug 23 18:00:34 2011 New Revision: 1160825 URL: http://svn.apache.org/viewvc?rev=1160825view=rev Log: Remove gossip state when a new IP takes over a token. Patch by brandonwilliams, reviewed by jbellis for CASSANDRA-3071 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java?rev=1160825r1=1160824r2=1160825view=diff == --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java Tue Aug 23 18:00:34 2011 @@ -745,6 +745,7 @@ public class StorageService implements I logger_.info(String.format(Nodes %s and %s have the same token %s. %s is the new owner, endpoint, currentOwner, token, endpoint)); tokenMetadata_.updateNormalToken(token, endpoint); +Gossiper.instance.removeEndpoint(currentOwner); if (!isClientMode) SystemTable.updateToken(endpoint, token); }
svn commit: r1160827 - in /cassandra/branches/cassandra-0.8: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/service/
Author: brandonwilliams Date: Tue Aug 23 18:08:51 2011 New Revision: 1160827 URL: http://svn.apache.org/viewvc?rev=1160827view=rev Log: Merge from 0.7 Modified: cassandra/branches/cassandra-0.8/ (props changed) cassandra/branches/cassandra-0.8/contrib/ (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Propchange: cassandra/branches/cassandra-0.8/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 23 18:08:51 2011 @@ -1,5 +1,5 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7:1026516-1160444 +/cassandra/branches/cassandra-0.7:1026516-1160444,1160825 /cassandra/branches/cassandra-0.7.0:1053690-1055654 /cassandra/branches/cassandra-0.8:1090934-1125013,1125041 /cassandra/branches/cassandra-0.8.0:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 23 18:08:51 2011 @@ -1,5 +1,5 @@ /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009 -/cassandra/branches/cassandra-0.7/contrib:1026516-1160444 +/cassandra/branches/cassandra-0.7/contrib:1026516-1160444,1160825 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 /cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125041 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 23 18:08:51 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-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1160444 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1160444,1160825 /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,1125041 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 23 18:08:51 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-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1160444 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1160444,1160825 /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,1125041 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 23 18:08:51 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-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1160444 +/cassandra/branches/cassandra-0.7
svn commit: r1160828 - in /cassandra/trunk: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/service/
Author: brandonwilliams Date: Tue Aug 23 18:10:28 2011 New Revision: 1160828 URL: http://svn.apache.org/viewvc?rev=1160828view=rev Log: Merge from 0.8 Modified: cassandra/trunk/ (props changed) cassandra/trunk/contrib/ (props changed) 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/service/StorageService.java Propchange: cassandra/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 23 18:10:28 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7:1026516-1160444 +/cassandra/branches/cassandra-0.7:1026516-1160444,1160825 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1160459 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1160459,1160827 /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 Propchange: cassandra/trunk/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 23 18:10:28 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-1160444 +/cassandra/branches/cassandra-0.7/contrib:1026516-1160444,1160825 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1160459 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1160459,1160827 /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 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 23 18:10:28 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-1160444 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1160444,1160825 /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-1160459 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1160459,1160827 /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 Tue Aug 23 18:10:28 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-1160444 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1160444,1160825 /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-1160459 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1160459,1160827 /cassandra
svn commit: r1160855 - in /cassandra/branches: cassandra-0.7/CHANGES.txt cassandra-0.8/CHANGES.txt
Author: brandonwilliams Date: Tue Aug 23 19:10:22 2011 New Revision: 1160855 URL: http://svn.apache.org/viewvc?rev=1160855view=rev Log: Update CHANGES Modified: cassandra/branches/cassandra-0.7/CHANGES.txt cassandra/branches/cassandra-0.8/CHANGES.txt Modified: cassandra/branches/cassandra-0.7/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1160855r1=1160854r2=1160855view=diff == --- cassandra/branches/cassandra-0.7/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.7/CHANGES.txt Tue Aug 23 19:10:22 2011 @@ -7,6 +7,7 @@ has not (CASSANDRA-2388) * avoid retaining references to dropped CFS objects in CompactionManager.estimatedCompactions (CASSANDRA-2708) + * remove gossip state when a new IP takes over a token (CASSANDRA-3071) 0.7.8 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1160855r1=1160854r2=1160855view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Aug 23 19:10:22 2011 @@ -29,6 +29,7 @@ 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) + * remove gossip state when a new IP takes over a token (CASSANDRA-3071) 0.8.4
svn commit: r1160879 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/service/GCInspector.java
Author: brandonwilliams Date: Tue Aug 23 20:05:38 2011 New Revision: 1160879 URL: http://svn.apache.org/viewvc?rev=1160879view=rev Log: work around native memory leak in com.sun.management.GarbageCollectorMXBean patch by brandonwilliams and jbellis for CASSANDRA-2868 Modified: cassandra/branches/cassandra-0.7/CHANGES.txt cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java Modified: cassandra/branches/cassandra-0.7/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1160879r1=1160878r2=1160879view=diff == --- cassandra/branches/cassandra-0.7/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.7/CHANGES.txt Tue Aug 23 20:05:38 2011 @@ -8,6 +8,8 @@ * avoid retaining references to dropped CFS objects in CompactionManager.estimatedCompactions (CASSANDRA-2708) * remove gossip state when a new IP takes over a token (CASSANDRA-3071) + * work around native memory leak in com.sun.management.GarbageCollectorMXBean +(CASSANDRA-2868) 0.7.8 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java?rev=1160879r1=1160878r2=1160879view=diff == --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java Tue Aug 23 20:05:38 2011 @@ -20,11 +20,13 @@ package org.apache.cassandra.service; * */ +import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; +import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.concurrent.TimeUnit; import javax.management.MBeanServer; import javax.management.ObjectName; @@ -45,32 +47,22 @@ public class GCInspector public static final GCInspector instance = new GCInspector(); private HashMapString, Long gctimes = new HashMapString, Long(); +private HashMapString, Long gccounts = new HashMapString, Long(); + +ListGarbageCollectorMXBean beans = new ArrayListGarbageCollectorMXBean(); +MemoryMXBean membean = ManagementFactory.getMemoryMXBean(); -ListObject beans = new ArrayListObject(); // these are instances of com.sun.management.GarbageCollectorMXBean private volatile boolean cacheSizesReduced; public GCInspector() { -// we only want this class to do its thing on sun jdks, or when the sun classes are present. -Class gcBeanClass = null; -try -{ -gcBeanClass = Class.forName(com.sun.management.GarbageCollectorMXBean); -Class.forName(com.sun.management.GcInfo); -} -catch (ClassNotFoundException ex) -{ -// this happens when using a non-sun jdk. -logger.warn(Cannot load sun GC monitoring classes. GCInspector is disabled.); -} - MBeanServer server = ManagementFactory.getPlatformMBeanServer(); try { ObjectName gcName = new ObjectName(ManagementFactory.GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE + ,*); for (ObjectName name : server.queryNames(gcName, null)) { -Object gc = ManagementFactory.newPlatformMXBeanProxy(server, name.getCanonicalName(), gcBeanClass); +GarbageCollectorMXBean gc = ManagementFactory.newPlatformMXBeanProxy(server, name.getCanonicalName(), GarbageCollectorMXBean.class); beans.add(gc); } } @@ -97,43 +89,42 @@ public class GCInspector private void logGCResults() { -for (Object gc : beans) +for (GarbageCollectorMXBean gc : beans) { -SunGcWrapper gcw = new SunGcWrapper(gc); -if (gcw.isLastGcInfoNull()) +Long previousTotal = gctimes.get(gc.getName()); +Long total = gc.getCollectionTime(); +if (previousTotal == null) +previousTotal = 0L; +if (previousTotal.equals(total)) continue; - -Long previous = gctimes.get(gcw.getName()); -if (previous != null previous.longValue() == gcw.getCollectionTime().longValue()) -continue; -gctimes.put(gcw.getName(), gcw.getCollectionTime()); - -long previousMemoryUsed = 0; -long memoryUsed = 0; -long memoryMax = 0; -for (Map.EntryString, MemoryUsage entry
svn commit: r1161167 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/GCInspector.java
Author: brandonwilliams Date: Wed Aug 24 15:46:05 2011 New Revision: 1161167 URL: http://svn.apache.org/viewvc?rev=1161167view=rev Log: Remove assertion causing test failures because GarbageCollectorMXBean sucks Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/GCInspector.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/GCInspector.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/GCInspector.java?rev=1161167r1=1161166r2=1161167view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/GCInspector.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/GCInspector.java Wed Aug 24 15:46:05 2011 @@ -106,7 +106,6 @@ public class GCInspector if (previousCount == null) previousCount = 0L; gccounts.put(gc.getName(), count); -assert count previousCount; MemoryUsage mu = membean.getHeapMemoryUsage(); long memoryUsed = mu.getUsed();
svn commit: r1163772 - in /cassandra/trunk/src/java/org/apache/cassandra/service: StorageService.java StorageServiceMBean.java
Author: brandonwilliams Date: Wed Aug 31 19:57:17 2011 New Revision: 1163772 URL: http://svn.apache.org/viewvc?rev=1163772view=rev Log: Restore getRangeToEndpointMap. Patch by Nick Bailey, reviewed by brandonwilliams for CASSANDRA-3106 Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=1163772r1=1163771r2=1163772view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java Wed Aug 31 19:57:17 2011 @@ -161,7 +161,7 @@ public class StorageService implements I private IPartitioner partitioner = DatabaseDescriptor.getPartitioner(); public VersionedValue.VersionedValueFactory valueFactory = new VersionedValue.VersionedValueFactory(partitioner); - + public static final StorageService instance = new StorageService(); public static IPartitioner getPartitioner() @@ -249,7 +249,7 @@ public class StorageService implements I MessagingService.instance().registerVerbHandlers(Verb.GOSSIP_DIGEST_SYN, new GossipDigestSynVerbHandler()); MessagingService.instance().registerVerbHandlers(Verb.GOSSIP_DIGEST_ACK, new GossipDigestAckVerbHandler()); MessagingService.instance().registerVerbHandlers(Verb.GOSSIP_DIGEST_ACK2, new GossipDigestAck2VerbHandler()); - + MessagingService.instance().registerVerbHandlers(Verb.DEFINITIONS_UPDATE, new DefinitionsUpdateVerbHandler()); MessagingService.instance().registerVerbHandlers(Verb.TRUNCATE, new TruncateVerbHandler()); MessagingService.instance().registerVerbHandlers(Verb.SCHEMA_CHECK, new SchemaCheckVerbHandler()); @@ -325,10 +325,10 @@ public class StorageService implements I try { Thread.sleep(1000L); } catch (InterruptedException e) {} StageManager.shutdownNow(); } - -public boolean isInitialized() -{ -return initialized; + +public boolean isInitialized() +{ +return initialized; } public synchronized void initClient() throws IOException, ConfigurationException @@ -351,7 +351,7 @@ public class StorageService implements I Gossiper.instance.register(this); Gossiper.instance.start((int)(System.currentTimeMillis() / 1000)); // needed for node-ring gathering. MessagingService.instance().listen(FBUtilities.getLocalAddress()); - + // sleep a while to allow gossip to warm up (the other nodes need to know about this one before they can reply). try { @@ -597,6 +597,27 @@ public class StorageService implements I } /** + * for a keyspace, return the ranges and corresponding listen addresses. + * @param keyspace + * @return + */ +public MapRange, ListString getRangeToEndpointMap(String keyspace) +{ +// some people just want to get a visual representation of things. Allow null and set it to the first +// non-system table. +if (keyspace == null) +keyspace = Schema.instance.getNonSystemTables().get(0); + +/* All the ranges for the tokens */ +MapRange, ListString map = new HashMapRange, ListString(); +for (Map.EntryRange,ListInetAddress entry : getRangeToAddressMap(keyspace).entrySet()) +{ +map.put(entry.getKey(), stringify(entry.getValue())); +} +return map; +} + +/** * for a keyspace, return the ranges and corresponding RPC addresses for a given keyspace. * @param keyspace * @return @@ -686,7 +707,7 @@ public class StorageService implements I * the token associated with an endpoint, and knowing its operation mode. Nodes can start in either bootstrap or * normal mode, and from bootstrap mode can change mode to normal. A node in bootstrap mode needs to have * pendingranges set in TokenMetadata; a node in normal mode should instead be part of the token ring. - * + * * Normal progression of ApplicationState.STATUS values for a node should be like this: * STATUS_BOOTSTRAPPING,token * if bootstrapping. stays this way until all files are received. @@ -1091,7 +1112,7 @@ public class StorageService implements I * @param ranges the ranges to find sources for * @return multimap of addresses to ranges the address is responsible for */ -private MultimapInetAddress, Range getNewSourceRanges(String table, SetRange ranges) +private MultimapInetAddress, Range getNewSourceRanges(String table, SetRange ranges) { InetAddress
svn commit: r1164216 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/utils/BloomFilter.java
Author: brandonwilliams Date: Thu Sep 1 19:13:58 2011 New Revision: 1164216 URL: http://svn.apache.org/viewvc?rev=1164216view=rev Log: Add trace check before logging Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/utils/BloomFilter.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/utils/BloomFilter.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/utils/BloomFilter.java?rev=1164216r1=1164215r2=1164216view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/utils/BloomFilter.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/utils/BloomFilter.java Thu Sep 1 19:13:58 2011 @@ -70,7 +70,8 @@ public class BloomFilter extends Filter numElements, bucketsPerElement, targetBucketsPerElem)); } BloomCalculations.BloomSpecification spec = BloomCalculations.computeBloomSpec(bucketsPerElement); -logger.trace(Creating bloom filter for {} elements and spec {}, numElements, spec); +if (logger.isTraceEnabled()) +logger.trace(Creating bloom filter for {} elements and spec {}, numElements, spec); return new BloomFilter(spec.K, bucketsFor(numElements, spec.bucketsPerElement)); }
svn commit: r1164237 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java
Author: brandonwilliams Date: Thu Sep 1 19:51:48 2011 New Revision: 1164237 URL: http://svn.apache.org/viewvc?rev=1164237view=rev Log: Weaken inflexible inserts for future additions Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java?rev=1164237r1=1164236r2=1164237view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Thu Sep 1 19:51:48 2011 @@ -771,7 +771,7 @@ public class StorageService implements I */ private void handleStateBootstrap(InetAddress endpoint, String[] pieces) { -assert pieces.length == 2; +assert pieces.length = 2; Token token = getPartitioner().getTokenFactory().fromString(pieces[1]); if (logger_.isDebugEnabled()) @@ -858,7 +858,7 @@ public class StorageService implements I */ private void handleStateLeaving(InetAddress endpoint, String[] pieces) { -assert pieces.length == 2; +assert pieces.length = 2; String moveValue = pieces[1]; Token token = getPartitioner().getTokenFactory().fromString(moveValue); @@ -893,7 +893,7 @@ public class StorageService implements I */ private void handleStateLeft(InetAddress endpoint, String[] pieces) { -assert pieces.length == 2; +assert pieces.length = 2; Token token = getPartitioner().getTokenFactory().fromString(pieces[1]); if (logger_.isDebugEnabled()) @@ -910,7 +910,7 @@ public class StorageService implements I */ private void handleStateMoving(InetAddress endpoint, String[] pieces) { -assert pieces.length == 2; +assert pieces.length = 2; Token token = getPartitioner().getTokenFactory().fromString(pieces[1]); if (logger_.isDebugEnabled())
svn commit: r1166809 - /cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra
Author: brandonwilliams Date: Thu Sep 8 17:11:26 2011 New Revision: 1166809 URL: http://svn.apache.org/viewvc?rev=1166809view=rev Log: Fix interpolation of PIG_OPTS. Patch by Eldon Stegall, reviewed by brandonwilliams for CASSANDRA-3160 Modified: cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra Modified: cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra?rev=1166809r1=1166808r2=1166809view=diff == --- cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra (original) +++ cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra Thu Sep 8 17:11:26 2011 @@ -46,5 +46,5 @@ fi CLASSPATH=$CLASSPATH:$PIG_JAR export PIG_CLASSPATH=$PIG_CLASSPATH:$CLASSPATH -export PIG_OPTS=$PIG_OPTS -Dudf.import.list=org.apache.cassandra.hadoop.pig +export PIG_OPTS=$PIG_OPTS -Dudf.import.list=org.apache.cassandra.hadoop.pig cat $cwd/../build/bootstrap.pig - | $PIG_HOME/bin/pig $*
svn commit: r1166816 - in /cassandra/trunk: ./ contrib/ contrib/pig/bin/ interface/thrift/gen-java/org/apache/cassandra/thrift/
Author: brandonwilliams Date: Thu Sep 8 17:26:53 2011 New Revision: 1166816 URL: http://svn.apache.org/viewvc?rev=1166816view=rev Log: Merge 3160 from 0.8 Modified: cassandra/trunk/ (props changed) cassandra/trunk/contrib/ (props changed) cassandra/trunk/contrib/pig/bin/pig_cassandra 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) Propchange: cassandra/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 8 17:26:53 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 /cassandra/branches/cassandra-0.7:1026516-1163782 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1166782 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1166782,1166809 /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 Propchange: cassandra/trunk/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 8 17:26:53 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-1163782 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1166782 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1166782,1166809 /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/contrib/pig/bin/pig_cassandra URL: http://svn.apache.org/viewvc/cassandra/trunk/contrib/pig/bin/pig_cassandra?rev=1166816r1=1166815r2=1166816view=diff == --- cassandra/trunk/contrib/pig/bin/pig_cassandra (original) +++ cassandra/trunk/contrib/pig/bin/pig_cassandra Thu Sep 8 17:26:53 2011 @@ -46,5 +46,5 @@ fi CLASSPATH=$CLASSPATH:$PIG_JAR export PIG_CLASSPATH=$PIG_CLASSPATH:$CLASSPATH -export PIG_OPTS=$PIG_OPTS -Dudf.import.list=org.apache.cassandra.hadoop.pig +export PIG_OPTS=$PIG_OPTS -Dudf.import.list=org.apache.cassandra.hadoop.pig cat $cwd/../build/bootstrap.pig - | $PIG_HOME/bin/pig $* Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 8 17:26:53 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-1163782 /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-1166782 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1166782,1166809 /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 Thu Sep 8 17:26:53 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-1163782 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
svn commit: r1169823 - in /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra: gms/Gossiper.java net/IncomingTcpConnection.java net/OutboundTcpConnection.java
Author: brandonwilliams Date: Mon Sep 12 16:42:36 2011 New Revision: 1169823 URL: http://svn.apache.org/viewvc?rev=1169823view=rev Log: Make IncomingTcpConnection responsible for version handling. Patch by Marcus Erikkson, reviewed by Peter Schuller and brandonwilliams for CASSANDRA-3166 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/IncomingTcpConnection.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/OutboundTcpConnection.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1169823r1=1169822r2=1169823view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java Mon Sep 12 16:42:36 2011 @@ -194,11 +194,13 @@ public class Gossiper implements IFailur public void setVersion(InetAddress address, int version) { +logger.debug(Setting version {} for {}, version, address); versions.put(address, version); } public void resetVersion(InetAddress endpoint) { +logger.debug(Reseting version for {}, endpoint); versions.remove(endpoint); } Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/IncomingTcpConnection.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/IncomingTcpConnection.java?rev=1169823r1=1169822r2=1169823view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/IncomingTcpConnection.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/IncomingTcpConnection.java Mon Sep 12 16:42:36 2011 @@ -158,6 +158,8 @@ public class IncomingTcpConnection exten private void close() { +// reset version here, since we set when starting an incoming socket +Gossiper.instance.resetVersion(socket.getInetAddress()); try { socket.close(); Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/OutboundTcpConnection.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/OutboundTcpConnection.java?rev=1169823r1=1169822r2=1169823view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/OutboundTcpConnection.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/OutboundTcpConnection.java Mon Sep 12 16:42:36 2011 @@ -139,9 +139,6 @@ public class OutboundTcpConnection exten output = null; socket = null; } - -// when we see the node again, try to connect at the most recent protocol we know about -Gossiper.instance.resetVersion(endpoint); } private ByteBuffer take()
svn commit: r1169827 - in /cassandra/branches/cassandra-1.0.0: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/gms/ src/java/org/apache/cassandra/net/
Author: brandonwilliams Date: Mon Sep 12 16:48:49 2011 New Revision: 1169827 URL: http://svn.apache.org/viewvc?rev=1169827view=rev Log: Merge #3166 Modified: cassandra/branches/cassandra-1.0.0/ (props changed) cassandra/branches/cassandra-1.0.0/contrib/ (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/Gossiper.java cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/net/IncomingTcpConnection.java cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/net/OutboundTcpConnection.java Propchange: cassandra/branches/cassandra-1.0.0/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Sep 12 16:48:49 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 /cassandra/branches/cassandra-0.7:1026516-1163782 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1166782,1166809 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1166782,1166809,1169823 /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 Propchange: cassandra/branches/cassandra-1.0.0/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Sep 12 16:48:49 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-1163782 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1166782,1166809 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1166782,1166809,1169823 /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 Propchange: cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Sep 12 16:48:49 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-1163782 /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-1166782,1166809 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1166782,1166809,1169823 /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/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Sep 12 16:48:49 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-1163782 /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-1166782,1166809 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java
svn commit: r1170284 [1/3] - in /cassandra/branches/cassandra-0.8: ./ interface/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/service/ src/java/org/apache/cassa
Author: brandonwilliams Date: Tue Sep 13 18:22:45 2011 New Revision: 1170284 URL: http://svn.apache.org/viewvc?rev=1170284view=rev Log: Return both listen_address and rpc_address through describe_ring. Patch by Nick Bailey, reviewed by brandonwilliams for CASSANDRA-3187 Modified: cassandra/branches/cassandra-0.8/NEWS.txt cassandra/branches/cassandra-0.8/interface/cassandra.thrift cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationException.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthorizationException.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnDef.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnOrSuperColumn.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnParent.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnPath.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterColumn.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterSuperColumn.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlResult.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlRow.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Deletion.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexClause.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexExpression.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyCount.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyRange.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/KsDef.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Mutation.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SchemaDisagreementException.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SlicePredicate.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SliceRange.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/TimedOutException.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/TokenRange.java cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/UnavailableException.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java Modified: cassandra/branches/cassandra-0.8/NEWS.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/NEWS.txt?rev=1170284r1=1170283r2=1170284view=diff == --- cassandra/branches/cassandra-0.8/NEWS.txt (original) +++ cassandra/branches/cassandra-0.8/NEWS.txt Tue Sep 13 18:22:45 2011 @@ -1,3 +1,10 @@ +0.8.6 += + +Features + +- describe_ring now returns both the listen_address and rpc_address + 0.8.5 = Modified: cassandra/branches/cassandra-0.8/interface/cassandra.thrift URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/interface/cassandra.thrift?rev=1170284r1=1170283r2=1170284view=diff == --- cassandra/branches/cassandra-0.8/interface/cassandra.thrift (original) +++ cassandra/branches/cassandra-0.8/interface/cassandra.thrift Tue Sep 13 18:22:45 2011
svn commit: r1172024 - /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java
Author: brandonwilliams Date: Sat Sep 17 17:40:01 2011 New Revision: 1172024 URL: http://svn.apache.org/viewvc?rev=1172024view=rev Log: Fix cfhistograms read/write latency transposition. Patch by brandonwilliams, reviewed by jbellis for CASSANDRA-3222 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1172024r1=1172023r2=1172024view=diff == --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java Sat Sep 17 17:40:01 2011 @@ -470,8 +470,8 @@ public class NodeCmd output.println(String.format(%-10d%10s%18s%18s%18s%18s, offsets[i], (i sprh.length ? sprh[i] : ), - (i rwlh.length ? rrlh[i] : ), - (i rrlh.length ? rwlh[i] : ), + (i rwlh.length ? rwlh[i] : ), + (i rrlh.length ? rrlh[i] : ), (i ersh.length ? ersh[i] : ), (i ecch.length ? ecch[i] : ))); }
svn commit: r1172026 - in /cassandra/branches/cassandra-0.8: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/tools/
Author: brandonwilliams Date: Sat Sep 17 17:42:32 2011 New Revision: 1172026 URL: http://svn.apache.org/viewvc?rev=1172026view=rev Log: Merge 3222 from 0.7 Modified: cassandra/branches/cassandra-0.8/ (props changed) cassandra/branches/cassandra-0.8/contrib/ (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Propchange: cassandra/branches/cassandra-0.8/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:42:32 2011 @@ -1,5 +1,5 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7:1026516-1170333 +/cassandra/branches/cassandra-0.7:1026516-1170333,1172024 /cassandra/branches/cassandra-0.7.0:1053690-1055654 /cassandra/branches/cassandra-0.8:1090934-1125013,1125041 /cassandra/branches/cassandra-0.8.0:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:42:32 2011 @@ -1,5 +1,5 @@ /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009 -/cassandra/branches/cassandra-0.7/contrib:1026516-1170333 +/cassandra/branches/cassandra-0.7/contrib:1026516-1170333,1172024 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 /cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125041 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:42:32 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-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1170333 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1170333,1172024 /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,1125041 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:42:32 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-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1170333 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1170333,1172024 /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,1125041 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369 Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:42:32 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-1131291 -/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache
svn commit: r1172027 - in /cassandra/branches/cassandra-1.0.0: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/tools/
Author: brandonwilliams Date: Sat Sep 17 17:43:57 2011 New Revision: 1172027 URL: http://svn.apache.org/viewvc?rev=1172027view=rev Log: Merge 3222 from 0.8 Modified: cassandra/branches/cassandra-1.0.0/ (props changed) cassandra/branches/cassandra-1.0.0/contrib/ (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/tools/NodeCmd.java Propchange: cassandra/branches/cassandra-1.0.0/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:43:57 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7:1026516-1170333 +/cassandra/branches/cassandra-0.7:1026516-1170333,1172024 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1171737 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1171737,1172026 /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 Propchange: cassandra/branches/cassandra-1.0.0/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:43:57 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-1170333 +/cassandra/branches/cassandra-0.7/contrib:1026516-1170333,1172024 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1171737 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1171737,1172026 /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 Propchange: cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:43:57 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-1170333 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1170333,1172024 /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-1171737 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1171737,1172026 /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/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:43:57 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-1170333 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1170333,1172024 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift
svn commit: r1172030 - in /cassandra/trunk: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/tools/
Author: brandonwilliams Date: Sat Sep 17 17:45:07 2011 New Revision: 1172030 URL: http://svn.apache.org/viewvc?rev=1172030view=rev Log: Merge 3222 from 1.0.0 Modified: cassandra/trunk/ (props changed) cassandra/trunk/contrib/ (props changed) 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/db/ColumnFamilyStore.java cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java Propchange: cassandra/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:45:07 2011 @@ -1,11 +1,11 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 -/cassandra/branches/cassandra-0.7:1026516-1170333 +/cassandra/branches/cassandra-0.7:1026516-1170333,1172024 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1171096 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1171096,1172026 /cassandra/branches/cassandra-0.8.0:1125021-1130369 /cassandra/branches/cassandra-0.8.1:1101014-1125018 /cassandra/branches/cassandra-1.0:1167085-1171099 -/cassandra/branches/cassandra-1.0.0:1167104-1167229,1167232-1171098 +/cassandra/branches/cassandra-1.0.0:1167104-1167229,1167232-1171098,1172027 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3:774578-796573 Propchange: cassandra/trunk/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:45:07 2011 @@ -1,11 +1,11 @@ /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009 -/cassandra/branches/cassandra-0.7/contrib:1026516-1170333 +/cassandra/branches/cassandra-0.7/contrib:1026516-1170333,1172024 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1171096 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1171096,1172026 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018 /cassandra/branches/cassandra-1.0/contrib:1167085-1171099 -/cassandra/branches/cassandra-1.0.0/contrib:1167104-1167229,1167232-1171098 +/cassandra/branches/cassandra-1.0.0/contrib:1167104-1167229,1167232-1171098,1172027 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1/contrib:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3/contrib:774578-796573 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Sep 17 17:45:07 2011 @@ -1,11 +1,11 @@ /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-1170333 +/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1170333,1172024 /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-1171096 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1171096,1172026 /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/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167085-1171099 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167104-1167229,1167232-1171098 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167104-1167229,1167232-1171098,1172027 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift
svn commit: r1175027 - in /cassandra/branches/cassandra-0.8: CHANGES.txt debian/cassandra.conf debian/init redhat/cassandra.conf
Author: brandonwilliams Date: Fri Sep 23 21:23:37 2011 New Revision: 1175027 URL: http://svn.apache.org/viewvc?rev=1175027view=rev Log: Increase FD limit to 100k in packaging. Patch by Paul Cannon, reviewed by brandonwilliams for CASSANDRA-3206 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/debian/cassandra.conf cassandra/branches/cassandra-0.8/debian/init cassandra/branches/cassandra-0.8/redhat/cassandra.conf Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1175027r1=1175026r2=1175027view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Sep 23 21:23:37 2011 @@ -4,6 +4,7 @@ * Log message when a full repair operation completes (CASSANDRA-3207) * Don't allow any cache loading exceptions to halt startup (CASSANDRA-3218) * Fix sstableloader --ignores option (CASSANDRA-3247) + * File descriptor limit increased in packaging (CASSANDRA-3206) 0.8.6 Modified: cassandra/branches/cassandra-0.8/debian/cassandra.conf URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/debian/cassandra.conf?rev=1175027r1=1175026r2=1175027view=diff == --- cassandra/branches/cassandra-0.8/debian/cassandra.conf (original) +++ cassandra/branches/cassandra-0.8/debian/cassandra.conf Fri Sep 23 21:23:37 2011 @@ -1,2 +1,3 @@ # Provided by the cassandra package cassandra - memlock unlimited +cassandra - nofile 10 Modified: cassandra/branches/cassandra-0.8/debian/init URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/debian/init?rev=1175027r1=1175026r2=1175027view=diff == --- cassandra/branches/cassandra-0.8/debian/init (original) +++ cassandra/branches/cassandra-0.8/debian/init Fri Sep 23 21:23:37 2011 @@ -22,6 +22,7 @@ CONFDIR=/etc/cassandra JSVC=/usr/bin/jsvc WAIT_FOR_START=10 CASSANDRA_HOME=/usr/share/cassandra +FD_LIMIT=10 # The first existing directory is used for JAVA_HOME if needed. JVM_SEARCH_DIRS=/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun @@ -127,6 +128,7 @@ do_start() is_running return 1 ulimit -l unlimited +ulimit -n $FD_LIMIT cassandra_home=`getent passwd cassandra | awk -F ':' '{ print $6; }'` cd /# jsvc doesn't chdir() for us Modified: cassandra/branches/cassandra-0.8/redhat/cassandra.conf URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/redhat/cassandra.conf?rev=1175027r1=1175026r2=1175027view=diff == --- cassandra/branches/cassandra-0.8/redhat/cassandra.conf (original) +++ cassandra/branches/cassandra-0.8/redhat/cassandra.conf Fri Sep 23 21:23:37 2011 @@ -1 +1,2 @@ cassandra - memlock unlimited +cassandra - nofile 10
svn commit: r1177083 - /cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
Author: brandonwilliams Date: Wed Sep 28 22:01:01 2011 New Revision: 1177083 URL: http://svn.apache.org/viewvc?rev=1177083view=rev Log: Pig storage handler implements LoadMetadata interface. Patch by brandonwilliams, reviewed by Jeremy Hanna for CASSANDRA-2777 Modified: cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Modified: cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java?rev=1177083r1=1177082r2=1177083view=diff == --- cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java (original) +++ cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Wed Sep 28 22:01:01 2011 @@ -31,7 +31,7 @@ import org.apache.commons.logging.LogFac import org.apache.cassandra.db.Column; import org.apache.cassandra.db.IColumn; import org.apache.cassandra.db.SuperColumn; -import org.apache.cassandra.db.marshal.AbstractType; +import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.hadoop.*; import org.apache.cassandra.thrift.Mutation; import org.apache.cassandra.thrift.Deletion; @@ -46,6 +46,7 @@ import org.apache.pig.*; import org.apache.pig.backend.executionengine.ExecException; import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit; import org.apache.pig.data.*; +import org.apache.pig.ResourceSchema.ResourceFieldSchema; import org.apache.pig.impl.logicalLayer.FrontendException; import org.apache.pig.impl.util.UDFContext; import org.apache.thrift.TDeserializer; @@ -61,7 +62,7 @@ import org.apache.thrift.transport.TTran * * A row from a standard CF will be returned as nested tuples: (key, ((name1, val1), (name2, val2))). */ -public class CassandraStorage extends LoadFunc implements StoreFuncInterface +public class CassandraStorage extends LoadFunc implements StoreFuncInterface, LoadMetadata { // system environment variables that can be set to configure connection info: // alternatively, Hadoop JobConf variables can be set using keys from ConfigHelper @@ -293,6 +294,103 @@ public class CassandraStorage extends Lo initSchema(loadSignature); } +public ResourceSchema getSchema(String location, Job job) throws IOException +{ +setLocation(location, job); +CfDef cfDef = getCfDef(loadSignature); + +if (cfDef.column_type.equals(Super)) +return null; +// top-level schema, no type +ResourceSchema schema = new ResourceSchema(); + +// add key +ResourceFieldSchema keyFieldSchema = new ResourceFieldSchema(); +keyFieldSchema.setName(key); +keyFieldSchema.setType(DataType.CHARARRAY); //TODO: get key type + +// will become the bag of tuples +ResourceFieldSchema bagFieldSchema = new ResourceFieldSchema(); +bagFieldSchema.setName(columns); +bagFieldSchema.setType(DataType.BAG); +ResourceSchema bagSchema = new ResourceSchema(); + + +ListAbstractType marshallers = getDefaultMarshallers(cfDef); +MapByteBuffer,AbstractType validators = getValidatorMap(cfDef); +ListResourceFieldSchema tupleFields = new ArrayListResourceFieldSchema(); + +// default comparator/validator +ResourceSchema innerTupleSchema = new ResourceSchema(); +ResourceFieldSchema tupleField = new ResourceFieldSchema(); +tupleField.setType(DataType.TUPLE); +tupleField.setSchema(innerTupleSchema); + +ResourceFieldSchema colSchema = new ResourceFieldSchema(); +colSchema.setName(name); +colSchema.setType(getPigType(marshallers.get(0))); +tupleFields.add(colSchema); + +ResourceFieldSchema valSchema = new ResourceFieldSchema(); +AbstractType validator = marshallers.get(1); +valSchema.setName(value); +valSchema.setType(getPigType(validator)); +tupleFields.add(valSchema); + +// defined validators/indexes +for (ColumnDef cdef : cfDef.column_metadata) +{ +colSchema = new ResourceFieldSchema(); +colSchema.setName(new String(cdef.getName())); +colSchema.setType(getPigType(marshallers.get(0))); +tupleFields.add(colSchema); + +valSchema = new ResourceFieldSchema(); +validator = validators.get(cdef.getName()); +if (validator == null) +validator = marshallers.get(1); +valSchema.setName(value); +valSchema.setType(getPigType(validator)); +tupleFields.add(valSchema); +} +innerTupleSchema.setFields(tupleFields.toArray(new
svn commit: r1177084 - /cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
Author: brandonwilliams Date: Wed Sep 28 22:01:08 2011 New Revision: 1177084 URL: http://svn.apache.org/viewvc?rev=1177084view=rev Log: Fix handling of integer types in pig. Patch by brandonwilliams, reviewed by Jeremy Hanna for CASSANDRA-2810 Modified: cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Modified: cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java?rev=1177084r1=1177083r2=1177084view=diff == --- cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java (original) +++ cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Wed Sep 28 22:01:08 2011 @@ -17,11 +17,13 @@ package org.apache.cassandra.hadoop.pig; import java.io.IOException; +import java.math.BigInteger; import java.nio.ByteBuffer; import java.util.*; import org.apache.cassandra.config.ConfigurationException; import org.apache.cassandra.db.marshal.BytesType; +import org.apache.cassandra.db.marshal.IntegerType; import org.apache.cassandra.db.marshal.TypeParser; import org.apache.cassandra.thrift.*; import org.apache.cassandra.utils.FBUtilities; @@ -143,18 +145,14 @@ public class CassandraStorage extends Lo ListAbstractType marshallers = getDefaultMarshallers(cfDef); MapByteBuffer,AbstractType validators = getValidatorMap(cfDef); +setTupleValue(pair, 0, marshallers.get(0).compose(name)); if (col instanceof Column) { // standard -pair.set(0, marshallers.get(0).compose(name)); if (validators.get(name) == null) -// Have to special case BytesType because compose returns a ByteBuffer -if (marshallers.get(1) instanceof BytesType) -pair.set(1, new DataByteArray(ByteBufferUtil.getArray(col.value(; -else -pair.set(1, marshallers.get(1).compose(col.value())); +setTupleValue(pair, 1, marshallers.get(1).compose(col.value())); else -pair.set(1, validators.get(name).compose(col.value())); +setTupleValue(pair, 1, validators.get(name).compose(col.value())); return pair; } @@ -167,6 +165,16 @@ public class CassandraStorage extends Lo return pair; } +private void setTupleValue(Tuple pair, int position, Object value) throws ExecException +{ + if (value instanceof BigInteger) + pair.set(position, ((BigInteger) value).intValue()); + else if (value instanceof ByteBuffer) + pair.set(position, new DataByteArray(ByteBufferUtil.getArray((ByteBuffer) value))); + else + pair.set(position, value); +} + private CfDef getCfDef(String signature) { UDFContext context = UDFContext.getUDFContext(); @@ -453,8 +461,6 @@ public class CassandraStorage extends Lo DefaultDataBag pairs = (DefaultDataBag) t.get(1); ArrayListMutation mutationList = new ArrayListMutation(); CfDef cfDef = getCfDef(storeSignature); -ListAbstractType marshallers = getDefaultMarshallers(cfDef); -MapByteBuffer,AbstractType validators = getValidatorMap(cfDef); try { for (Tuple pair : pairs) @@ -498,15 +504,8 @@ public class CassandraStorage extends Lo else { org.apache.cassandra.thrift.Column column = new org.apache.cassandra.thrift.Column(); - column.name = marshallers.get(0).decompose((pair.get(0))); - if (validators.get(column.name) == null) - // Have to special case BytesType to convert DataByteArray into ByteBuffer - if (marshallers.get(1) instanceof BytesType) - column.value = objToBB(pair.get(1)); - else - column.value = marshallers.get(1).decompose(pair.get(1)); - else - column.value = validators.get(column.name).decompose(pair.get(1)); + column.name = objToBB(pair.get(0)); + column.value = objToBB(pair.get(1)); column.setTimestamp(System.currentTimeMillis() * 1000); mutation.column_or_supercolumn = new ColumnOrSuperColumn(); mutation.column_or_supercolumn.column = column; @@ -626,3 +625,4 @@ public class CassandraStorage extends Lo return cfDef; } } +
svn commit: r1177810 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java
Author: brandonwilliams Date: Fri Sep 30 20:14:03 2011 New Revision: 1177810 URL: http://svn.apache.org/viewvc?rev=1177810view=rev Log: Flush system table after updating or removing tokens. Patch by brandonwilliams, reviewed by Ben Coverston for CASSANDRA-3243 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java?rev=1177810r1=1177809r2=1177810view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java Fri Sep 30 20:14:03 2011 @@ -113,6 +113,7 @@ public class SystemTable { throw new IOError(e); } +forceBlockingFlush(STATUS_CF); } /** @@ -131,6 +132,7 @@ public class SystemTable { throw new IOError(e); } +forceBlockingFlush(STATUS_CF); } /**
svn commit: r1177847 - in /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra: gms/Gossiper.java service/StorageService.java
Author: brandonwilliams Date: Fri Sep 30 21:44:10 2011 New Revision: 1177847 URL: http://svn.apache.org/viewvc?rev=1177847view=rev Log: Evict gossip state immediately when a token is taken over. Patch by vijay, reviewed by brandonwilliams for CASSANDRA-3259 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1177847r1=1177846r2=1177847view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java Fri Sep 30 21:44:10 2011 @@ -302,6 +302,17 @@ public class Gossiper implements IFailur } /** + * Remove the Endpoint and evict immediately, to avoid gossiping about this node. + * This should only be called when a token is taken over by a new IP address. + * @param endpoint The endpoint that has been replaced + */ +public void replacedEndpoint(InetAddress endpoint) +{ +removeEndpoint(endpoint); +evictFromMembership(endpoint); +} + +/** * The gossip digest is built based on randomization * rather than just looping through the collection of live endpoints. * Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java?rev=1177847r1=1177846r2=1177847view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Fri Sep 30 21:44:10 2011 @@ -841,7 +841,7 @@ public class StorageService implements I logger_.info(String.format(Nodes %s and %s have the same token %s. %s is the new owner, endpoint, currentOwner, token, endpoint)); tokenMetadata_.updateNormalToken(token, endpoint); -Gossiper.instance.removeEndpoint(currentOwner); +Gossiper.instance.replacedEndpoint(currentOwner); if (!isClientMode) SystemTable.updateToken(endpoint, token); } @@ -849,6 +849,7 @@ public class StorageService implements I { logger_.info(String.format(Nodes %s and %s have the same token %s. Ignoring %s, endpoint, currentOwner, token, endpoint)); +Gossiper.instance.replacedEndpoint(endpoint); } if (tokenMetadata_.isMoving(endpoint)) // if endpoint was moving to a new token
svn commit: r1178486 - in /cassandra/branches/cassandra-1.0.0: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/service/
Author: brandonwilliams Date: Mon Oct 3 18:11:48 2011 New Revision: 1178486 URL: http://svn.apache.org/viewvc?rev=1178486view=rev Log: Merge 3259 from 0.8 Modified: cassandra/branches/cassandra-1.0.0/ (props changed) cassandra/branches/cassandra-1.0.0/contrib/ (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/service/StorageService.java Propchange: cassandra/branches/cassandra-1.0.0/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Oct 3 18:11:48 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 /cassandra/branches/cassandra-0.7:1026516-1170333,1172024 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1177149,1177781,1177810,1178297,1178325 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1177149,1177781,1177810,1177847,1178297,1178325 /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 Propchange: cassandra/branches/cassandra-1.0.0/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Oct 3 18:11:48 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-1170333,1172024 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1177149,1177781,1177810,1178297,1178325 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1177149,1177781,1177810,1177847,1178297,1178325 /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 Propchange: cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Oct 3 18:11:48 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-1170333,1172024 /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-1177149,1177781,1177810,1178297,1178325 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1177149,1177781,1177810,1177847,1178297,1178325 /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/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Oct 3 18:11:48 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-1170333,1172024 /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-1177149,1177781,1177810,1178297,1178325 +/cassandra/branches/cassandra-0.8/interface
svn commit: r1178492 - /cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/Gossiper.java
Author: brandonwilliams Date: Mon Oct 3 18:20:24 2011 New Revision: 1178492 URL: http://svn.apache.org/viewvc?rev=1178492view=rev Log: Fix bad merge Modified: cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/Gossiper.java Modified: cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1178492r1=1178491r2=1178492view=diff == --- cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/Gossiper.java Mon Oct 3 18:20:24 2011 @@ -321,6 +321,17 @@ public class Gossiper implements IFailur } /** + * Remove the Endpoint and evict immediately, to avoid gossiping about this node. + * This should only be called when a token is taken over by a new IP address. + * @param endpoint The endpoint that has been replaced + */ +public void replacedEndpoint(InetAddress endpoint) +{ +removeEndpoint(endpoint); +evictFromMembership(endpoint); +} + +/** * The gossip digest is built based on randomization * rather than just looping through the collection of live endpoints. *
svn commit: r1178516 - in /cassandra/branches: cassandra-0.8/CHANGES.txt cassandra-1.0.0/CHANGES.txt
Author: brandonwilliams Date: Mon Oct 3 18:46:20 2011 New Revision: 1178516 URL: http://svn.apache.org/viewvc?rev=1178516view=rev Log: Update changes for 3259 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-1.0.0/CHANGES.txt Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1178516r1=1178515r2=1178516view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Mon Oct 3 18:46:20 2011 @@ -14,6 +14,7 @@ generates, as intended (CASSANDRA-3262) * fix Scrub compaction finishing (CASSANDRA-3255) * Fix tool .bat files when CASSANDRA_HOME contains spaces (CASSANDRA-3258) + * Evict gossip state immediately when a token is taken over by a new IP (CASSANDRA-3259) 0.8.6 Modified: cassandra/branches/cassandra-1.0.0/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/CHANGES.txt?rev=1178516r1=1178515r2=1178516view=diff == --- cassandra/branches/cassandra-1.0.0/CHANGES.txt (original) +++ cassandra/branches/cassandra-1.0.0/CHANGES.txt Mon Oct 3 18:46:20 2011 @@ -3,7 +3,7 @@ * Force flush of status table when removing/updating token (CASSANDRA-3243) * fix bug preventing obsolete commitlog segments from being removed (CASSANDRA-3269) - + * Evict gossip state immediately when a token is taken over by a new IP (CASSANDRA-3259) 1.0.0-rc2 * Log a meaningful warning when a node receives a message for a repair session
svn commit: r1178563 - in /cassandra/branches: cassandra-0.8/ cassandra-0.8/src/java/org/apache/cassandra/gms/ cassandra-1.0.0/ cassandra-1.0.0/src/java/org/apache/cassandra/gms/
Author: brandonwilliams Date: Mon Oct 3 20:36:35 2011 New Revision: 1178563 URL: http://svn.apache.org/viewvc?rev=1178563view=rev Log: Fix bug where the FailureDetector can take a very long time to mark a host down. Patch by brandonwilliams, reviewed by Paul Cannon for CASSANDRA-3273 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/IFailureDetector.java cassandra/branches/cassandra-1.0.0/CHANGES.txt cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/FailureDetector.java cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/Gossiper.java cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/gms/IFailureDetector.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1178563r1=1178562r2=1178563view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Mon Oct 3 20:36:35 2011 @@ -18,6 +18,8 @@ * (Hadoop) allow wrapping ranges in queries (CASSANDRA-3137) * (Hadoop) check all interfaces for a match with split location before falling back to random replica (CASSANDRA-3211) + * Fix bug where the failure detector can take too long to mark a host + down (CASSANDRA-3273) 0.8.6 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java?rev=1178563r1=1178562r2=1178563view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java Mon Oct 3 20:36:35 2011 @@ -121,7 +121,14 @@ public class FailureDetector implements logger_.error(unknown endpoint + ep); return epState != null epState.isAlive(); } - + +public void clear(InetAddress ep) +{ +ArrivalWindow heartbeatWindow = arrivalSamples_.get(ep); +if (heartbeatWindow != null) +heartbeatWindow.clear(); +} + public void report(InetAddress ep) { if (logger_.isTraceEnabled()) @@ -149,7 +156,9 @@ public class FailureDetector implements logger_.trace(PHI for + ep + : + phi); if ( phi phiConvictThreshold_ ) -{ +{ +logger_.trace(notifying listeners that {} is down, ep); +logger_.trace(intervals: {} mean: {}, hbWnd, hbWnd.mean()); for ( IFailureDetectionEventListener listener : fdEvntListeners_ ) { listener.convict(ep, phi); @@ -206,6 +215,11 @@ class ArrivalWindow // change. private final double PHI_FACTOR = 1.0 / Math.log(10.0); +// in the event of a long partition, never record an interval longer than the rpc timeout, +// since if a host is regularly experiencing connectivity problems lasting this long we'd +// rather mark it down quickly instead of adapting +private final double MAX_INTERVAL_IN_MS = DatabaseDescriptor.getRpcTimeout(); + ArrivalWindow(int size) { arrivalIntervals_ = new BoundedStatsDeque(size); @@ -216,14 +230,17 @@ class ArrivalWindow double interArrivalTime; if ( tLast_ 0L ) { -interArrivalTime = (value - tLast_); +interArrivalTime = (value - tLast_); } else { interArrivalTime = Gossiper.intervalInMillis / 2; } -tLast_ = value; -arrivalIntervals_.add(interArrivalTime); +if (interArrivalTime = MAX_INTERVAL_IN_MS) +arrivalIntervals_.add(interArrivalTime); +else +logger_.debug(Ignoring interval time of {}, interArrivalTime); +tLast_ = value; } synchronized double sum() Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1178563r1=1178562r2=1178563view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java Mon Oct 3 20:36:35 2011 @@ -665,6 +665,13 @@ public
svn commit: r1178571 - in /cassandra/branches: cassandra-0.8/test/unit/org/apache/cassandra/dht/BootStrapperTest.java cassandra-1.0.0/test/unit/org/apache/cassandra/dht/BootStrapperTest.java
Author: brandonwilliams Date: Mon Oct 3 20:49:32 2011 New Revision: 1178571 URL: http://svn.apache.org/viewvc?rev=1178571view=rev Log: Fix BootStrapperTest Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/dht/BootStrapperTest.java cassandra/branches/cassandra-1.0.0/test/unit/org/apache/cassandra/dht/BootStrapperTest.java Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/dht/BootStrapperTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/dht/BootStrapperTest.java?rev=1178571r1=1178570r2=1178571view=diff == --- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/dht/BootStrapperTest.java (original) +++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/dht/BootStrapperTest.java Mon Oct 3 20:49:32 2011 @@ -187,6 +187,7 @@ public class BootStrapperTest extends Cl public void registerFailureDetectionEventListener(IFailureDetectionEventListener listener) { throw new UnsupportedOperationException(); } public void unregisterFailureDetectionEventListener(IFailureDetectionEventListener listener) { throw new UnsupportedOperationException(); } public void remove(InetAddress ep) { throw new UnsupportedOperationException(); } +public void clear(InetAddress ep) { throw new UnsupportedOperationException(); } }; MultimapInetAddress, Range temp = BootStrapper.getWorkMap(res, mockFailureDetector); // there isn't any point in testing the size of these collections for any specific size. When a random partitioner Modified: cassandra/branches/cassandra-1.0.0/test/unit/org/apache/cassandra/dht/BootStrapperTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/test/unit/org/apache/cassandra/dht/BootStrapperTest.java?rev=1178571r1=1178570r2=1178571view=diff == --- cassandra/branches/cassandra-1.0.0/test/unit/org/apache/cassandra/dht/BootStrapperTest.java (original) +++ cassandra/branches/cassandra-1.0.0/test/unit/org/apache/cassandra/dht/BootStrapperTest.java Mon Oct 3 20:49:32 2011 @@ -187,6 +187,7 @@ public class BootStrapperTest extends Cl public void registerFailureDetectionEventListener(IFailureDetectionEventListener listener) { throw new UnsupportedOperationException(); } public void unregisterFailureDetectionEventListener(IFailureDetectionEventListener listener) { throw new UnsupportedOperationException(); } public void remove(InetAddress ep) { throw new UnsupportedOperationException(); } +public void clear(InetAddress ep) { throw new UnsupportedOperationException(); } }; MultimapInetAddress, Range temp = BootStrapper.getWorkMap(res, mockFailureDetector); // there isn't any point in testing the size of these collections for any specific size. When a random partitioner
svn commit: r1178833 - in /cassandra/branches/cassandra-1.0.0: CHANGES.txt conf/cassandra-env.sh
Author: brandonwilliams Date: Tue Oct 4 15:34:24 2011 New Revision: 1178833 URL: http://svn.apache.org/viewvc?rev=1178833view=rev Log: Change default heap thresholds to max(min(1/2 ram, 1G), min(1/4 ram, 8GB)). Patch by satishbabu, reviewed by brandonwilliams for CASSANDRA-3295 Modified: cassandra/branches/cassandra-1.0.0/CHANGES.txt cassandra/branches/cassandra-1.0.0/conf/cassandra-env.sh Modified: cassandra/branches/cassandra-1.0.0/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/CHANGES.txt?rev=1178833r1=1178832r2=1178833view=diff == --- cassandra/branches/cassandra-1.0.0/CHANGES.txt (original) +++ cassandra/branches/cassandra-1.0.0/CHANGES.txt Tue Oct 4 15:34:24 2011 @@ -11,6 +11,8 @@ * (Hadoop) check all interfaces for a match with split location before falling back to random replica (CASSANDRA-3211) * Fix stress COUNTER_GET option (CASSANDRA-3301) + * Change default heap thresholds to max(min(1/2 ram, 1G), min(1/4 ram, 8GB)) + (CASSANDRA-3295) 1.0.0-rc2 Modified: cassandra/branches/cassandra-1.0.0/conf/cassandra-env.sh URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/conf/cassandra-env.sh?rev=1178833r1=1178832r2=1178833view=diff == --- cassandra/branches/cassandra-1.0.0/conf/cassandra-env.sh (original) +++ cassandra/branches/cassandra-1.0.0/conf/cassandra-env.sh Tue Oct 4 15:34:24 2011 @@ -40,7 +40,28 @@ calculate_heap_sizes() system_cpu_cores=2 ;; esac -max_heap_size_in_mb=`expr $system_memory_in_mb / 2` + +# set max heap size based on the following +# max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB)) +# calculate 1/2 ram and cap to 1024MB +# calculate 1/4 ram and cap to 8192MB +# pick the max +half_system_memory_in_mb=`expr $system_memory_in_mb / 2` +quarter_system_memory_in_mb=`expr $half_system_memory_in_mb / 2` +if [ $half_system_memory_in_mb -gt 1024 ] +then +half_system_memory_in_mb=1024 +fi +if [ $quarter_system_memory_in_mb -gt 8192 ] +then +quarter_system_memory_in_mb=8192 +fi +if [ $half_system_memory_in_mb -gt $quarter_system_memory_in_mb ] +then +max_heap_size_in_mb=$half_system_memory_in_mb +else +max_heap_size_in_mb=$quarter_system_memory_in_mb +fi MAX_HEAP_SIZE=${max_heap_size_in_mb}M # Young gen: min(max_sensible_per_modern_cpu_core * num_cores, 1/4 * heap size)
svn commit: r1178957 - in /cassandra/branches: cassandra-0.8/CHANGES.txt cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java cassandra-1.0.0/CHANGES.txt cassandra-1.0.0/src/java/org/apache/
Author: brandonwilliams Date: Tue Oct 4 21:20:41 2011 New Revision: 1178957 URL: http://svn.apache.org/viewvc?rev=1178957view=rev Log: Nodetool closes JMX connections to avoid leaking timer threads. Patch by vijay, reviewed by brandonwilliams for CASSANDRA-3309 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java cassandra/branches/cassandra-1.0.0/CHANGES.txt cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/tools/NodeCmd.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1178957r1=1178956r2=1178957view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Oct 4 21:20:41 2011 @@ -21,6 +21,7 @@ * Fix bug where the failure detector can take too long to mark a host down (CASSANDRA-3273) * Fix stress COUNTER_GET option (CASSANDRA-3301) + * Nodetool no longer leaks threads and closes JMX connections (CASSANDRA-3309) 0.8.6 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1178957r1=1178956r2=1178957view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Tue Oct 4 21:20:41 2011 @@ -585,132 +585,145 @@ public class NodeCmd { err(ioe, Error connection to remote JMX agent!); } - -NodeCommand command = null; - try { -command = cmd.getCommand(); -} -catch (IllegalArgumentException e) -{ -badUse(e.getMessage()); -} - +NodeCommand command = null; -NodeCmd nodeCmd = new NodeCmd(probe); - -// Execute the requested command. -String[] arguments = cmd.getCommandArguments(); +try +{ +command = cmd.getCommand(); +} +catch (IllegalArgumentException e) +{ +badUse(e.getMessage()); +} -switch (command) -{ -case RING: nodeCmd.printRing(System.out); break; -case INFO: nodeCmd.printInfo(System.out); break; -case CFSTATS : nodeCmd.printColumnFamilyStats(System.out); break; -case DECOMMISSION: probe.decommission(); break; -case TPSTATS : nodeCmd.printThreadPoolStats(System.out); break; -case VERSION : nodeCmd.printReleaseVersion(System.out); break; -case COMPACTIONSTATS : nodeCmd.printCompactionStats(System.out); break; -case DISABLEGOSSIP : probe.stopGossiping(); break; -case ENABLEGOSSIP: probe.startGossiping(); break; -case DISABLETHRIFT : probe.stopThriftServer(); break; -case ENABLETHRIFT: probe.startThriftServer(); break; -case STATUSTHRIFT: nodeCmd.printIsThriftServerRunning(System.out); break; -case DRAIN : -try { probe.drain(); } -catch (ExecutionException ee) { err(ee, Error occured during flushing); } -break; +NodeCmd nodeCmd = new NodeCmd(probe); -case NETSTATS : -if (arguments.length 0) { nodeCmd.printNetworkStats(InetAddress.getByName(arguments[0]), System.out); } -else { nodeCmd.printNetworkStats(null, System.out); } -break; +// Execute the requested command. +String[] arguments = cmd.getCommandArguments(); -case SNAPSHOT : -case CLEARSNAPSHOT : -String tag = cmd.getOptionValue(TAG_OPT.left); -handleSnapshots(command, tag, arguments, probe); -break; +switch (command) +{ +case RING: nodeCmd.printRing(System.out); break; +case INFO: nodeCmd.printInfo(System.out); break; +case CFSTATS : nodeCmd.printColumnFamilyStats(System.out); break; +case DECOMMISSION: probe.decommission(); break; +case TPSTATS : nodeCmd.printThreadPoolStats(System.out); break; +case VERSION : nodeCmd.printReleaseVersion(System.out); break; +case COMPACTIONSTATS : nodeCmd.printCompactionStats(System.out); break; +case DISABLEGOSSIP : probe.stopGossiping(); break
svn commit: r1179384 - in /cassandra/branches/cassandra-1.0.0: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/
Author: brandonwilliams Date: Wed Oct 5 19:00:05 2011 New Revision: 1179384 URL: http://svn.apache.org/viewvc?rev=1179384view=rev Log: Merge 3309 Modified: cassandra/branches/cassandra-1.0.0/ (props changed) cassandra/branches/cassandra-1.0.0/contrib/ (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) Propchange: cassandra/branches/cassandra-1.0.0/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Oct 5 19:00:05 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 /cassandra/branches/cassandra-0.7:1026516-1170333,1172024 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1178554,1178785,1179359,1179364 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1178554,1178785,1178957,1179359,1179364 /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 Propchange: cassandra/branches/cassandra-1.0.0/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Oct 5 19:00:05 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-1170333,1172024 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1178554,1178785,1179359,1179364 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1178554,1178785,1178957,1179359,1179364 /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 Propchange: cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Oct 5 19:00:05 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-1170333,1172024 /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-1178554,1178785,1179359,1179364 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1178554,1178785,1178957,1179359,1179364 /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/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Oct 5 19:00:05 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-1170333,1172024 /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-1178554,1178785,1179359,1179364 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1178554,1178785,1178957,1179359,1179364 /cassandra/branches/cassandra-0.8.0
svn commit: r1180277 - in /cassandra/branches/cassandra-1.0.0: conf/cassandra.yaml src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Author: brandonwilliams Date: Fri Oct 7 23:21:26 2011 New Revision: 1180277 URL: http://svn.apache.org/viewvc?rev=1180277view=rev Log: Bump hsha threads to cores * 4 Modified: cassandra/branches/cassandra-1.0.0/conf/cassandra.yaml cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Modified: cassandra/branches/cassandra-1.0.0/conf/cassandra.yaml URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/conf/cassandra.yaml?rev=1180277r1=1180276r2=1180277view=diff == --- cassandra/branches/cassandra-1.0.0/conf/cassandra.yaml (original) +++ cassandra/branches/cassandra-1.0.0/conf/cassandra.yaml Fri Oct 7 23:21:26 2011 @@ -219,7 +219,8 @@ rpc_server_type: sync # disconnects before accepting more. The defaults for sync are min of 16 and max # unlimited. # -# For the Hsha server, the min and max both default to the number of CPU cores. +# For the Hsha server, the min and max both default to quadruple the number of +# CPU cores. # # This configuration is ignored by the async server. # Modified: cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1180277r1=1180276r2=1180277view=diff == --- cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original) +++ cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Fri Oct 7 23:21:26 2011 @@ -367,7 +367,7 @@ public class DatabaseDescriptor throw new ConfigurationException(Unknown rpc_server_type: + conf.rpc_server_type); if (conf.rpc_min_threads == null) conf.rpc_min_threads = conf.rpc_server_type.toLowerCase().equals(hsha) - ? Runtime.getRuntime().availableProcessors() + ? Runtime.getRuntime().availableProcessors() * 4 : 16; if (conf.rpc_max_threads == null) conf.rpc_max_threads = conf.rpc_server_type.toLowerCase().equals(hsha)
svn commit: r1181816 - /cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Author: brandonwilliams Date: Tue Oct 11 14:51:08 2011 New Revision: 1181816 URL: http://svn.apache.org/viewvc?rev=1181816view=rev Log: Fix hsha pool size Modified: cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Modified: cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1181816r1=1181815r2=1181816view=diff == --- cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original) +++ cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Tue Oct 11 14:51:08 2011 @@ -371,7 +371,7 @@ public class DatabaseDescriptor : 16; if (conf.rpc_max_threads == null) conf.rpc_max_threads = conf.rpc_server_type.toLowerCase().equals(hsha) - ? Runtime.getRuntime().availableProcessors() + ? Runtime.getRuntime().availableProcessors() * 4 : Integer.MAX_VALUE; /* data file and commit log directories. they get created later, when they're needed. */
svn commit: r1182456 - /cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra
Author: brandonwilliams Date: Wed Oct 12 16:12:44 2011 New Revision: 1182456 URL: http://svn.apache.org/viewvc?rev=1182456view=rev Log: Fix pig script to only pick up a single pig jar. Patch by Brian Oneill, reviewed by brandonwilliams for CASSANDRA-3320 Modified: cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra Modified: cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra?rev=1182456r1=1182455r2=1182456view=diff == --- cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra (original) +++ cassandra/branches/cassandra-0.8/contrib/pig/bin/pig_cassandra Wed Oct 12 16:12:44 2011 @@ -38,11 +38,15 @@ if [ x$PIG_HOME = x ]; then fi # pig jar. -PIG_JAR=$PIG_HOME/pig*.jar +for jar in $PIG_HOME/*.jar; do + PIG_JAR=$jar +done +echo Using $PIG_JAR. if [ ! -e $PIG_JAR ]; then echo Unable to locate Pig jar 2 exit 1 fi + CLASSPATH=$CLASSPATH:$PIG_JAR export PIG_CLASSPATH=$PIG_CLASSPATH:$CLASSPATH
svn commit: r1182457 - in /cassandra/branches/cassandra-1.0: src/java/org/apache/cassandra/gms/ src/java/org/apache/cassandra/service/ test/unit/org/apache/cassandra/service/
Author: brandonwilliams Date: Wed Oct 12 16:17:02 2011 New Revision: 1182457 URL: http://svn.apache.org/viewvc?rev=1182457view=rev Log: Expire dead gossip states based on time. Patch by Jérémy Sevellec, reviewed by Paul Cannon and brandonwilliams for CASSANDRA-2961 Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/VersionedValue.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1182457r1=1182456r2=1182457view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java Wed Oct 12 16:17:02 2011 @@ -75,7 +75,7 @@ public class Gossiper implements IFailur private static Logger logger = LoggerFactory.getLogger(Gossiper.class); public static final Gossiper instance = new Gossiper(); -private long aVeryLongTime; +public static final long aVeryLongTime = 259200 * 1000; // 3 days private long FatClientTimeout; private Random random = new Random(); private ComparatorInetAddress inetcomparator = new ComparatorInetAddress() @@ -107,6 +107,8 @@ public class Gossiper implements IFailur * gossip gets propagated to all nodes */ private MapInetAddress, Long justRemovedEndpoints = new ConcurrentHashMapInetAddress, Long(); +private MapInetAddress, Long expireTimeEndpointMap = new ConcurrentHashMapInetAddress, Long(); + // protocol versions of the other nodes in the cluster private final ConcurrentMapInetAddress, Integer versions = new NonBlockingHashMapInetAddress, Integer(); @@ -174,8 +176,6 @@ public class Gossiper implements IFailur private Gossiper() { -// 3 days -aVeryLongTime = 259200 * 1000; // half of QUARATINE_DELAY, to ensure justRemovedEndpoints has enough leeway to prevent re-gossip FatClientTimeout = (long)(QUARANTINE_DELAY / 2); /* register with the Failure Detector for receiving Failure detector events */ @@ -296,6 +296,7 @@ public class Gossiper implements IFailur { unreachableEndpoints.remove(endpoint); endpointStateMap.remove(endpoint); +expireTimeEndpointMap.remove(endpoint); justRemovedEndpoints.put(endpoint, System.currentTimeMillis()); if (logger.isDebugEnabled()) logger.debug(evicting + endpoint + from gossip); @@ -417,7 +418,7 @@ public class Gossiper implements IFailur EndpointState epState = endpointStateMap.get(endpoint); epState.updateTimestamp(); // make sure we don't evict it too soon epState.getHeartBeatState().forceNewerGenerationUnsafe(); -epState.addApplicationState(ApplicationState.STATUS, StorageService.instance.valueFactory.removedNonlocal(token)); +epState.addApplicationState(ApplicationState.STATUS, StorageService.instance.valueFactory.removedNonlocal(token,computeExpireTime())); logger.info(Completing removal of + endpoint); endpointStateMap.put(endpoint, epState); // ensure at least one gossip round occurs before returning @@ -572,8 +573,14 @@ public class Gossiper implements IFailur evictFromMembership(endpoint); // can get rid of the state immediately } -if ( !epState.isAlive() (duration aVeryLongTime) (!StorageService.instance.getTokenMetadata().isMember(endpoint))) +long expireTime = getExpireTimeForEndpoint(endpoint); +if (!epState.isAlive() (now expireTime) + (!StorageService.instance.getTokenMetadata().isMember(endpoint))) { +if (logger.isDebugEnabled()) +{ +logger.debug(time is expiring for endpoint : + endpoint + ( + expireTime + )); +} evictFromMembership(endpoint); } } @@ -592,6 +599,17 @@ public class Gossiper implements IFailur } } } + +protected long getExpireTimeForEndpoint(InetAddress endpoint) +{ +/* default expireTime is aVeryLongTime */ +long expireTime = computeExpireTime(); +if (expireTimeEndpointMap.containsKey(endpoint)) +{ +expireTime = expireTimeEndpointMap.get(endpoint); +} +return expireTime; +} public EndpointState
svn commit: r1182458 - /cassandra/branches/cassandra-1.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
Author: brandonwilliams Date: Wed Oct 12 16:21:19 2011 New Revision: 1182458 URL: http://svn.apache.org/viewvc?rev=1182458view=rev Log: Fix pig build after FBU-Hex move. Patch by Brian Oneill reviewed by brandonwilliams for CASSANDRA-3341 Modified: cassandra/branches/cassandra-1.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Modified: cassandra/branches/cassandra-1.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java?rev=1182458r1=1182457r2=1182458view=diff == --- cassandra/branches/cassandra-1.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java (original) +++ cassandra/branches/cassandra-1.0/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Wed Oct 12 16:21:19 2011 @@ -26,7 +26,7 @@ import org.apache.cassandra.db.marshal.B import org.apache.cassandra.db.marshal.IntegerType; import org.apache.cassandra.db.marshal.TypeParser; import org.apache.cassandra.thrift.*; -import org.apache.cassandra.utils.FBUtilities; +import org.apache.cassandra.utils.Hex; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -601,7 +601,7 @@ public class CassandraStorage extends Lo TSerializer serializer = new TSerializer(new TBinaryProtocol.Factory()); try { -return FBUtilities.bytesToHex(serializer.serialize(cfDef)); +return Hex.bytesToHex(serializer.serialize(cfDef)); } catch (TException e) { @@ -616,7 +616,7 @@ public class CassandraStorage extends Lo CfDef cfDef = new CfDef(); try { -deserializer.deserialize(cfDef, FBUtilities.hexToBytes(st)); +deserializer.deserialize(cfDef, Hex.hexToBytes(st)); } catch (TException e) {
svn commit: r1182463 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java
Author: brandonwilliams Date: Wed Oct 12 16:25:00 2011 New Revision: 1182463 URL: http://svn.apache.org/viewvc?rev=1182463view=rev Log: Skip empty rows when slicing the entire row. Patch by Jeremy Hanna and brandonwilliams, reviewed by Jeremy Hanna for CASSANDRA-2855 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1182463r1=1182462r2=1182463view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Wed Oct 12 16:25:00 2011 @@ -4,6 +4,7 @@ * (CQL) update grammar to require key clause in DELETE statement (CASSANDRA-3349) * (CQL) allow numeric keyspace names in USE statement (CASSANDRA-3350) + * (Hadoop) skip empty rows when slicing the entire row (CASSANDRA-2855) 0.8.7 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java?rev=1182463r1=1182462r2=1182463view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordReader.java Wed Oct 12 16:25:00 2011 @@ -98,7 +98,7 @@ public class ColumnFamilyRecordReader ex batchRowCount = ConfigHelper.getRangeBatchSize(conf); cfName = ConfigHelper.getInputColumnFamily(conf); consistencyLevel = ConsistencyLevel.valueOf(ConfigHelper.getReadConsistencyLevel(conf)); - + keyspace = ConfigHelper.getInputKeyspace(conf); @@ -257,14 +257,24 @@ public class ColumnFamilyRecordReader ex rows = null; return; } - -// reset to iterate through this new batch -i = 0; + +// Pre-compute the last row key, before removing empty rows +ByteBuffer lastRowKey = rows.get(rows.size() - 1).key; + +// only remove empty rows if the slice predicate is empty +if (isPredicateEmpty(predicate)) +{ +IteratorKeySlice rowsIterator = rows.iterator(); +while (rowsIterator.hasNext()) +if (rowsIterator.next().columns.isEmpty()) +rowsIterator.remove(); +} +// reset to iterate through the new batch +i = 0; + // prepare for the next slice to be read -KeySlice lastRow = rows.get(rows.size() - 1); -ByteBuffer rowkey = lastRow.key; -startToken = partitioner.getTokenFactory().toString(partitioner.getToken(rowkey)); +startToken = partitioner.getTokenFactory().toString(partitioner.getToken(lastRowKey)); } catch (Exception e) { @@ -339,4 +349,16 @@ public class ColumnFamilyRecordReader ex return sc; } } + +private boolean isPredicateEmpty(SlicePredicate predicate) +{ +if (predicate != null) +if (predicate.isSetSlice_range()) +if (predicate.getSlice_range().getStart() != null predicate.getSlice_range().getFinish() != null) +return false; +else if (predicate.isSetColumn_names()) +return false; + +return true; +} }
svn commit: r1183489 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java
Author: brandonwilliams Date: Fri Oct 14 20:27:43 2011 New Revision: 1183489 URL: http://svn.apache.org/viewvc?rev=1183489view=rev Log: Make CFIF use rpc_endpoint prior to trying endpoint. Patch by Eldon Stegall and Scott Fines, reviewed by brandonwilliams for CASSANDRA-3214 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1183489r1=1183488r2=1183489view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Oct 14 20:27:43 2011 @@ -10,6 +10,8 @@ * Display CLI version string on startup (CASSANDRA-3196) * Only count compaction as active (for throttling) when they have successfully acquired the compaction lock (CASSANDRA-3344) + * (Hadoop) make CFIF try rpc_address or fallback to listen_address + (CASSANDRA-3214) 0.8.7 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java?rev=1183489r1=1183488r2=1183489view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java Fri Oct 14 20:27:43 2011 @@ -188,13 +188,17 @@ public class ColumnFamilyInputFormat ext { ArrayListInputSplit splits = new ArrayListInputSplit(); ListString tokens = getSubSplits(keyspace, cfName, range, conf); - +assert range.rpc_endpoints.size() == range.endpoints.size() : rpc_endpoints size must match endpoints size; // turn the sub-ranges into InputSplits String[] endpoints = range.endpoints.toArray(new String[range.endpoints.size()]); // hadoop needs hostname, not ip -for (int i = 0; i endpoints.length; i++) +int endpointIndex = 0; +for (String endpoint: range.rpc_endpoints) { -endpoints[i] = InetAddress.getByName(endpoints[i]).getHostName(); +String endpoint_address = endpoint; + if(endpoint_address == null || endpoint_address == 0.0.0.0) + endpoint_address = range.endpoints.get(endpointIndex); + endpoints[endpointIndex++] = InetAddress.getByName(endpoint_address).getHostName(); } for (int i = 1; i tokens.size(); i++) @@ -210,7 +214,7 @@ public class ColumnFamilyInputFormat ext private ListString getSubSplits(String keyspace, String cfName, TokenRange range, Configuration conf) throws IOException { int splitsize = ConfigHelper.getInputSplitSize(conf); -for (String host : range.endpoints) +for (String host : range.rpc_endpoints) { try {
svn commit: r1183506 - in /cassandra/branches/cassandra-0.8: ./ contrib/pig/src/java/org/apache/cassandra/hadoop/pig/ src/java/org/apache/cassandra/client/ src/java/org/apache/cassandra/hadoop/ test/d
Author: brandonwilliams Date: Fri Oct 14 21:22:14 2011 New Revision: 1183506 URL: http://svn.apache.org/viewvc?rev=1183506view=rev Log: Unify hadoop support for accept CDL for initial thrift address Patch by Eldon Stegall, reviewed by brandonwilliams for CASSANDRA-3185 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/client/RingCache.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ConfigHelper.java cassandra/branches/cassandra-0.8/test/distributed/org/apache/cassandra/TestBase.java cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/client/TestRingCache.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1183506r1=1183505r2=1183506view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Oct 14 21:22:14 2011 @@ -12,6 +12,8 @@ successfully acquired the compaction lock (CASSANDRA-3344) * (Hadoop) make CFIF try rpc_address or fallback to listen_address (CASSANDRA-3214) + * (Hadoop) accept comma delimited lists of initial thrift connections + (CASSANDRA-3185) 0.8.7 Modified: cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java?rev=1183506r1=1183505r2=1183506view=diff == --- cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java (original) +++ cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Fri Oct 14 21:22:14 2011 @@ -545,7 +545,7 @@ public class CassandraStorage extends Lo Cassandra.Client client = null; try { -client = createConnection(ConfigHelper.getInitialAddress(conf), ConfigHelper.getRpcPort(conf), true); +client = ConfigHelper.getClientFromAddressList(conf); CfDef cfDef = null; client.set_keyspace(keyspace); KsDef ksDef = client.describe_keyspace(keyspace); @@ -579,21 +579,6 @@ public class CassandraStorage extends Lo } } -private static Cassandra.Client createConnection(String host, Integer port, boolean framed) throws IOException -{ -TSocket socket = new TSocket(host, port); -TTransport trans = framed ? new TFramedTransport(socket) : socket; -try -{ -trans.open(); -} -catch (TTransportException e) -{ -throw new IOException(unable to connect to server, e); -} -return new Cassandra.Client(new TBinaryProtocol(trans)); -} - private static String cfdefToString(CfDef cfDef) { assert cfDef != null; Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/client/RingCache.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/client/RingCache.java?rev=1183506r1=1183505r2=1183506view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/client/RingCache.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/client/RingCache.java Fri Oct 14 21:22:14 2011 @@ -21,25 +21,22 @@ import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.ByteBuffer; -import java.util.HashSet; import java.util.List; -import java.util.Set; - -import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.Multimap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; +import org.apache.cassandra.hadoop.ConfigHelper; import org.apache.cassandra.thrift.Cassandra; import org.apache.cassandra.thrift.InvalidRequestException; import org.apache.cassandra.thrift.TokenRange; +import org.apache.hadoop.conf.Configuration; import org.apache.thrift.TException; -import org.apache.cassandra.thrift.TBinaryProtocol; -import org.apache.thrift.transport.TFramedTransport; -import
svn commit: r1183518 - in /cassandra/branches/cassandra-0.8: CHANGES.txt contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java
Author: brandonwilliams Date: Fri Oct 14 21:57:29 2011 New Revision: 1183518 URL: http://svn.apache.org/viewvc?rev=1183518view=rev Log: Add 0.8+ types and key validation type to pig schema. Patch by Steeve Morin, reviewed by brandonwilliams for CASSANDRA-3280 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1183518r1=1183517r2=1183518view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Oct 14 21:57:29 2011 @@ -15,6 +15,8 @@ * (Hadoop) accept comma delimited lists of initial thrift connections (CASSANDRA-3185) * ColumnFamily min_compaction_threshold should be = 2 (CASSANDRA-3342) + * (Pig) add 0.8+ types and key validation type in schema (CASSANDRA-3280) + 0.8.7 * Kill server on wrapped OOME such as from FileChannel.map (CASSANDRA-3201) Modified: cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java?rev=1183518r1=1183517r2=1183518view=diff == --- cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java (original) +++ cassandra/branches/cassandra-0.8/contrib/pig/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java Fri Oct 14 21:57:29 2011 @@ -107,7 +107,7 @@ public class CassandraStorage extends Lo return limit; } - @Override +@Override public Tuple getNext() throws IOException { try @@ -122,7 +122,7 @@ public class CassandraStorage extends Lo assert key != null cf != null; // and wrap it in a tuple - Tuple tuple = TupleFactory.getInstance().newTuple(2); +Tuple tuple = TupleFactory.getInstance().newTuple(2); ArrayListTuple columns = new ArrayListTuple(); tuple.set(0, new DataByteArray(key.array(), key.position()+key.arrayOffset(), key.limit()+key.arrayOffset())); for (Map.EntryByteBuffer, IColumn entry : cf.entrySet()) @@ -187,10 +187,12 @@ public class CassandraStorage extends Lo ArrayListAbstractType marshallers = new ArrayListAbstractType(); AbstractType comparator = null; AbstractType default_validator = null; +AbstractType key_validator = null; try { -comparator = TypeParser.parse(cfDef.comparator_type); -default_validator = TypeParser.parse(cfDef.default_validation_class); +comparator = TypeParser.parse(cfDef.getComparator_type()); +default_validator = TypeParser.parse(cfDef.getDefault_validation_class()); +key_validator = TypeParser.parse(cfDef.getKey_validation_class()); } catch (ConfigurationException e) { @@ -199,13 +201,14 @@ public class CassandraStorage extends Lo marshallers.add(comparator); marshallers.add(default_validator); +marshallers.add(key_validator); return marshallers; } -private MapByteBuffer,AbstractType getValidatorMap(CfDef cfDef) throws IOException +private MapByteBuffer, AbstractType getValidatorMap(CfDef cfDef) throws IOException { MapByteBuffer, AbstractType validators = new HashMapByteBuffer, AbstractType(); -for (ColumnDef cd : cfDef.column_metadata) +for (ColumnDef cd : cfDef.getColumn_metadata()) { if (cd.getValidation_class() != null !cd.getValidation_class().isEmpty()) { @@ -236,6 +239,18 @@ public class CassandraStorage extends Lo this.reader = reader; } +public static MapString, String getQueryMap(String query) +{ +String[] params = query.split(); +MapString, String map = new HashMapString, String(); +for (String param : params) +{ +String[] keyValue = param.split(=); +map.put(keyValue[0], keyValue[1]); +} +return map; +} + private void setLocationFromUri(String location) throws IOException { // parse uri into keyspace and columnfamily @@ -247,18 +262,18 @@ public class CassandraStorage extends Lo String[] urlParts = location.split(\\?); if (urlParts.length 1) { -for (String param : urlParts[1].split()) -{ -String[] pair = param.split(=); -if (pair[0].equals(slice_start
svn commit: r1185292 - in /cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra: db/compaction/LeveledCompactionStrategy.java db/compaction/LeveledCompactionTask.java io/compress/Compression
Author: brandonwilliams Date: Mon Oct 17 17:19:10 2011 New Revision: 1185292 URL: http://svn.apache.org/viewvc?rev=1185292view=rev Log: Use long math in compaction/compression. Patch by Dave Brosius, reviewed by brandonwilliams for CASSANDRA-3364 Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java?rev=1185292r1=1185291r2=1185292view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java Mon Oct 17 17:19:10 2011 @@ -154,7 +154,7 @@ public class LeveledCompactionStrategy e public long getMaxSSTableSize() { -return maxSSTableSizeInMB * 1024 * 1024; +return maxSSTableSizeInMB * 1024L * 1024L; } public boolean isKeyExistenceExpensive(Set? extends SSTable sstablesToIgnore) Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java?rev=1185292r1=1185291r2=1185292view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java Mon Oct 17 17:19:10 2011 @@ -65,7 +65,7 @@ public class LeveledCompactionTask exten @Override protected boolean newSSTableSegmentThresholdReached(SSTableWriter writer, long position) { -return position sstableSizeInMB * 1024 * 1024; +return position sstableSizeInMB * 1024L * 1024L; } @Override Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java?rev=1185292r1=1185291r2=1185292view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java Mon Oct 17 17:19:10 2011 @@ -199,7 +199,7 @@ public class CompressionMetadata seek(dataLengthOffset + 8 // size reserved for uncompressed data length + 4 // size reserved for chunk count - + (chunkIndex * 8)); + + (chunkIndex * 8L)); try { @@ -221,7 +221,7 @@ public class CompressionMetadata seek(dataLengthOffset + 8 // size reserved for uncompressed data length + 4 // size reserved for chunk count - + (chunkIndex * 8)); + + (chunkIndex * 8L)); getChannel().truncate(getFilePointer()); } }
svn commit: r1185294 - /cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
Author: brandonwilliams Date: Mon Oct 17 17:21:23 2011 New Revision: 1185294 URL: http://svn.apache.org/viewvc?rev=1185294view=rev Log: Don't stutter exception message when failing to unregister CFS mbean. Patch by Dave Brosius, reviewed by brandonwilliams for CASSANDRA-3365 Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1185294r1=1185293r2=1185294view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Mon Oct 17 17:21:23 2011 @@ -256,7 +256,7 @@ public class ColumnFamilyStore implement catch (Exception e) { // this shouldn't block anything. -logger.warn(e.getMessage(), e); +logger.warn(Failed unregistering mbean: + mbeanName, e); } }
svn commit: r1185757 - /cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java
Author: brandonwilliams Date: Tue Oct 18 17:04:56 2011 New Revision: 1185757 URL: http://svn.apache.org/viewvc?rev=1185757view=rev Log: HHOM only sleeps for rounded intervals to prevent problems on windows. Patch by Flavio Baronti, reviewed by brandonwilliams for CASSANDRA-3375 Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java?rev=1185757r1=1185756r2=1185757view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java Tue Oct 18 17:04:56 2011 @@ -236,7 +236,7 @@ public class HintedHandOffManager implem // sleep a random amount to stagger handoff delivery from different replicas. // (if we had to wait, then gossiper randomness took care of that for us already.) if (waited == 0) { -int sleep = FBUtilities.threadLocalRandom().nextInt(6); +int sleep = FBUtilities.threadLocalRandom().nextInt(2000) * 30; logger_.debug(Sleeping {}ms to stagger hint delivery, sleep); Thread.sleep(sleep); }
svn commit: r1185760 - /cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java
Author: brandonwilliams Date: Tue Oct 18 17:15:55 2011 New Revision: 1185760 URL: http://svn.apache.org/viewvc?rev=1185760view=rev Log: add comment to explain 3375 Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java?rev=1185760r1=1185759r2=1185760view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/HintedHandOffManager.java Tue Oct 18 17:15:55 2011 @@ -236,6 +236,7 @@ public class HintedHandOffManager implem // sleep a random amount to stagger handoff delivery from different replicas. // (if we had to wait, then gossiper randomness took care of that for us already.) if (waited == 0) { +// use a 'rounded' sleep interval because of a strange bug with windows: CASSANDRA-3375 int sleep = FBUtilities.threadLocalRandom().nextInt(2000) * 30; logger_.debug(Sleeping {}ms to stagger hint delivery, sleep); Thread.sleep(sleep);
svn commit: r1187578 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/gms/Gossiper.java
Author: brandonwilliams Date: Fri Oct 21 22:21:54 2011 New Revision: 1187578 URL: http://svn.apache.org/viewvc?rev=1187578view=rev Log: Prevent nodes that failed to join from being stuck in the joining state indefinitely. Patch by brandonwilliams, reviewed by Paul Cannon for CASSANDRA-3351 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1187578r1=1187577r2=1187578view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Oct 21 22:21:54 2011 @@ -29,6 +29,7 @@ * fix assertionError during repair with ordered partitioners (CASSANDRA-3369) * correctly serialize key_validation_class for avro (CASSANDRA-3391) * don't expire counter tombstone after streaming (CASSANDRA-3394) + * prevent nodes that failed to join from hanging around forever (CASSANDRA-3351) 0.8.7 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1187578r1=1187577r2=1187578view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java Fri Oct 21 22:21:54 2011 @@ -541,15 +541,18 @@ public class Gossiper implements IFailur { long duration = now - epState.getUpdateTimestamp(); -if (StorageService.instance.getTokenMetadata().isMember(endpoint)) -epState.setHasToken(true); // check if this is a fat client. fat clients are removed automatically from // gosip after FatClientTimeout if (!epState.hasToken() !epState.isAlive() !justRemovedEndpoints.containsKey(endpoint) (duration FatClientTimeout)) { -logger.info(FatClient + endpoint + has been silent for + FatClientTimeout + ms, removing from gossip); -removeEndpoint(endpoint); // will put it in justRemovedEndpoints to respect quarantine delay -evictFromMembership(endpoint); // can get rid of the state immediately +if (StorageService.instance.getTokenMetadata().isMember(endpoint)) +epState.setHasToken(true); +else +{ +logger.info(FatClient + endpoint + has been silent for + FatClientTimeout + ms, removing from gossip); +removeEndpoint(endpoint); // will put it in justRemovedEndpoints to respect quarantine delay +evictFromMembership(endpoint); // can get rid of the state immediately +} } if ( !epState.isAlive() (duration aVeryLongTime) (!StorageService.instance.getTokenMetadata().isMember(endpoint))) @@ -728,7 +731,7 @@ public class Gossiper implements IFailur */ private void handleMajorStateChange(InetAddress ep, EndpointState epState) { -if (epState.getApplicationState(ApplicationState.STATUS) != null !isDeadState(epState.getApplicationState(ApplicationState.STATUS).value)) +if (!isDeadState(epState)) { if (endpointStateMap.get(ep) != null) logger.info(Node {} has restarted, now UP again, ep); @@ -743,7 +746,7 @@ public class Gossiper implements IFailur for (IEndpointStateChangeSubscriber subscriber : subscribers) subscriber.onRestart(ep, epState); -if (epState.getApplicationState(ApplicationState.STATUS) != null !isDeadState(epState.getApplicationState(ApplicationState.STATUS).value)) +if (!isDeadState(epState)) markAlive(ep, epState); else { @@ -755,8 +758,11 @@ public class Gossiper implements IFailur subscriber.onJoin(ep, epState); } -private Boolean isDeadState(String value) +private Boolean isDeadState(EndpointState epState) { +if (epState.getApplicationState(ApplicationState.STATUS) == null) +return false; +String value = epState.getApplicationState(ApplicationState.STATUS).value; String[] pieces = value.split(VersionedValue.DELIMITER_STR, -1); assert (pieces.length 0); String state = pieces[0];
svn commit: r1187579 - in /cassandra/branches/cassandra-1.0: CHANGES.txt src/java/org/apache/cassandra/gms/Gossiper.java
Author: brandonwilliams Date: Fri Oct 21 22:28:16 2011 New Revision: 1187579 URL: http://svn.apache.org/viewvc?rev=1187579view=rev Log: Merge 3351 Modified: cassandra/branches/cassandra-1.0/CHANGES.txt cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java Modified: cassandra/branches/cassandra-1.0/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1187579r1=1187578r2=1187579view=diff == --- cassandra/branches/cassandra-1.0/CHANGES.txt (original) +++ cassandra/branches/cassandra-1.0/CHANGES.txt Fri Oct 21 22:28:16 2011 @@ -50,6 +50,7 @@ Merged from 0.8: * fix assertionError during repair with ordered partitioners (CASSANDRA-3369) * correctly serialize key_validation_class for avro (CASSANDRA-3391) * don't expire counter tombstone after streaming (CASSANDRA-3394) + * prevent nodes that failed to join from hanging around forever (CASSANDRA-3351) 1.0.0-final Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1187579r1=1187578r2=1187579view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/gms/Gossiper.java Fri Oct 21 22:28:16 2011 @@ -562,15 +562,18 @@ public class Gossiper implements IFailur { long duration = now - epState.getUpdateTimestamp(); -if (StorageService.instance.getTokenMetadata().isMember(endpoint)) -epState.setHasToken(true); // check if this is a fat client. fat clients are removed automatically from // gosip after FatClientTimeout if (!epState.hasToken() !epState.isAlive() !justRemovedEndpoints.containsKey(endpoint) (duration FatClientTimeout)) { -logger.info(FatClient + endpoint + has been silent for + FatClientTimeout + ms, removing from gossip); -removeEndpoint(endpoint); // will put it in justRemovedEndpoints to respect quarantine delay -evictFromMembership(endpoint); // can get rid of the state immediately +if (StorageService.instance.getTokenMetadata().isMember(endpoint)) +epState.setHasToken(true); +else +{ +logger.info(FatClient + endpoint + has been silent for + FatClientTimeout + ms, removing from gossip); +removeEndpoint(endpoint); // will put it in justRemovedEndpoints to respect quarantine delay +evictFromMembership(endpoint); // can get rid of the state immediately +} } long expireTime = getExpireTimeForEndpoint(endpoint); @@ -768,7 +771,7 @@ public class Gossiper implements IFailur */ private void handleMajorStateChange(InetAddress ep, EndpointState epState) { -if (epState.getApplicationState(ApplicationState.STATUS) != null !isDeadState(epState)) +if (!isDeadState(epState)) { if (endpointStateMap.get(ep) != null) logger.info(Node {} has restarted, now UP, ep); @@ -783,7 +786,7 @@ public class Gossiper implements IFailur for (IEndpointStateChangeSubscriber subscriber : subscribers) subscriber.onRestart(ep, epState); -if (epState.getApplicationState(ApplicationState.STATUS) != null !isDeadState(epState)) +if (!isDeadState(epState)) markAlive(ep, epState); else { @@ -797,6 +800,8 @@ public class Gossiper implements IFailur public Boolean isDeadState(EndpointState epState) { +if (epState.getApplicationState(ApplicationState.STATUS) == null) +return false; String value = epState.getApplicationState(ApplicationState.STATUS).value; String[] pieces = value.split(VersionedValue.DELIMITER_STR, -1); assert (pieces.length 0);
svn commit: r1189412 - in /cassandra/branches/cassandra-1.0: interface/cassandra.thrift interface/thrift/gen-java/org/apache/cassandra/thrift/EndpointDetails.java src/java/org/apache/cassandra/thrift/
Author: brandonwilliams Date: Wed Oct 26 19:50:02 2011 New Revision: 1189412 URL: http://svn.apache.org/viewvc?rev=1189412view=rev Log: Correct describe_ring topology info errors from 2882. Patch by patricioe, reviewed by brandonwilliams for CASSANDRA-3403. Modified: cassandra/branches/cassandra-1.0/interface/cassandra.thrift cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/EndpointDetails.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/thrift/CassandraServer.java Modified: cassandra/branches/cassandra-1.0/interface/cassandra.thrift URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/interface/cassandra.thrift?rev=1189412r1=1189411r2=1189412view=diff == --- cassandra/branches/cassandra-1.0/interface/cassandra.thrift (original) +++ cassandra/branches/cassandra-1.0/interface/cassandra.thrift Wed Oct 26 19:50:02 2011 @@ -344,8 +344,7 @@ struct Mutation { struct EndpointDetails { 1: string host, - 2: i32 port, - 3: string datacenter + 2: string datacenter } /** Modified: cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/EndpointDetails.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/EndpointDetails.java?rev=1189412r1=1189411r2=1189412view=diff == --- cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/EndpointDetails.java (original) +++ cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/EndpointDetails.java Wed Oct 26 19:50:02 2011 @@ -46,18 +46,15 @@ public class EndpointDetails implements private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct(EndpointDetails); private static final org.apache.thrift.protocol.TField HOST_FIELD_DESC = new org.apache.thrift.protocol.TField(host, org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField PORT_FIELD_DESC = new org.apache.thrift.protocol.TField(port, org.apache.thrift.protocol.TType.I32, (short)2); - private static final org.apache.thrift.protocol.TField DATACENTER_FIELD_DESC = new org.apache.thrift.protocol.TField(datacenter, org.apache.thrift.protocol.TType.STRING, (short)3); + private static final org.apache.thrift.protocol.TField DATACENTER_FIELD_DESC = new org.apache.thrift.protocol.TField(datacenter, org.apache.thrift.protocol.TType.STRING, (short)2); public String host; - public int port; public String datacenter; /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { HOST((short)1, host), -PORT((short)2, port), -DATACENTER((short)3, datacenter); +DATACENTER((short)2, datacenter); private static final MapString, _Fields byName = new HashMapString, _Fields(); @@ -74,9 +71,7 @@ public class EndpointDetails implements switch(fieldId) { case 1: // HOST return HOST; -case 2: // PORT - return PORT; -case 3: // DATACENTER +case 2: // DATACENTER return DATACENTER; default: return null; @@ -118,16 +113,12 @@ public class EndpointDetails implements } // isset id assignments - private static final int __PORT_ISSET_ID = 0; - private BitSet __isset_bit_vector = new BitSet(1); public static final Map_Fields, org.apache.thrift.meta_data.FieldMetaData metaDataMap; static { Map_Fields, org.apache.thrift.meta_data.FieldMetaData tmpMap = new EnumMap_Fields, org.apache.thrift.meta_data.FieldMetaData(_Fields.class); tmpMap.put(_Fields.HOST, new org.apache.thrift.meta_data.FieldMetaData(host, org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); -tmpMap.put(_Fields.PORT, new org.apache.thrift.meta_data.FieldMetaData(port, org.apache.thrift.TFieldRequirementType.DEFAULT, -new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); tmpMap.put(_Fields.DATACENTER, new org.apache.thrift.meta_data.FieldMetaData(datacenter, org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); metaDataMap = Collections.unmodifiableMap(tmpMap); @@ -139,13 +130,10 @@ public class EndpointDetails implements public EndpointDetails( String host, -int port, String datacenter) { this(); this.host = host; -this.port = port; -setPortIsSet(true
svn commit: r1189448 - in /cassandra/branches/cassandra-1.0: ./ conf/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/locator/ src/java/org/apache/cassandra/net/ src/java/org/apach
Author: brandonwilliams Date: Wed Oct 26 20:56:31 2011 New Revision: 1189448 URL: http://svn.apache.org/viewvc?rev=1189448view=rev Log: Allow encryption only between datacenters. Patch by Vijay, reviewed by brandonwilliams for CASSANDRA-2802 Modified: cassandra/branches/cassandra-1.0/CHANGES.txt cassandra/branches/cassandra-1.0/conf/cassandra.yaml cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Config.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/EncryptionOptions.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/locator/Ec2Snitch.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/net/MessagingService.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/net/OutboundTcpConnection.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/net/OutboundTcpConnectionPool.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/streaming/FileStreamTask.java Modified: cassandra/branches/cassandra-1.0/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1189448r1=1189447r2=1189448view=diff == --- cassandra/branches/cassandra-1.0/CHANGES.txt (original) +++ cassandra/branches/cassandra-1.0/CHANGES.txt Wed Oct 26 20:56:31 2011 @@ -56,6 +56,7 @@ Merged from 0.8: (CASSANDRA-3351) * remove incorrect optimization from slice read path (CASSANDRA-3390) * Fix race in AntiEntropyService (CASSANDRA-3400) + * allow encryption only between datacenters (CASSANDRA-2802) 1.0.0-final Modified: cassandra/branches/cassandra-1.0/conf/cassandra.yaml URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/conf/cassandra.yaml?rev=1189448r1=1189447r2=1189448view=diff == --- cassandra/branches/cassandra-1.0/conf/cassandra.yaml (original) +++ cassandra/branches/cassandra-1.0/conf/cassandra.yaml Wed Oct 26 20:56:31 2011 @@ -164,6 +164,10 @@ sliced_buffer_size_in_kb: 64 # TCP port, for commands and data storage_port: 7000 +# SSL port, for encrypted communication. Unused unless enabled in +# encryption_options +ssl_storage_port: 7001 + # Address to bind to and tell other Cassandra nodes to connect to. You # _must_ change this if you want multiple nodes to be able to # communicate! @@ -403,7 +407,10 @@ index_interval: 128 # users generate their own keys) TLS_RSA_WITH_AES_128_CBC_SHA as the cipher # suite for authentication, key exchange and encryption of the actual data transfers. # NOTE: No custom encryption options are enabled at the moment -# The available internode options are : all, none +# The available internode options are : all, none, dc, rack +# +# If set to dc cassandra will encrypt the traffic between the DCs +# If set to rack cassandra will encrypt the traffic between the racks # # The passwords used in these options must match the passwords used when generating # the keystore and truststore. For instructions on generating these files, see: Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Config.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Config.java?rev=1189448r1=1189447r2=1189448view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Config.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Config.java Wed Oct 26 20:56:31 2011 @@ -62,6 +62,7 @@ public class Config public Integer sliced_buffer_size_in_kb = 64; public Integer storage_port = 7000; +public Integer ssl_storage_port = 7001; public String listen_address; public String broadcast_address; Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1189448r1=1189447r2=1189448view=diff == --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Wed Oct 26 20:56:31 2011 @@ -632,6 +632,11 @@ public class DatabaseDescriptor return Integer.parseInt(System.getProperty(cassandra.storage_port, conf.storage_port.toString())); } +public static int getSSLStoragePort() +{ +return Integer.parseInt(System.getProperty(cassandra.ssl_storage_port, conf.ssl_storage_port.toString