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:27 UTC

svn commit: r813543 - /incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java

Author: jbellis
Date: Thu Sep 10 18:48:26 2009
New Revision: 813543

URL: http://svn.apache.org/viewvc?rev=813543&view=rev
Log:
convert ssTables_ to a Set, since the filename is encapsulated in the SSTR object now
patch by jbellis; reviewed by Chris Goffinet for CASSANDRA-414

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

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=813543&r1=813542&r2=813543&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:26 2009
@@ -77,7 +77,7 @@
     private AtomicReference<BinaryMemtable> binaryMemtable_;
 
     /* SSTables on disk for this column family */
-    private Map<String, SSTableReader> ssTables_ = new HashMap<String, SSTableReader>();
+    private Set<SSTableReader> ssTables_ = new HashSet<SSTableReader>();
 
     /* Modification lock used for protecting reads from compactions. */
     private ReentrantReadWriteLock sstableLock_ = new ReentrantReadWriteLock(true);
@@ -182,7 +182,7 @@
                 logger_.error("Corrupt file " + filename + "; skipped", ex);
                 continue;
             }
-            ssTables_.put(filename, sstable);
+            ssTables_.add(sstable);
         }
 
         // submit initial check-for-compaction request
@@ -226,7 +226,7 @@
         sb.append("Number of files on disk : " + ssTables_.size());
         sb.append(newLineSeparator);
         double totalSpace = 0d;
-        for (SSTableReader sstable: ssTables_.values())
+        for (SSTableReader sstable: ssTables_)
         {
             File f = new File(sstable.getFilename());
             totalSpace += f.length();
@@ -573,7 +573,7 @@
         sstableLock_.writeLock().lock();
         try
         {
-            ssTables_.put(sstable.getFilename(), sstable);
+            ssTables_.add(sstable);
             ssTableCount = ssTables_.size();
         }
         finally
@@ -660,7 +660,7 @@
     {
         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))
+        for (List<SSTableReader> sstables : getCompactionBuckets(ssTables_, 50L * 1024L * 1024L))
         {
             if (sstables.size() < minThreshold)
             {
@@ -692,7 +692,7 @@
         if (skip > 0L)
         {
             sstables = new ArrayList<SSTableReader>();
-            for (SSTableReader sstable : ssTables_.values())
+            for (SSTableReader sstable : ssTables_)
             {
                 if (sstable.length() < skip * 1024L * 1024L * 1024L)
                 {
@@ -702,7 +702,7 @@
         }
         else
         {
-            sstables = new ArrayList<SSTableReader>(ssTables_.values());
+            sstables = new ArrayList<SSTableReader>(ssTables_);
         }
         doFileCompaction(sstables);
     }
@@ -742,7 +742,7 @@
 
     boolean doAntiCompaction(List<Range> ranges, EndPoint target, List<String> fileList) throws IOException
     {
-        return doFileAntiCompaction(new ArrayList<SSTableReader>(ssTables_.values()), ranges, target, fileList);
+        return doFileAntiCompaction(new ArrayList<SSTableReader>(ssTables_), ranges, target, fileList);
     }
 
     void forceCleanup()
@@ -758,7 +758,7 @@
      */
     void doCleanupCompaction() throws IOException
     {
-        List<SSTableReader> sstables = new ArrayList<SSTableReader>(ssTables_.values());
+        List<SSTableReader> sstables = new ArrayList<SSTableReader>(ssTables_);
         for (SSTableReader sstable : sstables)
         {
             doCleanup(sstable);
@@ -783,7 +783,7 @@
         sstableLock_.writeLock().lock();
         try
         {
-            ssTables_.remove(sstable.getFilename());
+            ssTables_.remove(sstable);
             sstable.delete();
         }
         finally
@@ -1098,12 +1098,12 @@
         {
             if (newfile != null)
             {
-                ssTables_.put(newfile, ssTable);
+                ssTables_.add(ssTable);
                 totalBytesWritten += (new File(newfile)).length();
             }
             for (SSTableReader sstable : sstables)
             {
-                ssTables_.remove(sstable.getFilename());
+                ssTables_.remove(sstable);
                 sstable.delete();
             }
         }
@@ -1240,7 +1240,7 @@
     /** not threadsafe.  caller must have lock_ acquired. */
     public Collection<SSTableReader> getSSTables()
     {
-        return Collections.unmodifiableCollection(ssTables_.values());
+        return Collections.unmodifiableCollection(ssTables_);
     }
 
     public ReentrantReadWriteLock.ReadLock getReadLock()
@@ -1346,7 +1346,7 @@
             }
 
             /* add the SSTables on disk */
-            List<SSTableReader> sstables = new ArrayList<SSTableReader>(ssTables_.values());
+            List<SSTableReader> sstables = new ArrayList<SSTableReader>(ssTables_);
             for (SSTableReader sstable : sstables)
             {
                 iter = filter.getSSTableColumnIterator(sstable);
@@ -1512,7 +1512,7 @@
         sstableLock_.readLock().lock();
         try
         {
-            for (SSTableReader ssTable : new ArrayList<SSTableReader>(ssTables_.values()))
+            for (SSTableReader ssTable : new ArrayList<SSTableReader>(ssTables_))
             {
                 // mkdir
                 File sourceFile = new File(ssTable.getFilename());