gripleaf opened a new pull request, #254:
URL: https://github.com/apache/paimon-cpp/pull/254
### Purpose
Linked issue: N/A
Make the oneTBB dependency configurable through `PAIMON_USE_TBB`.
- Keep TBB enabled by default to preserve existing behavior.
- Do not resolve, build, or link TBB when `PAIMON_USE_TBB=OFF`.
- Encapsulate TBB concurrent containers behind Paimon utility classes.
- Provide C++17 standard-library fallback implementations.
- Allow statically linked custom concurrent backends to register through
`ConcurrentBackendFactory`.
- Continue compiling and registering custom backends when TBB is enabled,
while the TBB implementation bypasses the factory.
- Remove exposed TBB types from the asynchronous key-value producer and
consumer.
### Tests
- Built `paimon_objlib`, `paimon_shared`, and `paimon_static` with
`PAIMON_USE_TBB=ON`.
- Built `paimon_objlib`, `paimon_shared`, and `paimon_static` with
`PAIMON_USE_TBB=OFF`.
- Ran concurrent bounded queue tests with TBB enabled and disabled.
- Ran concurrent hash map tests with TBB enabled and disabled.
- Verified that registered custom backends are selected when TBB is
disabled.
- Verified that registered custom backends are not created when TBB is
enabled.
- Ran pre-commit checks for all changed files.
- Ran `git diff --check`.
The complete `paimon-common-test` target could not be completed because of
a pre-existing Apache Arrow/Parquet `GetColumn` signature incompatibility
unrelated to this change.
### API and Format
This change does not affect the public API under `include/paimon/`.
It does not change the storage format or protocol.
The new concurrent container abstractions and backend factory are internal
utilities under `src/paimon/common/utils/`.
### Documentation
Updated `docs/source/building.rst` to document:
- The `PAIMON_USE_TBB` CMake option.
- Building Paimon without resolving or linking TBB.
- Custom concurrent backend registration.
- Static archive linker-retention requirements for registration objects.
### Generative AI tooling
Generated-by: OpenAI Codex (GPT-5)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]