You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by xe...@apache.org on 2012/03/30 23:00:41 UTC
[3/3] git commit: Respect 1.0 cache settings as much as possible when
upgrading Patch by Pavel Yaskevich;
reviewed by Yuki Morishita for CASSANDRA-4088
Respect 1.0 cache settings as much as possible when upgrading
Patch by Pavel Yaskevich; reviewed by Yuki Morishita for CASSANDRA-4088
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ef50e8f1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ef50e8f1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ef50e8f1
Branch: refs/heads/trunk
Commit: ef50e8f12a81986407351f5b7e3125dab2d4ffa1
Parents: e4e8766
Author: Pavel Yaskevich <xe...@apache.org>
Authored: Fri Mar 30 14:47:44 2012 +0300
Committer: Pavel Yaskevich <xe...@apache.org>
Committed: Fri Mar 30 23:54:46 2012 +0300
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/avro/internode.genavro | 2 +
src/java/org/apache/cassandra/config/Avro.java | 20 +++++++++++++++++-
3 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef50e8f1/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 5f0db66..efb4ebe 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,7 @@
* fix KEYS index from skipping results (CASSANDRA-3996)
* Remove sliced_buffer_size_in_kb dead option (CASSANDRA-4076)
* make loadNewSStable preserve sstable version (CASSANDRA-4077)
+ * Respect 1.0 cache settings as much as possible when upgrading (CASSANDRA-4088)
1.1-beta2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef50e8f1/src/avro/internode.genavro
----------------------------------------------------------------------
diff --git a/src/avro/internode.genavro b/src/avro/internode.genavro
index d060d6e..d7ba60f 100644
--- a/src/avro/internode.genavro
+++ b/src/avro/internode.genavro
@@ -70,6 +70,8 @@ protocol InterNode {
union { null, array<bytes> } column_aliases = null;
union { null, bytes } value_alias = null;
union { double, null } dclocal_read_repair_chance = 0.0;
+ union { double, null } row_cache_size;
+ union { double, null } key_cache_size;
}
@aliases(["org.apache.cassandra.config.avro.KsDef"])
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef50e8f1/src/java/org/apache/cassandra/config/Avro.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/Avro.java b/src/java/org/apache/cassandra/config/Avro.java
index 954a6aa..8e0de76 100644
--- a/src/java/org/apache/cassandra/config/Avro.java
+++ b/src/java/org/apache/cassandra/config/Avro.java
@@ -32,6 +32,8 @@ import org.apache.cassandra.locator.NetworkTopologyStrategy;
import org.apache.cassandra.thrift.IndexType;
import org.apache.cassandra.utils.ByteBufferUtil;
+import static org.apache.cassandra.config.CFMetaData.Caching;
+
/**
* methods to load schema definitions from old-style Avro serialization
*/
@@ -71,9 +73,23 @@ public class Avro
int cfsz = ks.cf_defs.size();
List<CFMetaData> cfMetaData = new ArrayList<CFMetaData>(cfsz);
- Iterator<CfDef> cfiter = ks.cf_defs.iterator();
+
for (CfDef cf_def : ks.cf_defs)
- cfMetaData.add(cfFromAvro(cfiter.next()));
+ {
+ double keysCached = cf_def.key_cache_size == null ? -1 : cf_def.key_cache_size;
+ double rowsCached = cf_def.row_cache_size == null ? -1 : cf_def.row_cache_size;
+
+ if (keysCached > 0 && rowsCached > 0)
+ cf_def.caching = Caching.ALL.name();
+ else if (keysCached <= 0 && rowsCached <= 0)
+ cf_def.caching = Caching.NONE.name();
+ else if (keysCached > 0 && rowsCached <= 0)
+ cf_def.caching = Caching.KEYS_ONLY.name();
+ else
+ cf_def.caching = Caching.ROWS_ONLY.name();
+
+ cfMetaData.add(cfFromAvro(cf_def));
+ }
return new KSMetaData(ks.name.toString(), repStratClass, strategyOptions, ks.durable_writes, cfMetaData);
}