Problem
Redis starts with zero configuration — no redis.conf, no command-line arguments. Default maxmemory is 0 (unlimited). Redis is used as Celery broker, results backend, and filter state cache. A spike in SQL Lab queries can consume all available memory, OOM-killing Redis and any co-located containers.
File: src/container.py (Redis class, lines 376–390)
Impact
Redis OOM → Celery broker dies → all async queries fail → Superset appears frozen.
Fix
Create services/superset/redis.conf:
maxmemory 512mb
maxmemory-policy allkeys-lru
tcp-backlog 511
timeout 300
Mount into Redis container. Also apply Redis admin guide recommendations in the entrypoint:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
sysctl vm.overcommit_memory=1
Acceptance Criteria
Problem
Redis starts with zero configuration — no
redis.conf, no command-line arguments. Defaultmaxmemoryis 0 (unlimited). Redis is used as Celery broker, results backend, and filter state cache. A spike in SQL Lab queries can consume all available memory, OOM-killing Redis and any co-located containers.File:
src/container.py(Redis class, lines 376–390)Impact
Redis OOM → Celery broker dies → all async queries fail → Superset appears frozen.
Fix
Create
services/superset/redis.conf:Mount into Redis container. Also apply Redis admin guide recommendations in the entrypoint:
Acceptance Criteria
services/superset/redis.confcreated withmaxmemory=512mb,maxmemory-policy=allkeys-lru,timeout=300redis.confand starts withredis-server /etc/redis/redis.confvm.overcommit_memory=1set in container entrypoint