You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2011/04/10 20:49:54 UTC
svn commit: r1090867 -
/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/CompactionIterator.java
Author: slebresne
Date: Sun Apr 10 18:49:54 2011
New Revision: 1090867
URL: http://svn.apache.org/viewvc?rev=1090867&view=rev
Log:
Purge tombstone from row cache (0.7 version)
patch by slebresne; reviewed by jbellis for CASSANDRA-2305
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/CompactionIterator.java
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/CompactionIterator.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/CompactionIterator.java?rev=1090867&r1=1090866&r2=1090867&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/CompactionIterator.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/CompactionIterator.java Sun Apr 10 18:49:54 2011
@@ -32,6 +32,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.io.sstable.SSTableIdentityIterator;
import org.apache.cassandra.io.sstable.SSTableReader;
@@ -112,10 +113,15 @@ implements Closeable, ICompactionInfo
cfs.invalidateCachedRow(compactedRow.key);
return null;
}
- else
- {
- return compactedRow;
- }
+
+ // If the raw is cached, we call removeDeleted on it to have/ coherent query returns. However it would look
+ // like some deleted columns lived longer than gc_grace + compaction. This can also free up big amount of
+ // memory on long running instances
+ ColumnFamily cachedRow = cfs.getRawCachedRow(compactedRow.key);
+ if (cachedRow != null)
+ ColumnFamilyStore.removeDeleted(cachedRow, gcBefore);
+
+ return compactedRow;
}
finally
{