He estado trabajando en a project, que es una combinación de un servidor de aplicaciones y una base de datos de objetos, y actualmente se ejecuta en una sola máquina. Hace algún tiempo leí a paper que describe una base de datos relacional distribuida, y obtuve algunas ideas sobre cómo aplicar las ideas en ese documento a mi proyecto, para poder hacer una versión de alta disponibilidad ejecutándose en un clúster usando un shared-nothing architecture.¿Cómo diseñar y verificar sistemas distribuidos?
Mi problema es que no tengo experiencia en el diseño de sistemas distribuidos y sus protocolos. No tomé cursos de CS avanzados sobre sistemas distribuidos en la universidad. Así que estoy preocupado por poder diseñar un protocolo que no cause interbloqueo, inanición, split brain y otros problemas.
Pregunta: ¿Dónde puedo encontrar buen material sobre el diseño de sistemas distribuidos? ¿Qué métodos hay para verificar que un protocolo distribuido funciona correctamente? Recomendaciones de libros, artículos académicos y otros son bienvenidos.
Parece ser el mismo libro que usan en mi universidad. Amazon tiene opiniones diferentes al respecto, por lo que podría no comprarlo, pero échale un vistazo a la biblioteca de la universidad. –