[1/2] git commit: Fix saving caches when a table is dropped

2014-09-16 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 5f37e9fa5 -> feb30e21c


Fix saving caches when a table is dropped

patch by Aleksey Yeschenko; reviewed by Benedict Elliott Smith for
CASSANDRA-7784


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e25d94e6
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e25d94e6
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e25d94e6

Branch: refs/heads/trunk
Commit: e25d94e6e9f2f18efa7cfb8c7ed02e826b413984
Parents: 4efb6dc
Author: Aleksey Yeschenko 
Authored: Tue Sep 16 00:30:21 2014 -0700
Committer: Aleksey Yeschenko 
Committed: Tue Sep 16 00:34:01 2014 -0700

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 37 ---
 .../org/apache/cassandra/cache/CacheKey.java| 38 ++--
 .../apache/cassandra/cache/CounterCacheKey.java |  6 ++--
 .../org/apache/cassandra/cache/KeyCacheKey.java |  4 +--
 .../org/apache/cassandra/cache/RowCacheKey.java |  7 ++--
 .../org/apache/cassandra/config/Schema.java |  9 +
 7 files changed, 43 insertions(+), 59 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e25d94e6/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 8fe4253..f89cc6d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.1
+ * Fix saving caches when a table is dropped (CASSANDRA-7784)
  * Add better error checking of new stress profile (CASSANDRA-7716)
  * Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom 
(CASSANDRA-7934)
  * Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e25d94e6/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index affd69b..d8fd5e0 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.compaction.CompactionInfo;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.compaction.OperationType;
