Middle
¿Qué es la teorema CAP?
sobes.tech AI
Respuesta de la IA
La teorema CAP (también conocida como la teorema de Brewer) afirma que en un sistema de computación distribuida no es posible garantizar simultáneamente:
- Consistencia: Todos los nodos ven los mismos datos en el mismo momento. Cualquier operación de lectura obtiene los datos más recientes escritos.
- Disponibilidad: Cada solicitud recibe una respuesta no vacía, independientemente del estado de otros nodos. El sistema siempre está disponible para operaciones de lectura y escritura.
- Tolerancia a particiones: El sistema continúa funcionando a pesar de la pérdida de comunicación entre nodos (divisiones de red).
En condiciones de partición de red ($P$), el sistema debe elegir entre consistencia ($C$) y disponibilidad ($A$).
- Sistema CA: Asume que no hay particiones de red. Cuando ocurren, el sistema se vuelve inaccesible o inconsistente. Ejemplos: bases de datos relacionales clásicas con replicación sincrónica en una red local.
- Sistema CP: Sacrifica la disponibilidad en favor de la consistencia durante una partición de red. Si un nodo no puede comunicarse con la mayoría, deja de responder a las solicitudes para garantizar la coherencia de los datos. Ejemplos: Zookeeper, etcd, sistemas distribuidos que usan protocolos de consenso como Paxos o Raft.
- Sistema AP: Sacrifica la consistencia en favor de la disponibilidad durante una partición de red. El sistema continúa respondiendo a las solicitudes, pero puede proporcionar datos obsoletos o conflictivos. La consistencia eventual se logra posteriormente. Ejemplos: DynamoDB, Cassandra, MongoDB (por defecto en algunas configuraciones).
La teorema CAP se aplica a sistemas de almacenamiento de datos distribuidos. En sistemas reales, a menudo hay que hacer compromisos y elegir el modelo que mejor se adapte a los requisitos específicos de la aplicación.