Condición de carrera
Un error en el que el resultado depende del orden temporal de accesos solapados.
¿Qué es una condición de carrera?
Surge cuando un resultado depende indebidamente del orden temporal de flujos concurrentes. Varias operaciones suelen acceder a estado compartido sin coordinación adecuada. No necesitan ejecutarse simultáneamente en distintos núcleos. Accesos intercalados también pueden producir un orden inadecuado.
En un portal ficticio, dos solicitudes de reserva comprueban el mismo último artículo disponible. Ambas ven inicialmente disponibilidad y podrían anunciar éxito sin protección adecuada. Comprobación y reserva deben protegerse juntas para que solo una solicitud pueda reservar el último artículo; únicamente el resultado determina el aviso. Abrir una transacción no prueba por sí solo que se impida el conflicto. El equipo verifica específicamente flujos solapados y la protección utilizada.
Fuentes
Términos relacionados
- Programación asíncronaEsperar un resultado sin bloquear por ello todo el flujo previsto.
- ParalelismoEjecutar realmente varios cálculos al mismo tiempo.
- ConcurrenciaOrganizar varias tareas para que sus periodos de procesamiento puedan solaparse.
- Bloqueo de base de datosUn bloqueo de base de datos coordina el acceso simultáneo a datos u objetos para evitar operaciones incompatibles sin control.
- Bloqueo optimistaEl bloqueo optimista detecta al guardar si un registro cambió desde el estado leído.
- Cache stampedeUn cache stampede ocurre cuando solicitudes simultáneas no encuentran el mismo dato en caché y repiten el trabajo costoso.
Su proyecto con ASES
Descríbanos su proyecto. Le responderemos con una primera valoración.