
A Java Performance Quest: Taming Unsafe Code, Embracing Idiomatic Style & Debugging the Linux Kernel
Apr 27, 2026
Jaromir Hamala, a generalist engineer behind QuestDB with deep JVM and low-level debugging experience. He talks about high-throughput time-series design, balancing Unsafe with modern Java APIs like Vector/Valhalla, native JIT and bytecode approaches for speed. He also recounts tracking down a Linux kernel deadlock and clever CPU-level tricks for extreme performance.
AI Snips
Chapters
Transcript
Episode notes
Time As The Primary Database Design Constraint
- Time is a first-class optimization in time-series databases and shapes storage and query strategies.
- QuestDB uses a three-tier design: append-only write head for ingestion, time-sorted mid tier for fast queries, and Parquet archive tier for cheap object-storage access.
Mechanical Sympathy Lets Java Compete With Native Code
- You can write very high-performance systems in Java by adopting a mechanically sympathetic style rather than idiomatic object-heavy patterns.
- QuestDB's core is mostly Java but follows HFT-style practices: avoid allocations, reuse objects, and control memory layout for throughput.
Prototype Vector API Filters Before Rewriting Native JIT
- Try using the Java Vector API and upcoming Valhalla features to replace fragile native JIT layers and reach portable vectorized execution.
- Jaromir prototypes generating Java bytecode for filters to avoid platform-specific C++ JITs and to support ARM vectorization.

