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 2014/02/19 17:01:32 UTC
[08/12] git commit: Use correct partitioner in
AbstractViewSSTableFinder patch by jbellis;
reviewed by yukim for CASSANDRA-6734
Use correct partitioner in AbstractViewSSTableFinder
patch by jbellis; reviewed by yukim for CASSANDRA-6734
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/84103bbe
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/84103bbe
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/84103bbe
Branch: refs/heads/cassandra-2.0
Commit: 84103bbe2894706d224dc5975ca6bdaaa6f7f6c4
Parents: 55d8da4
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Feb 19 09:58:28 2014 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Feb 19 09:58:28 2014 -0600
----------------------------------------------------------------------
.../apache/cassandra/db/ColumnFamilyStore.java | 30 +++++++-------------
.../org/apache/cassandra/db/DataTracker.java | 7 +++++
2 files changed, 17 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/84103bbe/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 38d87db..f25f934 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -1448,17 +1448,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
return markCurrentViewReferenced().sstables;
}
- abstract class AbstractViewSSTableFinder
- {
- abstract List<SSTableReader> findSSTables(DataTracker.View view);
- protected List<SSTableReader> sstablesForRowBounds(AbstractBounds<RowPosition> rowBounds, DataTracker.View view)
- {
- RowPosition stopInTree = rowBounds.right.isMinimum() ? view.intervalTree.max() : rowBounds.right;
- return view.intervalTree.search(Interval.<RowPosition, SSTableReader>create(rowBounds.left, stopInTree));
- }
- }
-
- private ViewFragment markReferenced(AbstractViewSSTableFinder finder)
+ private ViewFragment markReferenced(Function<DataTracker.View, List<SSTableReader>> filter)
{
List<SSTableReader> sstables;
DataTracker.View view;
@@ -1473,7 +1463,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
break;
}
- sstables = finder.findSSTables(view);
+ sstables = filter.apply(view);
if (SSTableReader.acquireReferences(sstables))
break;
// retry w/ new view
@@ -1489,9 +1479,9 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
public ViewFragment markReferenced(final DecoratedKey key)
{
assert !key.isMinimum();
- return markReferenced(new AbstractViewSSTableFinder()
+ return markReferenced(new Function<DataTracker.View, List<SSTableReader>>()
{
- List<SSTableReader> findSSTables(DataTracker.View view)
+ public List<SSTableReader> apply(DataTracker.View view)
{
return compactionStrategy.filterSSTablesForReads(view.intervalTree.search(key));
}
@@ -1504,11 +1494,11 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
*/
public ViewFragment markReferenced(final AbstractBounds<RowPosition> rowBounds)
{
- return markReferenced(new AbstractViewSSTableFinder()
+ return markReferenced(new Function<DataTracker.View, List<SSTableReader>>()
{
- List<SSTableReader> findSSTables(DataTracker.View view)
+ public List<SSTableReader> apply(DataTracker.View view)
{
- return compactionStrategy.filterSSTablesForReads(sstablesForRowBounds(rowBounds, view));
+ return compactionStrategy.filterSSTablesForReads(view.sstablesInBounds(rowBounds));
}
});
}
@@ -1519,13 +1509,13 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
*/
public ViewFragment markReferenced(final Collection<AbstractBounds<RowPosition>> rowBoundsCollection)
{
- return markReferenced(new AbstractViewSSTableFinder()
+ return markReferenced(new Function<DataTracker.View, List<SSTableReader>>()
{
- List<SSTableReader> findSSTables(DataTracker.View view)
+ public List<SSTableReader> apply(DataTracker.View view)
{
Set<SSTableReader> sstables = Sets.newHashSet();
for (AbstractBounds<RowPosition> rowBounds : rowBoundsCollection)
- sstables.addAll(sstablesForRowBounds(rowBounds, view));
+ sstables.addAll(view.sstablesInBounds(rowBounds));
return ImmutableList.copyOf(sstables);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/84103bbe/src/java/org/apache/cassandra/db/DataTracker.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java b/src/java/org/apache/cassandra/db/DataTracker.java
index 8886c39..c1ae00f 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.compaction.OperationType;
+import org.apache.cassandra.dht.AbstractBounds;
import org.apache.cassandra.io.sstable.Descriptor;
import org.apache.cassandra.io.sstable.SSTableReader;
import org.apache.cassandra.io.util.FileUtils;
@@ -594,5 +595,11 @@ public class DataTracker
{
return String.format("View(pending_count=%d, sstables=%s, compacting=%s)", memtablesPendingFlush.size(), sstables, compacting);
}
+
+ public List<SSTableReader> sstablesInBounds(AbstractBounds<RowPosition> rowBounds)
+ {
+ RowPosition stopInTree = rowBounds.right.isMinimum(memtable.cfs.partitioner) ? intervalTree.max() : rowBounds.right;
+ return intervalTree.search(Interval.<RowPosition, SSTableReader>create(rowBounds.left, stopInTree));
+ }
}
}