🎯 Objetivo:
Comprender los conceptos de consistencia en bases de datos distribuidas y cuándo se utiliza cada tipo.
🌐 ¿Qué es la consistencia en bases de datos?
La consistencia se refiere a que todas las copias de un dato en los distintos nodos de una base distribuida sean iguales y estén sincronizadas.
🔄 Consistencia fuerte (Strong Consistency)
-
Definición:
Cuando una operación de escritura se confirma, todas las lecturas posteriores reflejan ese cambio inmediatamente. -
Ventajas:
-
Datos siempre actualizados.
-
Ideal para aplicaciones donde la precisión es crítica (banca, inventarios).
-
-
Desventajas:
-
Puede aumentar la latencia.
-
Requiere coordinación entre nodos (más recursos).
-
⏳ Consistencia eventual (Eventual Consistency)
-
Definición:
Los datos pueden no estar sincronizados inmediatamente, pero eventualmente todos los nodos convergen a la misma versión. -
Ventajas:
-
Mejor rendimiento y disponibilidad.
-
Más tolerante a fallos y particiones de red.
-
-
Desventajas:
-
Lecturas temporales pueden ser inconsistentes.
-
No adecuado para operaciones críticas donde la precisión inmediata es vital.
-
🧩 Ejemplo práctico
Imagina que actualizas el saldo en una cuenta bancaria en un nodo, pero otro nodo aún tiene el saldo antiguo:
-
Con consistencia fuerte: cualquier lectura reflejará el saldo actualizado inmediatamente.
-
Con consistencia eventual: algunas lecturas pueden mostrar el saldo antiguo por un tiempo corto hasta sincronizar.
⚖️ ¿Cuándo usar cada una?
| Consistencia fuerte | Consistencia eventual |
|---|---|
| Transacciones financieras | Redes sociales, sistemas de caching |
| Inventarios en tiempo real | Sistemas de mensajería, registros masivos |
| Donde la precisión es esencial | Donde la alta disponibilidad importa más |
📝 Actividad práctica
-
Describe un caso donde la consistencia fuerte sea indispensable.
-
Da un ejemplo donde la consistencia eventual pueda funcionar sin problema.
-
¿Qué impacto tiene la consistencia fuerte en la latencia de la base de datos?
✅ Revisión rápida
-
¿Qué garantiza la consistencia fuerte?
-
¿Por qué la consistencia eventual puede ser más rápida?
-
¿Qué problemas puede causar la consistencia eventual en algunas aplicaciones?