Repository: cassandra
Updated Branches:
  refs/heads/trunk 53c0ef171 -> 73e70340a


Nodetool import row cache invalidation races with adding sstables to tracker

patch by Jordan West; reviewed by jasobrown for CASSANDRA-14529


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

Branch: refs/heads/trunk
Commit: 73e70340a173b8ff56665cddb70756e83f7d37b0
Parents: 53c0ef1
Author: Jordan West <jorda...@gmail.com>
Authored: Mon Jun 18 13:54:44 2018 -0700
Committer: Jason Brown <jasedbr...@gmail.com>
Committed: Wed Jun 20 06:10:43 2018 -0700

----------------------------------------------------------------------
 CHANGES.txt                                           | 1 +
 src/java/org/apache/cassandra/db/SSTableImporter.java | 9 +++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/73e70340/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index fd236a2..9ead7e6 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0
+ * Nodetool import row cache invalidation races with adding sstables to 
tracker (CASSANDRA-14529)
  * Fix assertions in LWTs after TableMetadata was made immutable 
(CASSANDRA-14356)
  * Abort compactions quicker (CASSANDRA-14397)
  * Support light-weight transactions in cassandra-stress (CASSANDRA-13529)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/73e70340/src/java/org/apache/cassandra/db/SSTableImporter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SSTableImporter.java 
b/src/java/org/apache/cassandra/db/SSTableImporter.java
index e9f6fe6..c919d25 100644
--- a/src/java/org/apache/cassandra/db/SSTableImporter.java
+++ b/src/java/org/apache/cassandra/db/SSTableImporter.java
@@ -134,8 +134,7 @@ public class SSTableImporter
                     Descriptor oldDescriptor = entry.getKey();
                     if (currentDescriptors.contains(oldDescriptor))
                         continue;
-                    if (options.invalidateCaches && cfs.isRowCacheEnabled())
-                        invalidateCachesForSSTable(oldDescriptor);
+
                     File targetDir = getTargetDirectory(dir, oldDescriptor, 
entry.getValue());
                     Descriptor newDescriptor = 
cfs.getUniqueDescriptorFor(entry.getKey(), targetDir);
                     maybeMutateMetadata(entry.getKey(), options);
@@ -176,6 +175,12 @@ public class SSTableImporter
         try (Refs<SSTableReader> refs = Refs.ref(newSSTables))
         {
             cfs.getTracker().addSSTables(newSSTables);
+            for (SSTableReader reader : newSSTables)
+            {
+                if (options.invalidateCaches && cfs.isRowCacheEnabled())
+                    invalidateCachesForSSTable(reader.descriptor);
+            }
+
         }
 
         logger.info("Done loading load new SSTables for {}/{}", 
cfs.keyspace.getName(), cfs.getTableName());


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to