Remus Rusanu created HIVE-4613:
----------------------------------
Summary: Improve cache friendliness of VectorHashKeyWrapper
Key: HIVE-4613
URL: https://issues.apache.org/jira/browse/HIVE-4613
Project: Hive
Issue Type: Sub-task
Components: Query Processor
Affects Versions: vectorization-branch
Reporter: Remus Rusanu
Assignee: Remus Rusanu
Priority: Minor
1) the implementation of VectorHashKeyWrapper uses an array of primitives even
when there is only one key, which implies one extra pointer chase. for single
key group by we can do a more optimal implementation that uses a primitive
field. The draw back is that the VectorHashKeyWrapper becomes abstract and the
API uses virtual functions. Note that the most critical function is .equals,
which is already virtual.
2) make the bucket list comparison more cache friendly. I expect this to be the
critical for perf because of the number of calls on bucket collisions. If we
ensure that instances with equals hashcode were allocated together (eg. using
array allocations in batches) then we can get some benefit from allocation
proximity (TLB, NUMA).
I'll leave these as minor since we have no evidence atm that the issue actually
exists, nor any way to measure the impact of a fix.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira