🧪 Problem-Driven Systems Lab

🛠️ Opciones de solución#

OpciónQué resuelveQué cuesta
Devolución garantizada por el lenguaje (try-with-resources, using, defer, finally, Drop, context manager)Elimina la fuga de raíz: leaked queda en 0 por construcciónNinguno. Es la opción correcta en los siete stacks
Timeout de adquisiciónConvierte una indisponibilidad silenciosa en un 503 contable y con Retry-AfterHay que decidir qué hacer con el que no alcanzó
Dimensionar con la ley de LittleUn pool proporcional al tráfico real en vez de a la intuiciónRequiere medir throughput y tiempo de servicio, no estimarlos
Métrica acquired - releasedDetecta la fuga antes de que agote el poolDos contadores; el costo es acordarse de mirarlos
Health check que mire el poolEl servicio se declara no-listo antes de colgar requestsUn pool momentáneamente lleno puede sacar de rotación una instancia sana

Las dos primeras no son alternativas: la devolución garantizada evita la fuga, el timeout limita el daño de la saturación legítima. Hacen falta las dos.


Caso 14 · Agotamiento del pool de conexiones⬅️ README del caso · ⚖️ Comparativa de los 7 stacks

🗺️ Contexto · 🩺 Síntomas · 🔍 Diagnóstico · 🧠 Causas raíz · 🛠️ Opciones de solución · ⚖️ Trade-offs · 💼 Valor de negocio · 🚨 Postmortem

Ver esta carpeta en GitHub ↗