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 Petrov (JIRA)" <ji...@apache.org> on 2016/12/06 16:48:58 UTC

[jira] [Commented] (CASSANDRA-12910) SASI: calculatePrimary() always returns null

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

Alex Petrov commented on CASSANDRA-12910:
-----------------------------------------

I've used a simple test to verify and I think your fix is good. Although I do not see a good way to test it without exposing a lot of internals for now.

So what happens is in {{getView}} instead of querying all SSTables, we're going to query only those which would (possibly) yield results for the expression that involves the least amount of sstables. The order does not matter, as it's going to be changed later in {{RangeIntersectionIterator}}, depending on the size of token trees. 

I've tested the patch on our CI: 

|[3.X|https://github.com/ifesdjeen/cassandra/tree/12910-3.x]|[utest|https://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-12910-3.x-testall/]|[dtest|https://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-12910-3.x-dtest/]|
|[trunk|https://github.com/ifesdjeen/cassandra/tree/12910-trunk]|[utest|https://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-12910-trunk-testall/]|[dtest|https://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-12910-trunk-dtest/]|


> SASI: calculatePrimary() always returns null
> --------------------------------------------
>
>                 Key: CASSANDRA-12910
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12910
>             Project: Cassandra
>          Issue Type: Bug
>          Components: sasi
>            Reporter: Corentin Chary
>            Assignee: Corentin Chary
>            Priority: Minor
>             Fix For: 3.x
>
>         Attachments: 0002-sasi-fix-calculatePrimary.patch
>
>
> While investigating performance issues with SASI  (https://github.com/criteo/biggraphite/issues/174 if you want to know more) I ended finding calculatePrimary() in QueryController.java which apparently should return the "primary index".
> It lacks documentation, and I'm unsure what the "primary index" should be, but apparently this function never returns one because primaryIndexes.size() is always 0.
> https://github.com/apache/cassandra/blob/81f6c784ce967fadb6ed7f58de1328e713eaf53c/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java#L237
> I'm unsure if the proper fix is checking if the collection is empty or reversing the operator (selecting the index with higher cardinality versus the one with lower cardinality).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)