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 2009/09/10 20:48:19 UTC

svn commit: r813542 - in /incubator/cassandra/trunk/src/java/org/apache/cassandra/db: BinaryMemtable.java ColumnFamilyStore.java Memtable.java Table.java

Author: jbellis
Date: Thu Sep 10 18:48:19 2009
New Revision: 813542

URL: http://svn.apache.org/viewvc?rev=813542&view=rev
Log:
combine addToList and storeLocation; rename to addSSTable
patch by jbellis; reviewed by Chris Goffinet for CASSANDRA-414

Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java?rev=813542&r1=813541&r2=813542&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java Thu Sep 10 18:48:19 2009
@@ -175,7 +175,7 @@
                 writer.append(key, bytes);
             }
         }
-        cfStore.storeLocation(writer.closeAndOpenReader());
+        cfStore.addSSTable(writer.closeAndOpenReader());
         columnFamilies_.clear();       
     }
 }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=813542&r1=813541&r2=813542&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Thu Sep 10 18:48:19 2009
@@ -238,24 +238,7 @@
         sb.append(newLineSeparator);
         return sb.toString();
     }
-
-    /*
-     * This is called after bootstrap to add the files
-     * to the list of files maintained.
-    */
-    void addToList(SSTableReader file)
-    {
-        sstableLock_.writeLock().lock();
-        try
-        {
-            ssTables_.put(file.getFilename(), file);
-        }
-        finally
-        {
-            sstableLock_.writeLock().unlock();
-        }
-    }
-
+    
     /*
      * This method forces a compaction of the SSTables on disk. We wait
      * for the process to complete by waiting on a future pointer.
@@ -574,7 +557,8 @@
     }
 
     /*
-     * Called after the Memtable flushes its in-memory data. This information is
+     * Called after the Memtable flushes its in-memory data, or we add a file
+     * via bootstrap. This information is
      * cached in the ColumnFamilyStore. This is useful for reads because the
      * ColumnFamilyStore first looks in the in-memory store and the into the
      * disk to find the key. If invoked during recoveryMode the
@@ -583,7 +567,7 @@
      * param @ filename - filename just flushed to disk
      * param @ bf - bloom filter which indicates the keys that are in this file.
     */
-    void storeLocation(SSTableReader sstable)
+    void addSSTable(SSTableReader sstable)
     {
         int ssTableCount;
         sstableLock_.writeLock().lock();
@@ -603,7 +587,7 @@
         if (ssTableCount >= MinorCompactionManager.MINCOMPACTION_THRESHOLD)
         {
             if (logger_.isDebugEnabled())
-              logger_.debug("Submitting " + columnFamily_ + " for compaction");
+              logger_.debug("Added " + sstable.getFilename() + ".  Submitting " + columnFamily_ + " for compaction");
             MinorCompactionManager.instance().submit(this);
         }
     }
@@ -674,6 +658,7 @@
      */
     int doCompaction(int minThreshold, int maxThreshold) throws IOException
     {
+        logger_.debug("Checking to see if compaction of " + columnFamily_ + " would be useful");
         int filesCompacted = 0;
         for (List<SSTableReader> sstables : getCompactionBuckets(ssTables_.values(), 50L * 1024L * 1024L))
         {
@@ -686,6 +671,7 @@
             Collections.sort(sstables);
             filesCompacted += doFileCompaction(sstables.subList(0, Math.min(sstables.size(), maxThreshold)));
         }
+        logger_.debug(filesCompacted + " files compacted");
         return filesCompacted;
     }
 

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java?rev=813542&r1=813541&r2=813542&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java Thu Sep 10 18:48:19 2009
@@ -214,7 +214,7 @@
         }
         SSTableReader ssTable = writer.closeAndOpenReader();
         cfStore.onMemtableFlush(cLogCtx);
-        cfStore.storeLocation(ssTable);
+        cfStore.addSSTable(ssTable);
         buffer.close();
         isFlushed_ = true;
         logger_.info("Completed flushing " + this);

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java?rev=813542&r1=813541&r2=813542&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java Thu Sep 10 18:48:19 2009
@@ -23,18 +23,12 @@
 import java.io.File;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.concurrent.ExecutionException;
-
-import org.apache.commons.collections.IteratorUtils;
-import org.apache.commons.collections.Predicate;
-import org.apache.commons.lang.ArrayUtils;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.dht.BootstrapInitiateMessage;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.io.DataInputBuffer;
 import org.apache.cassandra.io.SSTableReader;
-import org.apache.cassandra.io.FileStruct;
 import org.apache.cassandra.io.SSTableWriter;
 import org.apache.cassandra.net.EndPoint;
 import org.apache.cassandra.net.IVerbHandler;
@@ -185,7 +179,7 @@
                     sstable = SSTableWriter.renameAndOpen(streamContext.getTargetFile());
                     
                     //TODO add a sanity check that this sstable has all its parts and is ok
-                    Table.open(tableName).getColumnFamilyStore(temp[0]).addToList(sstable);
+                    Table.open(tableName).getColumnFamilyStore(temp[0]).addSSTable(sstable);
                     logger_.info("Bootstrap added " + sstable.getFilename());
                 }
                 catch (IOException e)