Un usuario actualiza su perfil, recarga y ve los datos antiguos. Las lecturas van a réplicas de lectura asíncronas. ¿Qué está pasando?
Opciones
- Un cache stampede sobre la clave del perfil
- Replication lag; envía las lecturas de ese usuario al primario durante un rato (Opción correcta)
- Un deadlock entre dos actualizaciones del perfil
- Corrupción en el índice de la tabla de usuarios
Respuesta
Replication lag; se soluciona con read-your-writes (dirigir brevemente las lecturas del usuario al primario)
Por qué
Con replicación asíncrona, la base de datos primaria confirma la escritura de inmediato y la envía a las réplicas un momento después.
Si la siguiente lectura llega a una réplica que aún no recibió el cambio, el usuario ve datos antiguos. Este retraso es el replication lag (consistencia eventual).
Solución: después de que un usuario escriba, envía sus lecturas al primario durante un rato.
Recuerda
Las réplicas asíncronas pueden ir un poco por detrás del primario.