asterixdb-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (ASTERIXDB-2149) Improve NormalizedKey on Sorting
Date Mon, 27 Nov 2017 21:20:00 GMT


ASF subversion and git services commented on ASTERIXDB-2149:

Commit ed469381235990ce5ecd2f242b679190ef2ca263 in asterixdb's branch refs/heads/master from
[;h=ed46938 ]

[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
Sonar-Qube: Jenkins <>
Tested-by: Jenkins <>
Contrib: Jenkins <>
Integration-Tests: Jenkins <>
Reviewed-by: abdullah alamoudi <>

> Improve NormalizedKey on Sorting
> --------------------------------
>                 Key: ASTERIXDB-2149
>                 URL:
>             Project: Apache AsterixDB
>          Issue Type: Improvement
>            Reporter: Chen Luo
>            Assignee: Chen Luo
> Normalized keys are used to improve sorting performance by avoiding random memory accesses.
However, currently it has several limitations:
> # Normalized key computer is missing for some types, e.g., UUID
> # It only helps with unequal keys. When two keys are equal, it still requires random
accesses to do comparison.

This message was sent by Atlassian JIRA

View raw message