La coherencia eventual requiere que todos los historiales de operaciones de lectura y escritura vistos por cualquier cliente de un sistema distribuido sean compatibles con alguna ejecución secuencial (es decir, donde todas las lecturas y escrituras se ejecutan una por una, no simultáneamente), lo que mantiene la siguiente propiedad:
(sea W (L, X, n) _t una escritura del valor X en la ubicación L por el nodo n en el tiempo t, y R (L, n) _t sea una lectura de L por el nodo n en el tiempo t)
Sea W (L, X, n ‘) _ t la última escritura en la ubicación L. Entonces, para todo n, existe un tiempo t (n)> t st R (L, n) _t (n) = X.
- ¿Cuáles son los pros y los contras de la suscripción de software frente a la licencia perpetua?
- El almacenamiento en la nube ha llegado para quedarse. ¿Cuáles son las probabilidades de que una empresa de almacenamiento en la nube pierda todos sus datos, digamos en el caso de un desastre natural o alguna otra calamidad de proporciones inmensas, o incluso por el error de un imbécil desmesurado en la empresa?
- ¿Existe alguna computación en la nube que pueda garantizar la seguridad de sus datos?
- ¿La informática sin servidor complica la transparencia de los precios al aprovisionar la infraestructura de la nube?
- ¿Alguien está pagando la suscripción Premium para el correo de Newton (anteriormente nube mágica)? Todavía tengo que decidir suscribirme o no.
Esta es una propiedad vital del ‘registro’ subyacente que el sistema distribuido está modelando. Informalmente, dice que si realiza una escritura en una ubicación determinada, eventualmente todos los demás nodos podrán leer esa escritura, suponiendo
que ninguna otra escritura suceda antes de que sea visible para ti.
En muchos casos, el nodo n ‘que emitió la escritura sufrirá un retraso antes de que las lecturas posteriores devuelvan el valor escrito. Entonces, la consistencia eventual puede romper la relación ‘causal’ de la ejecución de un solo nodo (para que las operaciones posteriores puedan ver los resultados de operaciones anteriores).
Dado que la demora entre una escritura y su visibilidad es arbitraria (y puede cambiar para diferentes nodos), la consistencia eventual permite algunos historiales de ejecución contraintuitivos que no ocurren con historiales estrictamente secuenciales consistentes. Es por eso que no hacemos que todo sea finalmente consistente 🙂
(Tenga en cuenta que el tiempo aquí realmente se refiere al orden de una operación en el historial secuencial de ejecución, no a un reloj global. Por lo tanto, hay una operación en t = 0, una operación en t = 1, etc.).