Sign in

Jaromir Hamala

@jerrinot.bsky.social
48 followers 75 following 18 posts

I play with distributed systems by day and poke various runtimes by night. Engineer @QuestDB, @Hazelcast alumnus.

PostsRepliesMedia
Reposted by Jaromir Hamala
Jean-Philippe Bempel @jpbempel.bsky.social · 21/07/2026
Grouping frequently called C2 nmethods in CodeCache github.com/openjdk/jdk/... included in jdk 27
github.com
8326205: Grouping frequently called C2 nmethods in CodeCache by chadrako · Pull Request #27858 · openjdk/jdk
Summary This PR implements JDK-8326205, introducing experimental support for grouping hot code within the CodeCache. Problem Modern CPUs use the branch target buffer (BTB), part of the branch predi...
034
Jaromir Hamala @jerrinot.bsky.social · 16/07/2026
I was wrong on LinkedIn and as a punishment I wrote a blog. The blog includes CPU speculations, conditional instructions, questionable benchmarks and a bit of compiler archeology. Enjoy! The blog: questdb.com/blog/cmov-vs...
questdb.com
The Most Expensive Instruction Might Be… cmov | QuestDB
A trip through HotSpot's C2 branch-to-cmov heuristic: it measures branch bias, not predictability, and in a tight loop that mismatch is worth up to 2.9x.
034
Jaromir Hamala @jerrinot.bsky.social · 03/07/2026
How does a compiler prove that `(x << 2) & -4` is equivalent to just `x << 2`? That's the question I'm exploring in my latest blog post. Brought to you by insatiable curiosity and a high tolerance for embarrassment! :) Enjoy: questdb.com/blog/jvm-jit...
questdb.com
The mask that compiles to nothing: how HotSpot's JIT learned to reason about bits | QuestDB
A deep dive into the known-bits abstraction that recently landed in HotSpot's C2 JIT compiler: the same tristate-bit abstraction LLVM and GCC use, and why it lets the JVM delete redundant masks and sh...
120
Jaromir Hamala @jerrinot.bsky.social · 22/06/2026
Lies, Damn Lies and Database Benchmarks: questdb.com/blog/lies-da...
screenshot from the article. text on the screenshot: 
Scenario 1: the Parquet tiling competition
Let's start simple. There is a single Parquet file holding the dataset (about 14 GB), and we need to query it. We picked five engines that all read external Parquet directly: DuckDB, Polars, ClickHouse, DataFusion, and Salesforce Hyper. Four of them spin up a fresh CLI or Python process for each query invocation. Polars is the exception: ClickBench drives it as a long-lived Python session, which will matter in a moment.
010
Jaromir Hamala @jerrinot.bsky.social · 11/06/2026
More people should know about Fray. It’s a concurrency testing tool for the JVM. It runs your test in a loop while forcing different thread interleavings. Much better than the classic strategy: run it in a loop, maybe throw in stress-ng and pray :) Link: github.com/cmu-pasta/fray
screenshot of https://github.com/cmu-pasta/fray/blob/main/docs/bugs.md - bugs found by Fray
083
Reposted by Jaromir Hamala
Felipe O. Carvalho @felipe.rs · 24/03/2026
Generating random number is really hard. Sometimes there is a bug in the CPU that you’re using. rocksdb.org/blog/2026/02...
rocksdb.org
RocksDB development finds a CPU bug
This is the story of how a RocksDB unit test I added four years ago, a mini-stress test you might call it, revealed a novel hardware bug in a newer CPU. It w...
031
Reposted by Jaromir Hamala
Phil Eaton @eatonphil.bsky.social · 25/02/2026
I started a software research company notes.eatonphil.com/2026-02-25-i...
6938
Jaromir Hamala @jerrinot.bsky.social · 13/01/2026
I did some OpenJDK commit exploration and I thought I could blog about it too. Here it is: questdb.com/blog/jvm-cur...
questdb.com
How a 40-Line Fix Eliminated a 400x Performance Gap | QuestDB
A deep dive into an OpenJDK commit that replaced slow /proc file parsing with a single syscall, revealing obscure Linux kernel internals and a 20-year-old optimization opportunity.
044
Reposted by Jaromir Hamala
Nicolas Fränkel 🇪🇺🇺🇦🇬🇪 @frankel.ch · 29/12/2025
#Java "Magic" types: The ones you can't name (non-denotable types) www.linkedin.com...
044
Reposted by Jaromir Hamala
Brice Dutheil @bricedutheil.bsky.social · 22/12/2025
github.com/ibraheemdev/... A collection of "modern" #Unix tools
github.com
GitHub - ibraheemdev/modern-unix: A collection of modern/faster/saner alternatives to common unix commands.
A collection of modern/faster/saner alternatives to common unix commands. - ibraheemdev/modern-unix
042
Jaromir Hamala @jerrinot.bsky.social · 11/12/2025
My machine froze when I connected async-profiler and I wrote an article about it. It involves debugging a half-dead Linux kernel, performing live surgery on a frozen CPU with GDB, pulling off a questionable resurrection and other party tricks :) Read the full autopsy: questdb.com/blog/async-p...
questdb.com
How a Kernel Bug Froze My Machine: Debugging an Async-profiler Deadlock | QuestDB
How I investigated and worked around a kernel bug that caused async-profiler to freeze my machine whenever I tried to use a profiler.
032
Jaromir Hamala @jerrinot.bsky.social · 27/11/2025
TIL: Early exit makes 'javac' to duplicate 'finally' blocks. Interesting read: www.benf.org/other/cfr/fi...
benf.org
CFR - yet another java decompiler - What about finally?
001
Reposted by Jaromir Hamala
Gunnar Morling @gunnarmorling.dev · 25/11/2025
📝 Blogged: "On Idempotency Keys" Discussing several options for ensuring exactly-once processing in distributed systems using idempotency keys, from UUIDs to monotonically increasing sequences. 👉 www.morling.dev/blog/on-idem...
2388
Reposted by Jaromir Hamala
Andres Almiray @andresalmiray.com · 11/11/2025
Hi everyone! An ongoing reorganization at my current employer has prompted me to seek for a new role and would appreciate your support. I'm open to remote (anywhere) and hybrid roles in Switzerland. I have 25+ years experience as a software developer, 8 as devrel www.linkedin.com/posts/aalmir...
linkedin.com
#opensource #opentowork | Andres Almiray
Hi everyone! An ongoing reorganization at my current employer has prompted me to seek for a new role and would appreciate your support. I'm open to remote (anywhere) and hybrid roles in Switzerland (...
23239
Jaromir Hamala @jerrinot.bsky.social · 24/10/2025
My new bug: Race between stdout and stderr causing CI builds to fail. questdb.com/blog/azure-p...
questdb.com
The Mystery of the Phantom Quote in My CI Builds | QuestDB
How a phantom single quote from bash's set -x caused random CI build failures through a race condition between stdout and stderr in Azure Pipelines.
020
Jaromir Hamala @jerrinot.bsky.social · 24/09/2025
My new blog post: questdb.com/blog/rust-fe... If you like seeing how high-level code becomes low-level reality, then you will like it. Enjoy!
questdb.com
From Rust to Reality: The Hidden Journey of fetch_max | QuestDB
A compiler deep-dive tracing Rust’s AtomicU64::fetch_max from macro expansion and rustc intrinsics through LLVM’s atomicrmw umax and AtomicExpandPass to the final x86-64 CAS loop
020
Reposted by Jaromir Hamala
Richard Goliáš @richardgolias.cz · 22/05/2025
Jestli chodíte v Brně na obědy do restaurací, tak vyzkoušejte tuhle novou stránku www.lepsimenu.cz s přehledem poledních menu. www.reddit.com/r/Brno/s/qA4...
reddit.com
From the Brno community on Reddit: Projekt: Polední meníčka v Brně
Explore this post and more from the Brno community
041
Jaromir Hamala @jerrinot.bsky.social · 30/04/2025
TIL: Columbia (US places) and Colombia (South American country) have different spellings, though they sound identical. Both named after Christopher Columbus but spelt differently in English vs Spanish, I guess?
000
Jaromir Hamala @jerrinot.bsky.social · 25/04/2025
Oracle Hint of the Day: INDEX_FFS for a Fast Full index Scan. When you're really trying to tell the optimizer how you feel about that full table scan suggestion😂 SELECT /*+ INDEX_FFS ( o order_pk ) */ COUNT(*) FROM order_items l, orders o WHERE l.order_id > 50 AND l.order_id = o.order_id;
010
Jaromir Hamala @jerrinot.bsky.social · 01/04/2025
Modern microprocessors, a 90-minute guide: www.lighterra.com/papers/moder...
lighterra.com
Modern Microprocessors - A 90-Minute Guide!
A brief, pulls-no-punches, fast-paced introduction to the main design aspects of modern processor microarchitecture.
010
Jaromir Hamala @jerrinot.bsky.social · 11/03/2025
Breaking news: Archaeologists discover ancient scroll revealing Satan's proudest invention wasn't fire or sin, but 1-indexed arrays.
media.tenor.com
a cartoon of a devil with a speech bubble that says " lol "
ALT: a cartoon of a devil with a speech bubble that says " lol "
000
Reposted by Jaromir Hamala
Gunnar Morling @gunnarmorling.dev · 05/03/2025
🚨📝 Blogged: "Let's Take a Look at... KIP-932: Queues for Kafka!" Kicking off a new blog series to explore all sorts of interesting technologies, projects, and services in the data and streaming space. Up first: the new #ApacheKafka 4.0 API for queue semantics. 👉 www.morling.dev/blog/kip-932...
A source code listing showing how to use the new Kafka share group API to acknowledge messages one by one.
0227
Jaromir Hamala @jerrinot.bsky.social · 27/02/2025
Interesting issue in OpenJDK's UUID.compareTo(): It uses signed comparisons, which leads to unexpected sorting when the highest bit in either word is set. It can't be fixed since altering a sort order between versions is a big no-no.
110