Back to roadmap

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. 1. Video-start failures spike during a match. Restarting the playback pods doesn't help. What is the most likely true root cause?

  2. 2. Which metric reveals Redis connection-pool exhaustion earliest?

  3. 3. What does a Redis client-output-buffer-limit (COBL) breach cause?

  4. 4. Which mitigation addresses the bottleneck rather than the symptom?