From 0fb4df971685d7616131063205b93007330a4ad6 Mon Sep 17 00:00:00 2001 From: Sylvain Lebresne Date: Mon, 18 Apr 2011 14:44:17 +0000 Subject: [PATCH] Invalidate cache for streamed rows patch by slebresne; reviewed by jbellis for CASSANDRA-2420 git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7@1094604 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/cassandra/io/sstable/SSTableWriter.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java index fed0ba3054..badea75998 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java @@ -309,6 +309,11 @@ public class SSTableWriter extends SSTable while (rowPosition < dfile.length()) { key = SSTableReader.decodeKey(StorageService.getPartitioner(), desc, ByteBufferUtil.readWithShortLength(dfile)); + + // If the key is in (row) cache, we need the cache to be aware of the streamed row. To keep this simple, we + // simply invalidate the row (we always invalidate but invalidating a key not in the cache is a no-op). + cfs.invalidateCachedRow(key); + iwriter.afterAppend(key, rowPosition); long dataSize = SSTableReader.readRowSize(dfile, desc);