Author: jbellis
Date: Tue May 24 17:00:55 2011
New Revision: 1127144
URL: http://svn.apache.org/viewvc?rev=1127144&view=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/config/CFMetaData.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamily.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/filter/QueryFilter.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java
Propchange: cassandra/branches/cassandra-0.8/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 24 17:00:55 2011
@@ -1,8 +1,8 @@
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7:1026516-1126686
+/cassandra/branches/cassandra-0.7:1026516-1127143
/cassandra/branches/cassandra-0.7.0:1053690-1055654
/cassandra/branches/cassandra-0.8:1090934-1125013,1125041
-/cassandra/branches/cassandra-0.8.0:1125021-1126874
+/cassandra/branches/cassandra-0.8.0:1125021-1127038
/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
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1127144&r1=1127143&r2=1127144&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue May 24 17:00:55 2011
@@ -21,6 +21,7 @@
* avoid replaying hints to dropped columnfamilies (CASSANDRA-2685)
* add placeholders for missing rows in range query pseudo-RR (CASSANDRA-2680)
* remove no-op HHOM.renameHints (CASSANDRA-2693)
+ * clone super columns to avoid modifying them during flush (CASSANDRA-2675)
0.8.0-final
@@ -34,6 +35,7 @@
* only provide replication_factor to strategy_options "help" for
SimpleStrategy, OldNetworkTopologyStrategy (CASSANDRA-2678)
* fix exception adding validators to non-string columns (CASSANDRA-2696)
+ * avoid instantiating DatabaseDescriptor in JDBC (CASSANDRA-2694)
0.8.0-rc1
Propchange: cassandra/branches/cassandra-0.8/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 24 17:00:55 2011
@@ -1,8 +1,8 @@
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
-/cassandra/branches/cassandra-0.7/contrib:1026516-1126686
+/cassandra/branches/cassandra-0.7/contrib:1026516-1127143
/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-1126874
+/cassandra/branches/cassandra-0.8.0/contrib:1125021-1127038
/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/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 24 17:00:55 2011
@@ -1,8 +1,8 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1126686
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1127143
/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-1126874
+/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1127038
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
Propchange:
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 24 17:00:55 2011
@@ -1,8 +1,8 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1126686
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1127143
/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-1126874
+/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1127038
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
Propchange:
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 24 17:00:55 2011
@@ -1,8 +1,8 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1126686
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1127143
/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,1125041
-/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1126874
+/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1127038
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
Propchange:
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 24 17:00:55 2011
@@ -1,8 +1,8 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1126686
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1127143
/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,1125041
-/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1126874
+/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1127038
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
Propchange:
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 24 17:00:55 2011
@@ -1,8 +1,8 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1126686
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1127143
/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,1125041
-/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1126874
+/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1127038
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java?rev=1127144&r1=1127143&r2=1127144&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java
Tue May 24 17:00:55 2011
@@ -634,9 +634,6 @@ public final class CFMetaData
applyImplicitDefaults(cf_def);
- validateMinMaxCompactionThresholds(cf_def);
- validateMemtableSettings(cf_def);
-
CFMetaData newCFMD = new CFMetaData(cf_def.keyspace,
cf_def.name,
cfType,
@@ -670,12 +667,16 @@ public final class CFMetaData
public void apply(org.apache.cassandra.db.migration.avro.CfDef cf_def)
throws ConfigurationException
{
// validate
- if (!cf_def.id.equals(cfId))
- throw new ConfigurationException("ids do not match.");
if (!cf_def.keyspace.toString().equals(ksName))
- throw new ConfigurationException("keyspaces do not match.");
+ throw new ConfigurationException(String.format("Keyspace mismatch
(found %s; expected %s)",
+ cf_def.keyspace,
tableName));
if (!cf_def.name.toString().equals(cfName))
- throw new ConfigurationException("names do not match.");
+ throw new ConfigurationException(String.format("Column family
mismatch (found %s; expected %s)",
+ cf_def.name,
cfName));
+ if (!cf_def.id.equals(cfId))
+ throw new ConfigurationException(String.format("Column family ID
mismatch (found %s; expected %s)",
+ cf_def.id, cfId));
+
if (!cf_def.column_type.toString().equals(cfType.name()))
throw new ConfigurationException("types do not match.");
if (comparator != TypeParser.parse(cf_def.comparator_type))
@@ -884,36 +885,6 @@ public final class CFMetaData
return newDef;
}
- public static void
validateMinMaxCompactionThresholds(org.apache.cassandra.thrift.CfDef cf_def)
throws ConfigurationException
- {
- if (cf_def.isSetMin_compaction_threshold() &&
cf_def.isSetMax_compaction_threshold())
- {
- if ((cf_def.min_compaction_threshold >
cf_def.max_compaction_threshold) &&
- cf_def.max_compaction_threshold != 0)
- {
- throw new ConfigurationException("min_compaction_threshold
cannot be greater than max_compaction_threshold");
- }
- }
- else if (cf_def.isSetMin_compaction_threshold())
- {
- if (cf_def.min_compaction_threshold >
DEFAULT_MAX_COMPACTION_THRESHOLD)
- {
- throw new ConfigurationException("min_compaction_threshold
cannot be greather than max_compaction_threshold (default " +
-
DEFAULT_MAX_COMPACTION_THRESHOLD + ")");
- }
- }
- else if (cf_def.isSetMax_compaction_threshold())
- {
- if (cf_def.max_compaction_threshold <
DEFAULT_MIN_COMPACTION_THRESHOLD && cf_def.max_compaction_threshold != 0) {
- throw new ConfigurationException("max_compaction_threshold
cannot be less than min_compaction_threshold");
- }
- }
- else
- {
- //Defaults are valid.
- }
- }
-
public static void
validateMinMaxCompactionThresholds(org.apache.cassandra.db.migration.avro.CfDef
cf_def) throws ConfigurationException
{
if (cf_def.min_compaction_threshold != null &&
cf_def.max_compaction_threshold != null)
@@ -944,16 +915,6 @@ public final class CFMetaData
}
}
- public static void
validateMemtableSettings(org.apache.cassandra.thrift.CfDef cf_def) throws
ConfigurationException
- {
- if (cf_def.isSetMemtable_flush_after_mins())
-
DatabaseDescriptor.validateMemtableFlushPeriod(cf_def.memtable_flush_after_mins);
- if (cf_def.isSetMemtable_throughput_in_mb())
-
DatabaseDescriptor.validateMemtableThroughput(cf_def.memtable_throughput_in_mb);
- if (cf_def.isSetMemtable_operations_in_millions())
-
DatabaseDescriptor.validateMemtableOperations(cf_def.memtable_operations_in_millions);
- }
-
public static void
validateMemtableSettings(org.apache.cassandra.db.migration.avro.CfDef cf_def)
throws ConfigurationException
{
if (cf_def.memtable_flush_after_mins != null)
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamily.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamily.java?rev=1127144&r1=1127143&r2=1127144&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamily.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamily.java
Tue May 24 17:00:55 2011
@@ -142,6 +142,11 @@ public class ColumnFamily implements ICo
return columns.size();
}
+ public boolean isEmpty()
+ {
+ return columns.isEmpty();
+ }
+
public boolean isSuper()
{
return getType() == ColumnFamilyType.Super;
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/filter/QueryFilter.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/filter/QueryFilter.java?rev=1127144&r1=1127143&r2=1127144&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/filter/QueryFilter.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/filter/QueryFilter.java
Tue May 24 17:00:55 2011
@@ -103,7 +103,19 @@ public class QueryFilter
public void reduce(IColumn current)
{
- curCF.addColumn(current);
+ if (curCF.isSuper() && curCF.isEmpty())
+ {
+ // If it is the first super column we add, we must clone
it since other super column may modify
+ // it otherwise and it could be aliased in a memtable
somewhere. We'll also don't have to care about what
+ // consumers make of the result (for instance
CFS.getColumnFamily() call removeDeleted() on the
+ // result which removes column; which shouldn't be done on
the original super column).
+ assert current instanceof SuperColumn;
+ curCF.addColumn(((SuperColumn)current).cloneMe());
+ }
+ else
+ {
+ curCF.addColumn(current);
+ }
}
protected IColumn getReduced()
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1127144&r1=1127143&r2=1127144&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java
Tue May 24 17:00:55 2011
@@ -577,6 +577,8 @@ public class ThriftValidation
if (cfType == ColumnFamilyType.Super && c.index_type != null)
throw new InvalidRequestException("Secondary indexes are
not supported on supercolumns");
}
+ validateMinMaxCompactionThresholds(cf_def);
+ validateMemtableSettings(cf_def);
}
catch (ConfigurationException e)
{
@@ -602,4 +604,45 @@ public class ThriftValidation
Class<? extends AbstractReplicationStrategy> cls =
AbstractReplicationStrategy.getClass(ks_def.strategy_class);
AbstractReplicationStrategy.createReplicationStrategy(ks_def.name,
cls, tmd, eps, options);
}
+
+ public static void
validateMinMaxCompactionThresholds(org.apache.cassandra.thrift.CfDef cf_def)
throws ConfigurationException
+ {
+ if (cf_def.isSetMin_compaction_threshold() &&
cf_def.isSetMax_compaction_threshold())
+ {
+ if ((cf_def.min_compaction_threshold >
cf_def.max_compaction_threshold)
+ && cf_def.max_compaction_threshold != 0)
+ {
+ throw new ConfigurationException("min_compaction_threshold
cannot be greater than max_compaction_threshold");
+ }
+ }
+ else if (cf_def.isSetMin_compaction_threshold())
+ {
+ if (cf_def.min_compaction_threshold >
CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD)
+ {
+ throw new
ConfigurationException(String.format("min_compaction_threshold cannot be
greather than max_compaction_threshold (default %d)",
+
CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD));
+ }
+ }
+ else if (cf_def.isSetMax_compaction_threshold())
+ {
+ if (cf_def.max_compaction_threshold <
CFMetaData.DEFAULT_MIN_COMPACTION_THRESHOLD && cf_def.max_compaction_threshold
!= 0)
+ {
+ throw new ConfigurationException("max_compaction_threshold
cannot be less than min_compaction_threshold");
+ }
+ }
+ else
+ {
+ //Defaults are valid.
+ }
+ }
+
+ public static void
validateMemtableSettings(org.apache.cassandra.thrift.CfDef cf_def) throws
ConfigurationException
+ {
+ if (cf_def.isSetMemtable_flush_after_mins())
+
DatabaseDescriptor.validateMemtableFlushPeriod(cf_def.memtable_flush_after_mins);
+ if (cf_def.isSetMemtable_throughput_in_mb())
+
DatabaseDescriptor.validateMemtableThroughput(cf_def.memtable_throughput_in_mb);
+ if (cf_def.isSetMemtable_operations_in_millions())
+
DatabaseDescriptor.validateMemtableOperations(cf_def.memtable_operations_in_millions);
+ }
}