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
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? |