JVM
4 engineering logs on JVM. Newest first.
- Virtual threads changed the calculus for blocking I/O and not for CPU work
Why a million virtual threads is genuinely fine for waiting and pointless for computing, which operations still pin a carrier thread, and why pooling virtual threads defeats the entire point.
- Heap looks fine, pod still OOM killed
Why a JVM with a 2GB heap needs considerably more than 2GB of container memory, which native regions grow without appearing on any heap graph, and why the kernel kills you without a Java exception.
- Your p99 is a garbage collector setting
Why a tail latency that no profiler explains is usually a stop the world pause, why allocation rate matters more than heap size, and why a bigger heap can make the tail worse.
- Local cache plus distributed cache: the coherence bill nobody budgets for
Why adding an in-process cache in front of Redis turns one consistency problem into N, why a pub/sub invalidation that nobody retries is a guarantee you do not have, and why the local TTL is the real bound on how wrong you can be.