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 2010/01/27 00:21:05 UTC
svn commit: r903486 - in
/incubator/cassandra/trunk/src/java/org/apache/cassandra:
db/ColumnFamilyStore.java io/SSTableTracker.java
Author: jbellis
Date: Tue Jan 26 23:21:05 2010
New Revision: 903486
URL: http://svn.apache.org/viewvc?rev=903486&view=rev
Log:
add SSTableTracker.replace & refactor. patch by jbellis
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=903486&r1=903485&r2=903486&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 Tue Jan 26 23:21:05 2010
@@ -616,11 +616,7 @@
void replaceCompactedSSTables(Collection<SSTableReader> sstables, Iterable<SSTableReader> replacements)
throws IOException
{
- for (SSTableReader sstable : replacements)
- {
- ssTables_.add(sstable);
- }
- ssTables_.markCompacted(sstables);
+ ssTables_.replace(sstables, replacements);
}
public static List<Memtable> getUnflushedMemtables(String cfName)
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=903486&r1=903485&r2=903486&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 Tue Jan 26 23:21:05 2010
@@ -34,27 +34,43 @@
this.sstables = Collections.unmodifiableSet(new HashSet<SSTableReader>(sstables));
}
- public synchronized void add(SSTableReader sstable)
+ public synchronized void replace(Collection<SSTableReader> oldSSTables, Iterable<SSTableReader> replacements) throws IOException
{
- assert sstable != null;
- assert sstable.getIndexPositions() != null;
Set<SSTableReader> sstablesNew = new HashSet<SSTableReader>(sstables);
- sstablesNew.add(sstable);
- sstables = Collections.unmodifiableSet(sstablesNew);
- }
- // todo replace w/ compactionfinished for CASSANDRA-431
- public synchronized void markCompacted(Iterable<SSTableReader> compacted) throws IOException
- {
- Set<SSTableReader> sstablesNew = new HashSet<SSTableReader>(sstables);
- for (SSTableReader sstable : compacted)
+ for (SSTableReader sstable : replacements)
+ {
+ assert sstable.getIndexPositions() != null;
+ sstablesNew.add(sstable);
+ }
+
+ for (SSTableReader sstable : oldSSTables)
{
sstablesNew.remove(sstable);
sstable.markCompacted();
}
+
sstables = Collections.unmodifiableSet(sstablesNew);
}
+ public synchronized void add(SSTableReader sstable)
+ {
+ assert sstable != null;
+ try
+ {
+ replace(Collections.<SSTableReader>emptyList(), Arrays.asList(sstable));
+ }
+ catch (IOException e)
+ {
+ throw new AssertionError(e);
+ }
+ }
+
+ public synchronized void markCompacted(Collection<SSTableReader> compacted) throws IOException
+ {
+ replace(compacted, Collections.<SSTableReader>emptyList());
+ }
+
// the modifiers create new, unmodifiable objects each time; the volatile fences the assignment
// so we don't need any further synchronization for the common case here
public Set<SSTableReader> getSSTables()