[ https://issues.apache.org/jira/browse/CASSANDRA-6048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13800948#comment-13800948 ]
Alex Liu commented on CASSANDRA-6048: ------------------------------------- http://remis-thoughts.blogspot.com/2012/03/perfect-hashes-in-java-given-set-of-m.html provides a perfect hash for a set. We can select the primary index and secondary index combination set to create a perfect hash. Usage is here. http://code.google.com/p/perfect-hashes/source/browse/trunk/src/test/java/com/googlecode/perfecthashes/PerfectHashesTest.java?r=33 > 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)