You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/11/14 18:59:04 UTC
cassandra git commit: Remove post-2.1 dead schema migrations and
columns
Repository: cassandra
Updated Branches:
refs/heads/trunk 58fdc6b5c -> cbbc1191c
Remove post-2.1 dead schema migrations and columns
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cbbc1191
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cbbc1191
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cbbc1191
Branch: refs/heads/trunk
Commit: cbbc1191ce1656a92354a4fa3859626cb10083e5
Parents: 58fdc6b
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Fri Nov 14 20:58:33 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Fri Nov 14 20:58:33 2014 +0300
----------------------------------------------------------------------
.../apache/cassandra/cache/CachingOptions.java | 9 +--
.../org/apache/cassandra/config/CFMetaData.java | 45 +-------------
.../org/apache/cassandra/db/SystemKeyspace.java | 62 +-------------------
3 files changed, 5 insertions(+), 111 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/cbbc1191/src/java/org/apache/cassandra/cache/CachingOptions.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cache/CachingOptions.java b/src/java/org/apache/cassandra/cache/CachingOptions.java
index 6eeaa37..f9c7e64 100644
--- a/src/java/org/apache/cassandra/cache/CachingOptions.java
+++ b/src/java/org/apache/cassandra/cache/CachingOptions.java
@@ -130,11 +130,7 @@ public class CachingOptions
return result;
}
- public static boolean isLegacy(String CachingOptions)
- {
- return legacyOptions.contains(CachingOptions.toUpperCase());
- }
-
+ // FIXME: move to ThriftConversion
public static CachingOptions fromThrift(String caching, String cellsPerRow) throws ConfigurationException
{
@@ -153,6 +149,7 @@ public class CachingOptions
return new CachingOptions(kc, rc);
}
+ // FIXME: move to ThriftConversion
public String toThriftCaching()
{
if (rowCache.isEnabled() && keyCache.isEnabled())
@@ -164,6 +161,7 @@ public class CachingOptions
return "NONE";
}
+ // FIXME: move to ThriftConversion
public String toThriftCellsPerRow()
{
if (rowCache.cacheFullPartitions())
@@ -171,7 +169,6 @@ public class CachingOptions
return String.valueOf(rowCache.rowsToCache);
}
-
public static class KeyCache
{
public final Type type;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/cbbc1191/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index 14271c0..2ed4a95 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -54,7 +54,6 @@ import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.UUIDGen;
-import static org.apache.cassandra.utils.FBUtilities.fromJsonList;
import static org.apache.cassandra.utils.FBUtilities.fromJsonMap;
import static org.apache.cassandra.utils.FBUtilities.json;
@@ -1251,7 +1250,6 @@ public final class CFMetaData
adder.add("min_compaction_threshold", minCompactionThreshold);
adder.add("max_compaction_threshold", maxCompactionThreshold);
adder.add("bloom_filter_fp_chance", getBloomFilterFpChance());
-
adder.add("memtable_flush_period_in_ms", memtableFlushPeriod);
adder.add("caching", caching.toString());
adder.add("default_time_to_live", defaultTimeToLive);
@@ -1260,18 +1258,12 @@ public final class CFMetaData
adder.add("compaction_strategy_options", json(compactionStrategyOptions));
adder.add("min_index_interval", minIndexInterval);
adder.add("max_index_interval", maxIndexInterval);
- adder.add("index_interval", null);
adder.add("speculative_retry", speculativeRetry.toString());
for (Map.Entry<ColumnIdentifier, Long> entry : droppedColumns.entrySet())
adder.addMapEntry("dropped_columns", entry.getKey().toString(), entry.getValue());
adder.add("is_dense", isDense);
-
- // Save the CQL3 metadata "the old way" for compatibility sake
- adder.add("key_aliases", aliasesToJson(partitionKeyColumns));
- adder.add("column_aliases", aliasesToJson(clusteringColumns));
- adder.add("value_alias", compactValueColumn == null ? null : compactValueColumn.name.toString());
}
@VisibleForTesting
@@ -1328,11 +1320,9 @@ public final class CFMetaData
cfm.compressionParameters(CompressionParameters.create(fromJsonMap(result.getString("compression_parameters"))));
cfm.compactionStrategyOptions(fromJsonMap(result.getString("compaction_strategy_options")));
- // migrate old index_interval values to min_index_interval, if present
if (result.has("min_index_interval"))
cfm.minIndexInterval(result.getInt("min_index_interval"));
- else if (result.has("index_interval"))
- cfm.minIndexInterval(result.getInt("index_interval"));
+
if (result.has("max_index_interval"))
cfm.maxIndexInterval(result.getInt("max_index_interval"));
@@ -1341,20 +1331,6 @@ public final class CFMetaData
else
cfm.bloomFilterFpChance(cfm.getBloomFilterFpChance());
- /*
- * The info previously hold by key_aliases, column_aliases and value_alias is now stored in columnMetadata (because 1) this
- * make more sense and 2) this allow to store indexing information).
- * However, for upgrade sake we need to still be able to read those old values. Moreover, we cannot easily
- * remove those old columns once "converted" to columnMetadata because that would screw up nodes that may
- * not have upgraded. So for now we keep the both info and in sync, even though its redundant.
- */
- if (result.has("key_aliases"))
- cfm.addColumnMetadataFromAliases(aliasesFromStrings(fromJsonList(result.getString("key_aliases"))), cfm.keyValidator, ColumnDefinition.Kind.PARTITION_KEY);
- if (result.has("column_aliases"))
- cfm.addColumnMetadataFromAliases(aliasesFromStrings(fromJsonList(result.getString("column_aliases"))), cfm.comparator.asAbstractType(), ColumnDefinition.Kind.CLUSTERING_COLUMN);
- if (result.has("value_alias"))
- cfm.addColumnMetadataFromAliases(Collections.singletonList(result.getBytes("value_alias")), cfm.defaultValidator, ColumnDefinition.Kind.COMPACT_VALUE);
-
if (result.has("dropped_columns"))
cfm.droppedColumns(convertDroppedColumns(result.getMap("dropped_columns", UTF8Type.instance, LongType.instance)));
@@ -1415,25 +1391,6 @@ public final class CFMetaData
return fromSchema(result);
}
- private String aliasesToJson(List<ColumnDefinition> rawAliases)
- {
- if (rawAliases == null)
- return null;
-
- List<String> aliases = new ArrayList<>(rawAliases.size());
- for (ColumnDefinition rawAlias : rawAliases)
- aliases.add(rawAlias.name.toString());
- return json(aliases);
- }
-
- private static List<ByteBuffer> aliasesFromStrings(List<String> aliases)
- {
- List<ByteBuffer> rawAliases = new ArrayList<>(aliases.size());
- for (String alias : aliases)
- rawAliases.add(UTF8Type.instance.decompose(alias));
- return rawAliases;
- }
-
private static Map<ColumnIdentifier, Long> convertDroppedColumns(Map<String, Long> raw)
{
Map<ColumnIdentifier, Long> converted = Maps.newHashMap();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/cbbc1191/src/java/org/apache/cassandra/db/SystemKeyspace.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SystemKeyspace.java b/src/java/org/apache/cassandra/db/SystemKeyspace.java
index 7806d5f..ddf6fa0 100644
--- a/src/java/org/apache/cassandra/db/SystemKeyspace.java
+++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java
@@ -33,7 +33,6 @@ import com.google.common.collect.Sets;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.cassandra.cache.CachingOptions;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.config.KSMetaData;
@@ -119,7 +118,6 @@ public final class SystemKeyspace
+ "bloom_filter_fp_chance double,"
+ "caching text,"
+ "cf_id uuid," // post-2.1 UUID cfid
- + "column_aliases text,"
+ "comment text,"
+ "compaction_strategy_class text,"
+ "compaction_strategy_options text,"
@@ -129,9 +127,7 @@ public final class SystemKeyspace
+ "default_validator text,"
+ "dropped_columns map<text, bigint>,"
+ "gc_grace_seconds int,"
- + "index_interval int,"
+ "is_dense boolean,"
- + "key_aliases text,"
+ "key_validator text,"
+ "local_read_repair_chance double,"
+ "max_compaction_threshold int,"
@@ -143,7 +139,6 @@ public final class SystemKeyspace
+ "speculative_retry text,"
+ "subcomparator text,"
+ "type text,"
- + "value_alias text,"
+ "PRIMARY KEY ((keyspace_name), columnfamily_name))")
.gcGraceSeconds(WEEK);
@@ -370,16 +365,11 @@ public final class SystemKeyspace
{
setupVersion();
- migrateIndexInterval();
- migrateCachingOption();
// add entries to system schema columnfamilies for the hardcoded system definitions
KSMetaData ksmd = Schema.instance.getKSMetaData(NAME);
// delete old, possibly obsolete entries in schema tables
- // FIXME: once schema_functions moves from 'namespace' to 'keyspace_name', fix this
- List<String> schemaTables = new ArrayList<>(ALL_SCHEMA_TABLES);
- schemaTables.remove(SCHEMA_FUNCTIONS_TABLE);
- for (String table : schemaTables)
+ for (String table : ALL_SCHEMA_TABLES)
executeOnceInternal(String.format("DELETE FROM system.%s WHERE keyspace_name = ?", table), ksmd.name);
// (+1 to timestamp to make sure we don't get shadowed by the tombstones we just added)
@@ -401,56 +391,6 @@ public final class SystemKeyspace
DatabaseDescriptor.getPartitioner().getClass().getName());
}
- // TODO: In 3.0, remove this and the index_interval column from system.schema_columnfamilies
- /** Migrates index_interval values to min_index_interval and sets index_interval to null */
- private static void migrateIndexInterval()
- {
- for (UntypedResultSet.Row row : executeOnceInternal(String.format("SELECT * FROM system.%s", SCHEMA_COLUMNFAMILIES_TABLE)))
- {
- if (!row.has("index_interval"))
- continue;
-
- logger.debug("Migrating index_interval to min_index_interval");
-
- CFMetaData table = CFMetaData.fromSchema(row);
- String query = String.format("SELECT writetime(type) FROM system.%s WHERE keyspace_name = ? AND columnfamily_name = ?", SCHEMA_COLUMNFAMILIES_TABLE);
- long timestamp = executeOnceInternal(query, table.ksName, table.cfName).one().getLong("writetime(type)");
- try
- {
- table.toSchema(timestamp).apply();
- }
- catch (ConfigurationException e)
- {
- // shouldn't happen
- }
- }
- }
-
- private static void migrateCachingOption()
- {
- for (UntypedResultSet.Row row : executeOnceInternal(String.format("SELECT * FROM system.%s", SCHEMA_COLUMNFAMILIES_TABLE)))
- {
- if (!row.has("caching"))
- continue;
-
- if (!CachingOptions.isLegacy(row.getString("caching")))
- continue;
- try
- {
- CachingOptions caching = CachingOptions.fromString(row.getString("caching"));
- CFMetaData table = CFMetaData.fromSchema(row);
- logger.info("Migrating caching option {} to {} for {}.{}", row.getString("caching"), caching.toString(), table.ksName, table.cfName);
- String query = String.format("SELECT writetime(type) FROM system.%s WHERE keyspace_name = ? AND columnfamily_name = ?", SCHEMA_COLUMNFAMILIES_TABLE);
- long timestamp = executeOnceInternal(query, table.ksName, table.cfName).one().getLong("writetime(type)");
- table.toSchema(timestamp).apply();
- }
- catch (ConfigurationException e)
- {
- // shouldn't happen
- }
- }
- }
-
/**
* Write compaction log, except columfamilies under system keyspace.
*