Author: jbellis
Date: Thu Sep 8 16:31:27 2011
New Revision: 1166779
URL: http://svn.apache.org/viewvc?rev=1166779&view=rev
Log:
merge from 0.8
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/NEWS.txt
cassandra/trunk/conf/cassandra-env.sh
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/cli/CliClient.java
cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.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/CustomTThreadPoolServer.java
cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java
cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java
cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 8 16:31:27 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-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1166261
/cassandra/branches/cassandra-0.8.0:1125021-1130369
/cassandra/branches/cassandra-0.8.1:1101014-1125018
/cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
Modified: cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Thu Sep 8 16:31:27 2011
@@ -68,6 +68,18 @@
(CASSANDRA-3119)
* rename CQL type names to match expected SQL behavior (CASSANDRA-3149)
+
+0.8.6
+ * avoid trying to watch cassandra-topology.properties when loaded from jar
+ (CASSANDRA-3138)
+ * prevent users from creating keyspaces with LocalStrategy replication
+ (CASSANDRA-3139)
+ * fix CLI `show schema;` to output correct keyspace definition statement
+ (CASSANDRA-3129)
+ * CustomTThreadPoolServer to log TTransportException at DEBUG level
+ (CASSANDRA-3142)
+
+
0.8.5
* fix NPE when encryption_options is unspecified (CASSANDRA-3007)
* include column name in validation failure exceptions (CASSANDRA-2849)
@@ -121,6 +133,10 @@
* bundle sstableloader with the debian package (CASSANDRA-3113)
* don't try to build secondary indexes when there is none (CASSANDRA-3123)
* improve SSTableSimpleUnsortedWriter speed for large rows (CASSANDRA-3122)
+ * handle keyspace arguments correctly in nodetool snapshot (CASSANDRA-3038)
+ * Fix SSTableImportTest on windows (CASSANDRA-3043)
+ * expose compactionThroughputMbPerSec through JMX (CASSANDRA-3117)
+ * log keyspace and CF of large rows being compacted
0.8.4
@@ -182,7 +198,7 @@
* allow deleting a row and updating indexed columns in it in the
same mutation (CASSANDRA-2773)
* Expose number of threads blocked on submitting memtable to flush
- (CASSANDRA-2817)
+ in JMX (CASSANDRA-2817)
* add ability to return "endpoints" to nodetool (CASSANDRA-2776)
* Add support for multiple (comma-delimited) coordinator addresses
to ColumnFamilyInputFormat (CASSANDRA-2807)
Modified: cassandra/trunk/NEWS.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/NEWS.txt?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/NEWS.txt (original)
+++ cassandra/trunk/NEWS.txt Thu Sep 8 16:31:27 2011
@@ -64,9 +64,17 @@ Other
0.8.5
=====
+Features
+--------
+ - SSTables copied to a data directory can be loaded by a live node through
+ nodetool refresh (may be handy to load snapshots).
+ - The configured compaction throughput is exposed through JMX.
+
Other
-----
- - The sstableloader is now bundled with the debian package
+ - The sstableloader is now bundled with the debian package.
+ - Repair detects when a participating node is dead and fails instead of
+ hanging forever.
0.8.4
Modified: cassandra/trunk/conf/cassandra-env.sh
URL:
http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra-env.sh?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/conf/cassandra-env.sh (original)
+++ cassandra/trunk/conf/cassandra-env.sh Thu Sep 8 16:31:27 2011
@@ -117,7 +117,12 @@ JVM_OPTS="$JVM_OPTS -XX:ThreadPriorityPo
JVM_OPTS="$JVM_OPTS -Xms${MAX_HEAP_SIZE}"
JVM_OPTS="$JVM_OPTS -Xmx${MAX_HEAP_SIZE}"
JVM_OPTS="$JVM_OPTS -Xmn${HEAP_NEWSIZE}"
-JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError"
+JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError"
+
+# set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR
+if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then
+ JVM_OPTS="$JVM_OPTS
-XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof"
+fi
if [ "`uname`" = "Linux" ] ; then
# reduce the per-thread stack size to minimize the impact of Thrift
Propchange: cassandra/trunk/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 8 16:31:27 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-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1166261
/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 Thu Sep 8 16:31:27 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-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1166261
/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 16:31:27 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-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1166261
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1101014-1125018
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 8 16:31:27 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1163782
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1166261
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1101014-1125018
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 8 16:31:27 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1163782
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1166261
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1101014-1125018
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 8 16:31:27 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1163782
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1166261
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1101014-1125018
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Thu Sep 8
16:31:27 2011
@@ -1583,11 +1583,10 @@ public class CliClient
*/
private void showKeyspace(StringBuilder sb, KsDef ksDef)
{
-
sb.append("create keyspace " + ksDef.name);
- if (ksDef.isSetReplication_factor())
- writeAttr(sb, false, "replication_factor",
ksDef.getReplication_factor());
+
writeAttr(sb, true, "placement_strategy",
normaliseType(ksDef.strategy_class, "org.apache.cassandra.locator"));
+
if (ksDef.strategy_options != null &&
!ksDef.strategy_options.isEmpty())
{
final StringBuilder opts = new StringBuilder();
Modified:
cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java
Thu Sep 8 16:31:27 2011
@@ -58,14 +58,22 @@ public class PropertyFileSnitch extends
public PropertyFileSnitch() throws ConfigurationException
{
reloadConfiguration();
- Runnable runnable = new WrappedRunnable()
+ try
{
- protected void runMayThrow() throws ConfigurationException
+ FBUtilities.resourceToFile(RACK_PROPERTY_FILENAME);
+ Runnable runnable = new WrappedRunnable()
{
- reloadConfiguration();
- }
- };
- ResourceWatcher.watch(RACK_PROPERTY_FILENAME, runnable, 60 * 1000);
+ protected void runMayThrow() throws ConfigurationException
+ {
+ reloadConfiguration();
+ }
+ };
+ ResourceWatcher.watch(RACK_PROPERTY_FILENAME, runnable, 60 * 1000);
+ }
+ catch (ConfigurationException ex)
+ {
+ logger.debug(RACK_PROPERTY_FILENAME + " found, but does not look
like a plain file. Will not watch it for changes");
+ }
}
/**
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=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
Thu Sep 8 16:31:27 2011
@@ -579,6 +579,11 @@ public class StorageService implements I
return joined;
}
+ public int getCompactionThroughputMbPerSec()
+ {
+ return DatabaseDescriptor.getCompactionThroughputMbPerSec();
+ }
+
public void setCompactionThroughputMbPerSec(int value) {
DatabaseDescriptor.setCompactionThroughputMbPerSec(value);
}
@@ -818,7 +823,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())
@@ -905,7 +910,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);
@@ -940,7 +945,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())
@@ -957,7 +962,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())
Modified:
cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java
Thu Sep 8 16:31:27 2011
@@ -331,6 +331,7 @@ public interface StorageServiceMBean
public int getExceptionCount();
+ public int getCompactionThroughputMbPerSec();
public void setCompactionThroughputMbPerSec(int value);
public void bulkLoad(String directory);
Modified:
cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
Thu Sep 8 16:31:27 2011
@@ -193,6 +193,8 @@ public class CustomTThreadPoolServer ext
catch (TTransportException ttx)
{
// Assume the client died and continue silently
+ // Log at debug to allow debugging of "frame too large" errors
(see CASSANDRA-3142).
+ LOGGER.debug("Thrift transport error occurred during
processing of message.", ttx);
}
catch (TException tx)
{
Modified:
cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
Thu Sep 8 16:31:27 2011
@@ -23,10 +23,16 @@ package org.apache.cassandra.thrift;
import java.nio.ByteBuffer;
import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import org.apache.cassandra.config.*;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.index.SecondaryIndex;
-import org.apache.cassandra.db.marshal.*;
+import org.apache.cassandra.db.marshal.AbstractType;
+import org.apache.cassandra.db.marshal.AsciiType;
+import org.apache.cassandra.db.marshal.MarshalException;
+import org.apache.cassandra.db.marshal.TypeParser;
import org.apache.cassandra.db.migration.Migration;
import org.apache.cassandra.dht.IPartitioner;
import org.apache.cassandra.dht.RandomPartitioner;
@@ -35,8 +41,6 @@ import org.apache.cassandra.locator.*;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.FBUtilities;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* This has a lot of building blocks for CassandraServer to call to make sure
it has valid input
@@ -676,6 +680,10 @@ public class ThriftValidation
TokenMetadata tmd = StorageService.instance.getTokenMetadata();
IEndpointSnitch eps = DatabaseDescriptor.getEndpointSnitch();
Class<? extends AbstractReplicationStrategy> cls =
AbstractReplicationStrategy.getClass(ks_def.strategy_class);
+
+ if (cls.equals(LocalStrategy.class))
+ throw new ConfigurationException("Unable to use given strategy
class: LocalStrategy is reserved for internal use.");
+
AbstractReplicationStrategy.createReplicationStrategy(ks_def.name,
cls, tmd, eps, options);
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java Thu
Sep 8 16:31:27 2011
@@ -70,7 +70,8 @@ public class BloomFilter extends Filter
numElements, bucketsPerElement,
targetBucketsPerElem));
}
BloomCalculations.BloomSpecification spec =
BloomCalculations.computeBloomSpec(bucketsPerElement);
- logger.debug("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));
}
Modified: cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java Thu Sep 8
16:31:27 2011
@@ -127,9 +127,7 @@ public class CliTest extends CleanupHelp
"drop index on '123'.617070;",
"drop index on '123'.'-617071';",
"drop index on CF3.'big world';",
- "update keyspace TestKeySpace with
placement_strategy='org.apache.cassandra.locator.LocalStrategy' and
durable_writes = false;",
- "update keyspace TestKeySpace with strategy_options={DC1:3, DC2:4,
DC5:1};",
- "update keyspace TestKeySpace with strategy_options=[{DC1:3, DC2:4,
DC5:1}];",
+ "update keyspace TestKeySpace with durable_writes = false;",
"assume 123 comparator as utf8;",
"assume 123 sub_comparator as integer;",
"assume 123 validator as lexicaluuid;",
@@ -172,6 +170,8 @@ public class CliTest extends CleanupHelp
"get myCF['key']['scName']",
"assume CF3 keys as utf8;",
"use TestKEYSpace;",
+ "update keyspace TestKeySpace with
placement_strategy='org.apache.cassandra.locator.NetworkTopologyStrategy';",
+ "update keyspace TestKeySpace with strategy_options=[{DC1:3, DC2:4,
DC5:1}];",
"describe cluster;",
"help describe cluster;",
"show cluster name",
Modified:
cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
---
cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java
(original)
+++
cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java
Thu Sep 8 16:31:27 2011
@@ -23,14 +23,16 @@ package org.apache.cassandra.thrift;
import java.nio.ByteBuffer;
-import org.apache.cassandra.config.*;
-import org.apache.cassandra.db.marshal.AsciiType;
-import org.apache.cassandra.db.marshal.UTF8Type;
-
import org.junit.Test;
import org.apache.cassandra.CleanupHelper;
import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.db.marshal.AsciiType;
+import org.apache.cassandra.db.marshal.UTF8Type;
+import org.apache.cassandra.locator.LocalStrategy;
+import org.apache.cassandra.locator.NetworkTopologyStrategy;
import org.apache.cassandra.utils.FBUtilities;
public class ThriftValidationTest extends CleanupHelper
@@ -137,4 +139,56 @@ public class ThriftValidationTest extend
assert gotException : "expected InvalidRequestException but not
received.";
}
+
+ @Test
+ public void testValidateKsDef()
+ {
+ KsDef ks_def = new KsDef()
+ .setName("keyspaceValid")
+
.setStrategy_class(LocalStrategy.class.getSimpleName());
+
+
+ boolean gotException = false;
+
+ try
+ {
+ ThriftValidation.validateKsDef(ks_def);
+ }
+ catch (ConfigurationException e)
+ {
+ gotException = true;
+ }
+
+ assert gotException : "expected ConfigurationException but not
received.";
+
+ ks_def.setStrategy_class(LocalStrategy.class.getName());
+
+ gotException = false;
+
+ try
+ {
+ ThriftValidation.validateKsDef(ks_def);
+ }
+ catch (ConfigurationException e)
+ {
+ gotException = true;
+ }
+
+ assert gotException : "expected ConfigurationException but not
received.";
+
+ ks_def.setStrategy_class(NetworkTopologyStrategy.class.getName());
+
+ gotException = false;
+
+ try
+ {
+ ThriftValidation.validateKsDef(ks_def);
+ }
+ catch (ConfigurationException e)
+ {
+ gotException = true;
+ }
+
+ assert !gotException : "got unexpected ConfigurationException";
+ }
}