Home / Companies / QuestDB / Blog / Post Details
Content Deep Dive

Immutable images when embedding QuestDB Java library and noexec /tmp

Blog post from QuestDB

Post Details
Company
Date Published
Author
QuestDB Team
Word Count
984
Language
English
Hacker News Points
-
Summary

QuestDB is an open-source time-series database designed for high-performance workloads, offering ultra-low latency, high ingestion throughput, and a multi-tier storage engine with native support for Parquet and SQL to ensure data portability and AI readiness without vendor lock-in. The guide addresses a specific issue that arises when QuestDB's Java library is used in environments where the /tmp directory is mounted with noexec, leading to errors due to the library attempting to unpack and execute native libraries from this directory. To mitigate this, the guide suggests pre-bundling the required native libraries (libquestdb.so and libquestdbr.so) with the application and configuring QuestDB to load them from a specified directory using the -Dquestdb.libs.dir parameter, thus avoiding the use of /tmp entirely. This approach is particularly relevant for teams building custom images or embedding the QuestDB Java library in other applications, while official QuestDB server container images and platform-specific distributions already handle this setup automatically. The guide emphasizes the importance of immutable builds and provides alternative strategies and troubleshooting tips for managing native libraries in hardened environments.