A First Look at Service Mesh
Starting from the limitations of microservices, this post walks through the Sidecar approach behind Service Mesh, mainstream implementations like Istio, and how Knative and Serverless grew out of the mesh.
IntelliJ IDEA Default Shortcuts
A roundup of the most-used default keybindings in IntelliJ IDEA, grouped by navigation, editing, refactoring, and debugging, with memorization tips and conflict troubleshooting.
Sizing a Thread Pool: How Many Core Threads?
Estimating a thread pool's core thread count for CPU-bound, IO-bound, and mixed workloads — and why load testing is what ultimately settles the number.
A Deep Dive into the InnoDB Buffer Pool
A detailed look at the InnoDB Buffer Pool's layered structure and page management: the Page Hash, the Free/LRU/Flush lists, hot/cold data partitioning, and the four moments dirty pages get flushed to disk.
The MySQL Execution Pipeline
Tracing a SQL statement's full journey through MySQL: from the connector to the executor, how the Buffer Pool cuts disk IO, and the roles of the Redo Log, Bin Log, and Undo Log along with two-phase commit.
A History of the HTTP Protocol
Tracing HTTP's evolution from 0.9 to 3.0: what each generation of the protocol solved, what problems it left behind, and how QUIC redesigned the transport layer.
How the JVM Thread Pool Scales Up
In HotSpot, Java threads map one-to-one to kernel threads, making creation and destruction expensive. A walkthrough of ThreadPoolExecutor's core parameters, its task-handling and scaling flow, and the classic pitfall where an unbounded queue silently disables your configuration.
Bloom Filters Explained
Starting from bitmaps and multiple hashing, this post walks through the Bloom filter's membership guarantees, where false positives come from and how to trade them off, why the original structure can't support deletion, and how counting Bloom filters fill that gap.
False Sharing: The Hidden Performance Killer
Starting from CPU cache hierarchies and cache lines, this post explains how false sharing arises in multi-core concurrent code, and covers common mitigations such as cache line padding.