MariaDB · Lección 09
¿Cómo se gestiona la concurrencia en InnoDB y para qué sirven NOWAIT y SKIP LOCKED?
SKIP LOCKED hace que la consulta espere indefinidamente a que se liberen todas las filas bloqueadas antes de devolver resultados
InnoDB aísla con REPEATABLE READ por defecto y puede producir deadlocks que la aplicación debe reintentar; SELECT ... FOR UPDATE admite NOWAIT y, en versiones recientes (SKIP LOCKED desde la 10.6), SKIP LOCKED, útil para que varios consumidores tomen tareas de una cola sin esperarse
Un deadlock deja a las dos transacciones bloqueadas para siempre, porque InnoDB no tiene ninguna forma de detectarlo
NOWAIT permite saltarse los bloqueos y leer filas modificadas por otra transacción sin confirmar, como en READ UNCOMMITTED
MariaDB · Lección 09
Completa el código
Para saltar filas bloqueadas se usa SKIP
Revisa: SKIP LOCKED.
MariaDB · Lección 09
¿Por qué SKIP LOCKED es útil cuando varios workers toman trabajos de la misma tabla?
Pista: cada worker coge filas libres sin esperar a que otro termine con las que ya bloqueó, así no se bloquean entre sí peleando por la misma fila y mejora el paralelismo de una cola implementada sobre una tabla.
✓
¡Lección completada!
Concurrencia — deadlocks, NOWAIT y SKIP LOCKED
0
XP ganado
3
Vidas restantes