You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Alex Liu (JIRA)" <ji...@apache.org> on 2013/10/18 00:03:42 UTC

[jira] [Comment Edited] (CASSANDRA-6048) Add the ability to use multiple indexes in a single query

    [ https://issues.apache.org/jira/browse/CASSANDRA-6048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13798474#comment-13798474 ] 

Alex Liu edited comment on CASSANDRA-6048 at 10/17/13 10:02 PM:
----------------------------------------------------------------

http://www.postgresql.org/docs/8.1/static/indexes-bitmap-scans.html

It talks about the usage of multiple indexes, but doesn't say anything about the when to use single index + loop and when to use join.

With multiple indexes support, we can expand CQL query to include "OR".



was (Author: alexliu68):
I will check it.

> Add the ability to use multiple indexes in a single query
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-6048
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6048
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Alex Liu
>            Assignee: Alex Liu
>             Fix For: 2.1
>
>         Attachments: 6048-1.2-branch.txt, 6048-trunk.txt
>
>
> Existing data filtering uses the following algorithm
> {code}
>    1. find best selective predicate based on the smallest mean columns count
>    2. fetch rows for the best selective predicate predicate, then filter the data based on other predicates left.
> {code}
> So potentially we could improve the performance by
> {code}
>    1.  joining multiple predicates then do the data filtering for other predicates.
>    2.  fine tune the best predicate selection algorithm
> {code}
> For multiple predicate join, it could improve performance if one predicate has many entries and another predicate has a very few of entries. It means a few index CF read, join the row keys, fetch rows then filter other predicates
> Another approach is to have index on multiple columns.



--
This message was sent by Atlassian JIRA
(v6.1#6144)