master · Module 3.5
Ingress/Egress, Buffer Overflows & Redis Bottlenecks (COBL)
Learning Objectives
- Trace how ingress/egress buffer pressure develops under a live-match surge.
- Diagnose Redis connection-pool exhaustion (COBL) as the true root cause behind cascading playback failures.
- Connect client output buffer limits, eviction, and latency to observable metrics.
- Choose mitigations that address the bottleneck rather than the symptom.
Key Concepts
Ingress/egress buffers under surge
During the toss-to-first-ball surge, connection and output buffers fill faster than they drain. Egress buffer growth and rising queue depth are early tells that a downstream dependency (often Redis) has become the constraint.
Redis connection-pool exhaustion
When the app's Redis pool is exhausted, requests queue waiting for a connection; latency climbs and eventually times out, cascading into playback/session failures. The symptom is video-start failures, but the root cause is pool saturation, not the playback service.
Client Output Buffer Limits (COBL)
Redis enforces client-output-buffer-limits; a slow or overloaded consumer whose output buffer exceeds the limit is disconnected, dropping pub/sub or replica streams. Under surge this manifests as intermittent session-state loss.
Fix the bottleneck, not the symptom
Restarting the playback pods (the symptom) does nothing. The right moves target the constraint: raise/scale the Redis connection pool, add read replicas, shed load, and correct output-buffer limits.
Warning
Video-start failures point at playback, but the true root cause is frequently Redis connection-pool exhaustion upstream. Restarting playback pods treats the symptom and the incident recurs immediately.
Insight
Watch pool wait time and blocked-client count, not just Redis CPU. Exhaustion shows up as clients WAITING for a connection long before CPU saturates.
Info
The cardinality-shock and cricket-buffer-storm War Rooms exercise exactly this diagnosis: correlate rising egress buffers, Redis pool wait, and playback failures to the real bottleneck.
Production Configs & Runbooks
Production configs and runbooks are a Pro feature.
Knowledge Check
1. Video-start failures spike during a match. Restarting the playback pods doesn't help. What is the most likely true root cause?
2. Which metric reveals Redis connection-pool exhaustion earliest?
3. What does a Redis client-output-buffer-limit (COBL) breach cause?
4. Which mitigation addresses the bottleneck rather than the symptom?