You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/02/17 21:46:52 UTC

svn commit: r1071777 - in /cassandra/branches/cassandra-0.6: CHANGES.txt src/java/org/apache/cassandra/db/CompactionManager.java

Author: jbellis
Date: Thu Feb 17 20:46:51 2011
New Revision: 1071777

URL: http://svn.apache.org/viewvc?rev=1071777&view=rev
Log:
make key cache preheating default to false
patch by jbellis; reviewed by brandonwilliams for CASSANDRA-2175

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

Modified: cassandra/branches/cassandra-0.6/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/CHANGES.txt?rev=1071777&r1=1071776&r2=1071777&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.6/CHANGES.txt Thu Feb 17 20:46:51 2011
@@ -4,6 +4,8 @@
  * update commitlog replay to catch bogus RowMutation lengths caused
    by unclean shutdown (CASSANDRA-2128)
  * add -Dhinted_handoff_throttle option (CASSANDRA-2161)
+ * make key cache preheating default to false; enable with
+   -Dcompaction_preheat_key_cache=true (CASSANDRA-2175)
 
 
 0.6.11

Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/CompactionManager.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1071777&r1=1071776&r2=1071777&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/CompactionManager.java (original)
+++ cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/CompactionManager.java Thu Feb 17 20:46:51 2011
@@ -282,6 +282,7 @@ public class CompactionManager implement
         executor.beginCompaction(cfs, ci);
 
         Map<DecoratedKey, SSTable.PositionSize> cachedKeys = new HashMap<DecoratedKey, SSTable.PositionSize>();
+        boolean preheatKeyCache = Boolean.getBoolean("compaction_preheat_key_cache");
 
         try
         {
@@ -309,12 +310,15 @@ public class CompactionManager implement
                     logger.warn("Large row " + row.key.key + " in " + cfs.getColumnFamilyName() + " " + rowsize + " bytes");
                 cfs.addToCompactedRowStats(rowsize);
 
-                for (SSTableReader sstable : sstables)
+                if (preheatKeyCache)
                 {
-                    if (sstable.getCachedPosition(row.key) != null)
+                    for (SSTableReader sstable : sstables)
                     {
-                        cachedKeys.put(row.key, new SSTable.PositionSize(prevpos, rowsize));
-                        break;
+                        if (sstable.getCachedPosition(row.key) != null)
+                        {
+                            cachedKeys.put(row.key, new SSTable.PositionSize(prevpos, rowsize));
+                            break;
+                        }
                     }
                 }
             }
@@ -326,7 +330,7 @@ public class CompactionManager implement
 
         SSTableReader ssTable = writer.closeAndOpenReader();
         cfs.replaceCompactedSSTables(sstables, Arrays.asList(ssTable));
-        for (Entry<DecoratedKey, SSTable.PositionSize> entry : cachedKeys.entrySet())
+        for (Entry<DecoratedKey, SSTable.PositionSize> entry : cachedKeys.entrySet()) // empty if preheat is off
             ssTable.cacheKey(entry.getKey(), entry.getValue());
         submitMinorIfNeeded(cfs);