Clone
luochen01 <cluo8@uci.edu>
committed
on 27 Nov 17
[ASTERIXDB-2149] Enable multiple normalized keys in sort
- user model changes: no
- storage format changes: no
- interface changes: yes. The… Show more
[ASTERIXDB-2149] Enable multiple normalized keys in sort

- user model changes: no

- storage format changes: no

- interface changes: yes. The interface of sort is changed.

Currently, during the (in-memory) sort, we use an int normalized keys to

speed up comparisions by avoiding random memory accesses. However, this

technique is inefficient if the first 4 bytes of the sorting keys are

not distinctive. From performance point of view, it's better to use

longer normalized keys when it's possible (2-3x improvements).

This is enabled by this patch by:

- Allowing multiple normalized keys during sort, and the length of each

normalized key can be longer (multiple integers).

- Enable memory budgeting of pointer directories as well during sort

(but for performance, we still use int[], instead of byte[] from frame).

The next patch will enable the AsterixDB layer to use this feature to

speed up sort performance.

Change-Id: I4354242ff731b4b006b8446b58f65873047dde78

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2127

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: abdullah alamoudi <bamousaa@gmail.com>

Show less

master + 3 more