Capítulo 9. Coherencia y consenso
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
¿Es mejor estar vivo y equivocado o estar bien y muerto?
Jay Kreps, Algunas notas sobre Kafka y Jepsen (2013)
En los sistemas distribuidos pueden fallar muchas cosas, como se explica en el Capítulo 8. La forma más sencilla de tratar estos fallos es simplemente dejar que falle todo el servicio y mostrar al usuario un mensaje de error. Si esa solución es inaceptable, tenemos que encontrar formas de tolerar los fallos, es decir, de mantener el servicio funcionando correctamente, aunque algún componente interno esté defectuoso.
En este capítulo, hablaremos de algunos ejemplos de algoritmos y protocolos para construir sistemas distribuidos tolerantes a fallos. Supondremos que pueden ocurrir todos los problemas del Capítulo 8: los paquetes pueden perderse, reordenarse, duplicarse o retrasarse arbitrariamente en la red; los relojes son aproximados en el mejor de los casos; y los nodos pueden hacer una pausa (por ejemplo, debido a la recogida de basura) o bloquearse en cualquier momento.
La mejor forma de construir sistemas tolerantes a fallos es encontrar algunas abstracciones de propósito general con garantías útiles, implementarlas una vez, y luego dejar que las aplicaciones confíen en esas garantías. Este es el mismo enfoque que ...
Get Diseño de aplicaciones intensivas en datos now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.