@@ -64,11 +65,18 @@ public class AutoSavingCache extends 
InstrumentingCache names = Schema.instance.getCF(cfId);
+return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version);
+}
+
 public Writer getWriter(int keysToSave)
 {
 return new Writer(keysToSave);
@@ -103,7 +111,7 @@ public class AutoSavingCache extends 
InstrumentingCache 
extends InstrumentingCache writers = new 
HashMap<>();
+HashMap writers = new HashMap<>();
 
 try
 {
 for (K key : keys)
 {
-CacheKey.PathInfo path = key.getPathInfo();
-SequentialWriter writer = writers.get(path);
+UUID cfId = key.getCFId();
+if (!Schema.instance.hasCF(key.getCFId()))
+continue; // the table has been dropped.
+
+SequentialWriter writer = writers.get(cfId);
 if (writer == null)
 {
-writer = tempCacheFile(path);
-writers.put(path, writer);
+writer = tempCacheFile(cfId);
+writers.put(cfId, writer);
 }
 
 try
@@ -238,13 +249,13 @@ public class AutoSavingCache 
extends InstrumentingCache info : 
writers.entrySet())
+for (Map.Entry entry : writers.entrySet())
 {
-CacheKey.PathInfo path = info.getKey();
-SequentialWriter writer = info.getValue();
+UUID cfId = entry.getKey();
+SequentialWriter writer = entry.getValue();
 
 File tmpFile = new File(writer.getPath());
-File cacheFile = getCachePath(path.keyspace, 
path.columnFamily, path.cfId, CURRENT_VERSION);
+File cacheFile = getCachePath(cfId, CURRENT_VERSION);
 
 cacheFile.delete(); // ignore error if it didn't exist
 if (!tmpFile.renameTo(cacheFile))
@@ -254,9 +265,9 @@ public class AutoSavingCache extends 
InstrumentingCache extends 
InstrumentingCachehttp://git-wip-us.apache.org/repos/asf/cassa

git commit: Fix saving caches when a table is dropped

2014-09-16 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 05db5384f -> e25d94e6e (forced update)


Fix saving caches when a table is dropped

patch by Aleksey Yeschenko; reviewed by Benedict Elliott Smith for
CASSANDRA-7784


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e25d94e6
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e25d94e6
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e25d94e6

Branch: refs/heads/cassandra-2.1
Commit: e25d94e6e9f2f18efa7cfb8c7ed02e826b413984
Parents: 4efb6dc
Author: Aleksey Yeschenko 
Authored: Tue Sep 16 00:30:21 2014 -0700
Committer: Aleksey Yeschenko 
Committed: Tue Sep 16 00:34:01 2014 -0700

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 37 ---
 .../org/apache/cassandra/cache/CacheKey.java| 38 ++--
 .../apache/cassandra/cache/CounterCacheKey.java |  6 ++--
 .../org/apache/cassandra/cache/KeyCacheKey.java |  4 +--
 .../org/apache/cassandra/cache/RowCacheKey.java |  7 ++--
 .../org/apache/cassandra/config/Schema.java |  9 +
 7 files changed, 43 insertions(+), 59 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e25d94e6/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 8fe4253..f89cc6d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.1
+ * Fix saving caches when a table is dropped (CASSANDRA-7784)
  * Add better error checking of new stress profile (CASSANDRA-7716)
  * Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom 
(CASSANDRA-7934)
  * Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e25d94e6/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index affd69b..d8fd5e0 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.compaction.CompactionInfo;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.compaction.OperationType;
@@ -64,11 +65,18 @@ public class AutoSavingCache extends 
InstrumentingCache names = Schema.instance.getCF(cfId);
+return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version);
+}
+
 public Writer getWriter(int keysToSave)
 {
 return new Writer(keysToSave);
@@ -103,7 +111,7 @@ public class AutoSavingCache extends 
InstrumentingCache 
extends InstrumentingCache writers = new 
HashMap<>();
+HashMap writers = new HashMap<>();
 
 try
 {
 for (K key : keys)
 {
-CacheKey.PathInfo path = key.getPathInfo();
-SequentialWriter writer = writers.get(path);
+UUID cfId = key.getCFId();
+if (!Schema.instance.hasCF(key.getCFId()))
+continue; // the table has been dropped.
+
+SequentialWriter writer = writers.get(cfId);
 if (writer == null)
 {
-writer = tempCacheFile(path);
-writers.put(path, writer);
+writer = tempCacheFile(cfId);
+writers.put(cfId, writer);
 }
 
 try
@@ -238,13 +249,13 @@ public class AutoSavingCache 
extends InstrumentingCache info : 
writers.entrySet())
+for (Map.Entry entry : writers.entrySet())
 {
-CacheKey.PathInfo path = info.getKey();
-SequentialWriter writer = info.getValue();
+UUID cfId = entry.getKey();
+SequentialWriter writer = entry.getValue();
 
 File tmpFile = new File(writer.getPath());
-File cacheFile = getCachePath(path.keyspace, 
path.columnFamily, path.cfId, CURRENT_VERSION);
+File cacheFile = getCachePath(cfId, CURRENT_VERSION);
 
 cacheFile.delete(); // ignore error if it didn't exist
 if (!tmpFile.renameTo(cacheFile))
@@ -254,9 +265,9 @@ public class AutoSavingCache extends 
InstrumentingCache extends 
InstrumentingCachehttp://git-w

git commit: Fix saving caches when a table is dropped

2014-09-16 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 4efb6dc8c -> 05db5384f


Fix saving caches when a table is dropped

patch by Aleksey Yeschenko; reviewed by Benedict Elliott Smith for
CASSANDRA-7784


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/05db5384
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/05db5384
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/05db5384

Branch: refs/heads/cassandra-2.1
Commit: 05db5384f163e1534b67bc6aa74efd1775c29830
Parents: 4efb6dc
Author: Aleksey Yeschenko 
Authored: Tue Sep 16 00:30:21 2014 -0700
Committer: Aleksey Yeschenko 
Committed: Tue Sep 16 00:30:21 2014 -0700

--
 CHANGES.txt |  1 +
 .../apache/cassandra/cache/AutoSavingCache.java | 35 --
 .../org/apache/cassandra/cache/CacheKey.java| 38 ++--
 .../apache/cassandra/cache/CounterCacheKey.java |  6 ++--
 .../org/apache/cassandra/cache/KeyCacheKey.java |  4 +--
 .../org/apache/cassandra/cache/RowCacheKey.java |  7 ++--
 .../org/apache/cassandra/config/Schema.java |  9 +
 7 files changed, 42 insertions(+), 58 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/05db5384/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 8fe4253..f89cc6d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.1
+ * Fix saving caches when a table is dropped (CASSANDRA-7784)
  * Add better error checking of new stress profile (CASSANDRA-7716)
  * Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom 
(CASSANDRA-7934)
  * Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05db5384/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index affd69b..30b6891 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.compaction.CompactionInfo;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.compaction.OperationType;
@@ -64,11 +65,18 @@ public class AutoSavingCache extends 
InstrumentingCache names = Schema.instance.getCF(cfId);
+return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version);
+}
+
 public Writer getWriter(int keysToSave)
 {
 return new Writer(keysToSave);
@@ -206,18 +214,21 @@ public class AutoSavingCache 
extends InstrumentingCache writers = new 
HashMap<>();
+HashMap writers = new HashMap<>();
 
 try
 {
 for (K key : keys)
 {
-CacheKey.PathInfo path = key.getPathInfo();
-SequentialWriter writer = writers.get(path);
+UUID cfId = key.getCFId();
+if (!Schema.instance.hasCF(key.getCFId()))
+continue; // the table has been dropped.
+
+SequentialWriter writer = writers.get(cfId);
 if (writer == null)
 {
-writer = tempCacheFile(path);
-writers.put(path, writer);
+writer = tempCacheFile(cfId);
+writers.put(cfId, writer);
 }
 
 try
@@ -238,13 +249,13 @@ public class AutoSavingCache 
extends InstrumentingCache info : 
writers.entrySet())
+for (Map.Entry entry : writers.entrySet())
 {
-CacheKey.PathInfo path = info.getKey();
-SequentialWriter writer = info.getValue();
+UUID cfId = entry.getKey();
+SequentialWriter writer = entry.getValue();
 
 File tmpFile = new File(writer.getPath());
-File cacheFile = getCachePath(path.keyspace, 
path.columnFamily, path.cfId, CURRENT_VERSION);
+File cacheFile = getCachePath(cfId, CURRENT_VERSION);
 
 cacheFile.delete(); // ignore error if it didn't exist
 if (!tmpFile.renameTo(cacheFile))
@@ -254,9 +265,9 @@ public class AutoSavingCache extends 
InstrumentingCache extends 
InstrumentingCachehttp://git-wip-us.apache.org/repos/asf/cassandra/blob/0