Mar 02 2025 68 mins 41
An airhacks.fm conversation with Francesco Nigro (@forked_franz) about:
Netty committer and performance engineer at Red Hat,
discussion of Netty's history,
focus on low-level core components like buffers and allocators in Netty,
relationship between Vert.x and Netty where Vert.x provides a more opinionated and user-friendly abstraction over Netty,
explanation of reactive back pressure implementation in Vert.x,
performance advantages of Vert.x over Netty due to batching and reactive design,
detailed explanation of IO_uring as a Linux-specific asynchronous I/O mechanism,
comparison between event loop architecture and Project Loom for scalability,
limitations of Loom when working with IO_uring due to design incompatibilities,
discovery of a major Java type system scalability issue related to instance-of checks against interfaces,
explanation of how this issue affected Hibernate performance,
deep investigation using assembly-level analysis to identify the root cause,
collaboration with Andrew Haley to fix the 20-year-old JDK issue,
performance improvements of 2-3x after fixing the issue,
discussion of CPU cache coherency problems in NUMA architectures,
explanation of how container environments like kubernetes can worsen performance issues due to CPU scheduling,
insights into how modern CPUs handle branch prediction and speculation,
impact of branch misprediction on performance especially with memory access patterns,
discussion of memory bandwidth limitations in AI/ML workloads,
advantages of unified memory architectures like Apple M-series chips for AI inference
Francesco Nigro on twitter: @forked_franz