Author: jbellis
Date: Sat Feb  6 18:22:22 2010
New Revision: 907266

URL: http://svn.apache.org/viewvc?rev=907266&view=rev
Log:
adding sstables to tracker via constructor was inconsistent with add() method.  
r/m constructor code path, forcing use of add() for consistency.  patch by Stu 
Hood; reviewed by jbellis for CASSANDRA-772

Modified:
    
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
    
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableTracker.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=907266&r1=907265&r2=907266&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
 Sat Feb  6 18:22:22 2010
@@ -187,7 +187,8 @@
             }
             sstables.add(sstable);
         }
-        ssTables_ = new SSTableTracker(sstables);
+        ssTables_ = new SSTableTracker();
+        ssTables_.add(sstables);
 
         double v = DatabaseDescriptor.getRowsCachedFraction(table, 
columnFamilyName);
         int cacheSize;
@@ -554,7 +555,7 @@
      */
     public void addSSTable(SSTableReader sstable)
     {
-        ssTables_.add(sstable);
+        ssTables_.add(Arrays.asList(sstable));
         CompactionManager.instance.submitMinorIfNeeded(this);
     }
 

Modified: 
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableTracker.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableTracker.java?rev=907266&r1=907265&r2=907266&view=diff
==============================================================================
--- 
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableTracker.java 
(original)
+++ 
incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableTracker.java 
Sat Feb  6 18:22:22 2010
@@ -32,9 +32,9 @@
     private final AtomicLong liveSize = new AtomicLong();
     private final AtomicLong totalSize = new AtomicLong();
 
-    public SSTableTracker(Collection<SSTableReader> sstables)
+    public SSTableTracker()
     {
-        this.sstables = Collections.unmodifiableSet(new 
HashSet<SSTableReader>(sstables));
+        this.sstables = Collections.<SSTableReader>emptySet();
     }
 
     public synchronized void replace(Collection<SSTableReader> oldSSTables, 
Iterable<SSTableReader> replacements) throws IOException
@@ -53,7 +53,8 @@
 
         for (SSTableReader sstable : oldSSTables)
         {
-            sstablesNew.remove(sstable);
+            boolean removed = sstablesNew.remove(sstable);
+            assert removed;
             sstable.markCompacted();
             liveSize.addAndGet(-sstable.bytesOnDisk());
         }
@@ -61,12 +62,12 @@
         sstables = Collections.unmodifiableSet(sstablesNew);
     }
 
-    public synchronized void add(SSTableReader sstable)
+    public synchronized void add(Iterable<SSTableReader> sstables)
     {
-        assert sstable != null;
+        assert sstables != null;
         try
         {
-            replace(Collections.<SSTableReader>emptyList(), 
Arrays.asList(sstable));
+            replace(Collections.<SSTableReader>emptyList(), sstables);
         }
         catch (IOException e)
         {


Reply via email to