Author: jbellis
Date: Wed Dec 29 17:45:29 2010
New Revision: 1053682

URL: http://svn.apache.org/viewvc?rev=1053682&view=rev
Log:
collect secondary index tombstones immediately
patch by jbellis; reviewed by tjake for CASSANDRA-1914

Modified:
    cassandra/branches/cassandra-0.7/CHANGES.txt
    
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
    
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1053682&r1=1053681&r2=1053682&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Dec 29 17:45:29 2010
@@ -17,6 +17,7 @@ dev
  * allow [LOCAL|EACH]_QUORUM to be used with non-NetworkTopology 
    replication Strategies
  * increased amount of index locks for faster commitlog replay
+ * collect secondary index tombstones immediately (CASSANDRA-1914)
 
 
 0.7.0-rc3

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1053682&r1=1053681&r2=1053682&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 Wed Dec 29 17:45:29 2010
@@ -1958,4 +1958,9 @@ public class ColumnFamilyStore implement
         return indexes;
     }
 
+    /** true if this CFS contains secondary index data */
+    public boolean isIndex()
+    {
+        return partitioner instanceof LocalPartitioner;
+    }
 }

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1053682&r1=1053681&r2=1053682&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 Wed Dec 29 17:45:29 2010
@@ -116,7 +116,12 @@ public class CompactionManager implement
                             // if we have too many to compact all at once, 
compact older ones first -- this avoids
                             // re-compacting files we just created.
                             Collections.sort(sstables);
-                            return doCompaction(cfs, sstables.subList(0, 
Math.min(sstables.size(), maxThreshold)), (int) (System.currentTimeMillis() / 
1000) - cfs.metadata.getGcGraceSeconds());
+                            int gcBefore = cfs.isIndex()
+                                         ? Integer.MAX_VALUE
+                                         : (int) (System.currentTimeMillis() / 
1000) - cfs.metadata.getGcGraceSeconds();
+                            return doCompaction(cfs,
+                                                sstables.subList(0, 
Math.min(sstables.size(), maxThreshold)),
+                                                gcBefore);
                         }
                     }
                 }


Reply via email to