Modelo mental del control de concurrencia13 temas

Modelo mental del control de concurrencia

El control de concurrencia tiene varios conceptos que se mezclan fácilmente. Esta guía te muestra cómo encajan antes de que empieces a estudiarlos uno por uno.


Concurrencia vs paralelismo

La concurrencia describe la estructura: varias tareas que progresan entrelazadas en el tiempo. El paralelismo describe la ejecución: varias tareas corriendo a la vez en distintos núcleos. El control de concurrencia del que hablan estas guías trata con transacciones entrelazadas — puede darse sin paralelismo.

Enfoque Concurrencia (intercalado) Paralelismo (simultáneo)
Objetivo Lidiar con muchas tareas a la vez Hacer muchas tareas a la vez
Hardware Funciona en un solo núcleo (CPU) Requiere múltiples núcleos (CPU)
Ritmo Alterna entre tareas muy rápido Ejecuta tareas en el mismo segundo
Naturaleza Estructura e interacción Rendimiento puro y velocidad

De un vistazo

Concepto ¿Qué es?
Anomalías Los problemas que pueden ocurrir cuando dos o más transacciones acceden a los mismos datos concurrentemente.
Niveles de aislamiento Las reglas que definen qué anomalías están permitidas y cuáles no.
Locks El mecanismo que bloquea el acceso a un recurso para coordinar quién puede leerlo o modificarlo.
MVCC El mecanismo que mantiene versiones anteriores de los datos para que cada transacción vea el estado que le corresponde sin bloquear a otras.
Deadlocks Un problema que surge del uso de locks: dos transacciones se bloquean mutuamente esperando un recurso que la otra tiene.

Cómo se relacionan

Concurrencia ¿Qué problemas pueden aparecer? Anomalías ¿Qué garantías quiero ofrecer? Niveles de aislamiento ¿Cómo las implementa el motor? MVCC Locks Deadlocks

Las reglas (niveles de aislamiento) se implementan con mecanismos (locks y MVCC). No hay una sin el otro.


La confiabilidad de los datos: tres capas

Los datos no se protegen con un solo mecanismo, sino con tres capas que responden preguntas distintas:

Capa Mecanismos ¿Qué problema resuelve?
Integridad PK, FK, UNIQUE, CHECK ¿Qué datos pueden existir?
Transacciones BEGIN, COMMIT, ROLLBACK ¿Qué pasa si un cambio se corta a la mitad?
Concurrencia MVCC, Locks, Isolation levels ¿Qué pasa si dos procesos tocan los mismos datos a la vez?

Las capas son complementarias, no jerárquicas: una no reemplaza a la otra.


Lo que viene

Guía Te va a responder
Anomalías ¿Qué problemas existen cuando no hay control?
Niveles de aislamiento ¿Qué reglas existen para evitar esos problemas?
Estrategias ¿Qué approaches existen para implementarlas?
Locks ¿Cómo funciona el approach pesimista?
MVCC ¿Cómo funciona el approach sin bloqueos?
Deadlocks ¿Qué problema puede surgir con los locks?