Evita la estampida con single flight: la primera petición que falla toma un bloqueo corto y recalcula mientras las demás esperan un momento o sirven el valor rancio. Combínalo con servir rancio mientras revalidas, de modo que una entrada expirada se siga sirviendo mientras un refresco corre en segundo plano, y añade jitter a los tiempos de vida para que las claves creadas juntas no expiren juntas. Para claves calientes conocidas, refresca de forma proactiva antes de que expiren.
Por qué lo preguntan los entrevistadores
Las preguntas de caché separan a quien ha añadido una caché de quien ha operado una. El entrevistador quiere el modo de fallo concreto, una estampida al expirar, y las mitigaciones estándar. También abre la conversación más difícil sobre invalidación, tolerancia a datos rancios y qué pasa cuando la propia caché se cae, que es donde suele derrumbarse una base de datos infradimensionada.
Cómo estructurar tu respuesta
- Nombra el mecanismo: muchos fallos de caché simultáneos sobre una clave caliente.
- Da el bloqueo single flight y qué hacen los que esperan.
- Añade servir rancio mientras revalidas y expiración con jitter.
- Menciona el escenario de caché fría y la planificación de capacidad.
Ejemplo de respuesta
El patrón es una estampida: una clave caliente expira y todas las peticiones concurrentes fallan en el mismo instante, así que todas ejecutan la misma consulta cara. El arreglo central es single flight, donde el primer fallo adquiere un bloqueo de vida corta sobre la clave y hace el trabajo, y el resto o espera al resultado o recibe el valor rancio un momento. Eso lo combino con expiración blanda: guardo un tiempo lógico de refresco dentro del valor y mantengo el tiempo de vida duro más largo, así que una entrada pasada de su hora de refresco se sigue sirviendo mientras un trabajador la recalcula por detrás. Los usuarios no ven la latencia en absoluto. Después jitter, porque si un despliegue calienta mil claves con el mismo tiempo de vida de cinco minutos, expiran juntas y me llevo la estampida en toda la caché de golpe. La pregunta mayor que viene después es qué pasa cuando la caché está completamente vacía, tras un reinicio o un failover. Quiero que la base de datos sobreviva a eso, así que hago pruebas de carga con la caché desactivada al menos una vez.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo implementarías el bloqueo single flight de forma segura entre muchas instancias?
- ¿Cómo invalidas un valor cacheado cuando cambian los datos subyacentes?
- ¿Qué le pasa a tu servicio si el clúster de caché falla por completo?
Más preguntas para Desarrollador backend
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas