[1/2] git commit: Fix saving caches when a table is dropped
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
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
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