PCPB-25616: Smart Batching
Zero to Hero — Understanding your team's performance feature from the ground up
Part I — Foundations You Need First
- 01Event Loops: How Single-Threaded I/O Works (EVL)
- 02poll(), epoll, POLLIN/POLLOUT — The I/O Multiplexing Layer
- 03TCP Under the Hood: Nagle, TCP_NODELAY, TCP_CORK, Syscalls
- 04Redis/Valkey Fundamentals: Commands, Pipelining, RESP Protocol
- 05hiredis: The C Redis Client Library Internals
Part II — The PCG Architecture
- 06PCG UPF Architecture: PEP, Data-Plane, Valkey, and How They Connect
- 07PFCP Session Flow: What Happens When a Session is Created
- 08Data-Plane Threading: Control Thread, Spare Thread, Core Loop
- 09EVL in PCG: Timers, Defers, Poll, and the Iteration Cycle
Part III — The DB Client Libraries
- 10db-proxy: How It Works and Why It's Slow
- 11db-mux: How It Works and Why It's 2.5× Faster
- 12Batching at Every Layer: Application, Redis, TCP, TLS
Part IV — The Feature: What's Being Changed
- 13Feature Goals: What We're Optimizing and Why
- 14Data-Plane Changes: db-mux Migration + MSET Batching
- 15PEP Changes: db-mux Migration (and Why Batching Doesn't Help Here)
- 16Signaling Path: TCP/TLS Corking for HTTP/2
- 17Rejected Ideas: Futex Wakeup, Rest Hubber, and Why They Failed
Part V — Testing & Measuring Performance
- 18Performance Metrics: CPU%, Rate@80%, Latency p99
- 19Test Cases: MaxSignaling, Stability, Latency Jitter
- 20Reading Test Results: What the Numbers Mean
Start with Chapter 1: Event Loops