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 2013/10/08 18:17:22 UTC
[6/6] git commit: merge from 2.0
merge from 2.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c8434acf
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c8434acf
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c8434acf
Branch: refs/heads/trunk
Commit: c8434acf75880a5bc273dd8e288a0de01fb90e27
Parents: cfac7fb 21ab8f8
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Oct 8 11:17:13 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Oct 8 11:17:13 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../db/index/SecondaryIndexSearcher.java | 18 +++++++++++++++---
.../db/index/composites/CompositesSearcher.java | 5 ++++-
.../cassandra/db/index/keys/KeysSearcher.java | 15 ++++++++-------
4 files changed, 28 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c8434acf/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c8434acf/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
index 1f72f62,f3e993d..f18357b
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java
@@@ -22,6 -22,10 +22,8 @@@ import java.util.*
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.filter.ExtendedFilter;
-import org.apache.cassandra.thrift.IndexExpression;
-import org.apache.cassandra.thrift.IndexOperator;
+ import org.apache.cassandra.tracing.Tracing;
+ import org.apache.cassandra.utils.FBUtilities;
public abstract class SecondaryIndexSearcher
{
@@@ -56,22 -54,32 +58,32 @@@
{
IndexExpression best = null;
int bestMeanCount = Integer.MAX_VALUE;
+ Map<SecondaryIndex, Integer> candidates = new HashMap<>();
+
for (IndexExpression expression : clause)
{
- //skip columns belonging to a different index type
- if(!columns.contains(expression.column))
+ // skip columns belonging to a different index type
- if (!columns.contains(expression.column_name))
++ if (!columns.contains(expression.column))
continue;
- SecondaryIndex index = indexManager.getIndexForColumn(expression.column_name);
- if (index == null || (expression.op != IndexOperator.EQ))
+ SecondaryIndex index = indexManager.getIndexForColumn(expression.column);
+ if (index == null || expression.operator != IndexExpression.Operator.EQ)
continue;
int columns = index.getIndexCfs().getMeanColumns();
+ candidates.put(index, columns);
if (columns < bestMeanCount)
{
best = expression;
bestMeanCount = columns;
}
}
+
+ if (best == null)
+ Tracing.trace("No applicable indexes found");
+ else
+ Tracing.trace("Candidate index mean cardinalities are {}. Scanning with {}.",
- FBUtilities.toString(candidates), indexManager.getIndexForColumn(best.column_name).getIndexName());
++ FBUtilities.toString(candidates), indexManager.getIndexForColumn(best.column).getIndexName());
+
return best;
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c8434acf/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c8434acf/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
index eefef0c,e14f865..3740e24
--- a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
@@@ -25,14 -28,13 +28,12 @@@ import org.slf4j.Logger
import org.slf4j.LoggerFactory;
import org.apache.cassandra.db.*;
- import org.apache.cassandra.db.filter.*;
- import org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex;
- import org.apache.cassandra.db.index.PerColumnSecondaryIndex;
- import org.apache.cassandra.db.index.SecondaryIndex;
- import org.apache.cassandra.db.index.SecondaryIndexManager;
- import org.apache.cassandra.db.index.SecondaryIndexSearcher;
+ import org.apache.cassandra.db.filter.ExtendedFilter;
+ import org.apache.cassandra.db.filter.IDiskAtomFilter;
+ import org.apache.cassandra.db.filter.QueryFilter;
+ import org.apache.cassandra.db.index.*;
import org.apache.cassandra.dht.AbstractBounds;
import org.apache.cassandra.dht.Range;
-import org.apache.cassandra.thrift.IndexExpression;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.HeapAllocator;