[
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)