[ 
https://issues.apache.org/jira/browse/KUDU-2846?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Todd Lipcon resolved KUDU-2846.
-------------------------------
       Resolution: Fixed
         Assignee: Todd Lipcon
    Fix Version/s: 1.10.0

Calling this complete for now. A few ideas for future work while this is fresh 
in my mind:
- for string equality, we could likely vectorize the portion where we check 
length for equality
- for dictionary-coded columns, we can probably vectorize the predicate 
evaluation against the dictionary code words (KUDU-2854)
- for small IN lists, we can probably implement them more efficiently 
(KUDU-2853 has some ideas)


> Special case predicate evaluation for SIMD support
> --------------------------------------------------
>
>                 Key: KUDU-2846
>                 URL: https://issues.apache.org/jira/browse/KUDU-2846
>             Project: Kudu
>          Issue Type: Improvement
>          Components: perf, tserver
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>            Priority: Major
>             Fix For: 1.10.0
>
>
> In the common case of predicate evaluation on primitive types, we can likely 
> improve performance as follows:
> - doing the comparisons while ignoring nullability and selectedness (any null 
> or unselected cells may have junk data, which causes a junk comparison result)
> - take the resulting bitmask of comparison results and use bitwise ops to 
> account for null/unselected cells to ensure that those result in a 'false' 
> comparison
> For some types of comparisons this can result in SIMD operations. For others, 
> at least, this will remove most branches from the path. This should speed up 
> queries like TPCH Q6 which spends 25% of its time in predicate evaluation.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to