You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Dániel Gábor Vankó (Jira)" <ji...@apache.org> on 2026/10/07 08:08:00 UTC
[jira] [Comment Edited] (IMPALA-15442) Upgrade CRoaring library
[ https://issues.apache.org/jira/browse/IMPALA-15442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18124344#comment-18124344 ]
Dániel Gábor Vankó edited comment on IMPALA-15442 at 10/7/26 8:07 AM:
----------------------------------------------------------------------
[Commit in cloudera/native-toolchain|https://github.com/cloudera/native-toolchain/commit/d24ea5d706ce36547210d8f363cb79bef8aa2ad8]:
{noformat}
commit d24ea5d706ce36547210d8f363cb79bef8aa2ad8
Author: Daniel Vanko <dv...@cloudera.com>
Date: Fri Oct 2 13:31:55 2026 +0200
IMPALA-15442: Add CRoaring 5.2.2
Adds the CRoaring library to the toolchain so that Impala can stop
vendoring an amalgamated copy under be/src/thirdparty/roaring. Both
shared and static library variants are built (like simdutf, CRoaring's
CMake produces one or the other, so each is built separately), with
tests and benchmarks disabled.
Three flags beyond the usual set are needed:
- ROARING_USE_CPM=OFF: the configure step otherwise downloads
CPM.cmake from GitHub, even though the only thing that needs it
(cmocka, for the tests) is disabled.
- CMAKE_POSITION_INDEPENDENT_CODE=ON: without it libroaring.a cannot
be linked into a shared object.
- CMAKE_INSTALL_LIBDIR=lib: CRoaring uses GNUInstallDirs, which
installs into lib64 on non-Debian platforms.
The static variant is built last so that the installed CMake package
config describes it. Both variants write the same export files, and
CMake skips installing a file whose timestamp is not newer than the
installed copy, so the exported config is removed before each install.
Otherwise the static install can leave the shared build's
roaring-targets.cmake in place, declaring a SHARED imported target that
points at libroaring.a.
The upstream source tarball keeps the project's mixed-case spelling,
while the toolchain package name is lowercased, so the archive name and
the extracted directory are passed explicitly and the directory is
renamed, as is done for googlebenchmark.
Change-Id: I37a86dcf26d330e9508c1839cdea2d80d33a9319
Assisted-by: Claude Opus 5 (Claude Code)
Reviewed-on: http://gerrit.cloudera.org:8080/25007
Reviewed-by: Zoltan Borok-Nagy <bo...@cloudera.com>
Tested-by: Zoltan Borok-Nagy <bo...@cloudera.com>{noformat}
was (Author: JIRAUSER308518):
[Commit in cloudera/native-toolchain|https://github.com/cloudera/native-toolchain/commit/d24ea5d706ce36547210d8f363cb79bef8aa2ad8]:
{noformat}
commit d24ea5d706ce36547210d8f363cb79bef8aa2ad8
Author: Daniel Vanko <dv...@cloudera.com>
Date: Fri Oct 2 13:31:55 2026 +0200
IMPALA-15442: Add CRoaring 5.2.2
Adds the CRoaring library to the toolchain so that Impala can stop
vendoring an amalgamated copy under be/src/thirdparty/roaring. Both
shared and static library variants are built (like simdutf, CRoaring's
CMake produces one or the other, so each is built separately), with
tests and benchmarks disabled.
Three flags beyond the usual set are needed:
- ROARING_USE_CPM=OFF: the configure step otherwise downloads
CPM.cmake from GitHub, even though the only thing that needs it
(cmocka, for the tests) is disabled.
- CMAKE_POSITION_INDEPENDENT_CODE=ON: without it libroaring.a cannot
be linked into a shared object.
- CMAKE_INSTALL_LIBDIR=lib: CRoaring uses GNUInstallDirs, which
installs into lib64 on non-Debian platforms.
The static variant is built last so that the installed CMake package
config describes it. Both variants write the same export files, and
CMake skips installing a file whose timestamp is not newer than the
installed copy, so the exported config is removed before each install.
Otherwise the static install can leave the shared build's
roaring-targets.cmake in place, declaring a SHARED imported target that
points at libroaring.a.
The upstream source tarball keeps the project's mixed-case spelling,
while the toolchain package name is lowercased, so the archive name and
the extracted directory are passed explicitly and the directory is
renamed, as is done for googlebenchmark.
Change-Id: I37a86dcf26d330e9508c1839cdea2d80d33a9319
Assisted-by: Claude Opus 5 (Claude Code)
Reviewed-on: http://gerrit.cloudera.org:8080/25007
Reviewed-by: Zoltan Borok-Nagy <bo...@cloudera.com>
Tested-by: Zoltan Borok-Nagy <bo...@cloudera.com>{noformat}
> Upgrade CRoaring library
> ------------------------
>
> Key: IMPALA-15442
> URL: https://issues.apache.org/jira/browse/IMPALA-15442
> Project: IMPALA
> Issue Type: Improvement
> Components: Backend
> Reporter: Zoltán Borók-Nagy
> Assignee: Dániel Gábor Vankó
> Priority: Major
> Labels: performance
>
> Based on https://lemire.me/blog/2026/09/22/a-summer-of-ai-optimization/ a lot of libraries have improved performance, including CRoaring.
> Currently the amalgamized library is part of the Impala repo:
> https://github.com/apache/impala/tree/master/be/src/thirdparty/roaring
> We could add a newer version to Native Toolchain and use that in our builds.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org