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;