A Java Performance Quest: Taming Unsafe Code, Embracing Idiomatic Style & Debugging the Linux Kernel
Jaromir Hamala, a Java engineer at QuestDB, discusses how the time-series database achieves high ingestion rates (millions of rows/second) using off-heap memory via Java Unsafe, a custom JIT compiler in C++, and JNI-based mmap. He explains QuestDB's three-tier architecture (write-ahead log, query-optimized tier, Parquet archiving) and the ongoing migration from Java 17 to 21. He shares excitement about Java Vector API for cross-platform SIMD filtering and Project Valhalla for memory layout control, aiming to write idiomatic Java without sacrificing mechanical sympathy. He also recounts debugging a Linux kernel deadlock triggered by a profiler, and his bronze-medal finish in the 1 Billion Row Challenge by exploiting CPU instruction-level parallelism.
Table of contents
TranscriptAnalytical versus Timeseries Databases [ 01:33 ]Why Is Java Appropriate for High-Data-Ingestion Systems? [ 07:42 ]Upgrading From "Old-School" Java [ 10:57 ]Modern Java Aligns Idiomatic Programming with Mechanical Sympathy [ 18:29 ]Linux Kernel Debugging One-On-One [ 22:56 ]How to Get Java to Process 1B Records in Seconds [ 28:43 ]Is AI Native Coding for Tinkerers? [ 34:03 ]About the AuthorSort: