Estoy tratando de escribir una herramienta que requiere el conocimiento del estado de otras máquinas en un clúster (LAN local). Esto es para un sistema de conmutación por error de red/alta disponibilidad similar a VRRP y corosync/openais, pero deseo contener más información (como características de velocidad/rendimiento casi en tiempo real) para que los dispositivos puedan tomar decisiones más inteligentes. Esto significa usar un protocolo más complicado que un mecanismo predetermi- nado basado en el peso: al permitir que todas las máquinas en clúster vean el estado del otro, pueden acordar comunalmente cuál es el más adecuado para ser el dispositivo maestro.Estado de distribución en muchas máquinas
De mis búsquedas, no he encontrado ninguna biblioteca (C, C++ o JavaME) que ofrezca un mecanismo de estado distribuido. Idealmente, estoy buscando algo que difunda/multidifunde cada máquina individual de forma periódica para que las máquinas participantes puedan construir una tabla de estado global y todos puedan ver quién debería ser el maestro. El estado en este caso es pares arbitrarios de clave/valor.
Prefiero no reinventar las ruedas, así que tengo curiosidad por saber si alguien aquí puede indicarme la dirección correcta.
¿Ha comprobado Boost MPI. Creo que es para computación distribuida. Pero no estoy seguro de si te ayudará o no. – Arunmu
Parece un caso clásico del teorema CAP (consistencia, disponibilidad y partición) de Brewer. Leer sobre eso debería proporcionarle una mejor comprensión de los problemas reales. – MSalters
@MSalters - ¿No estás seguro de lo que quieres decir? Entiendo que es imposible garantizar que cada nodo tenga un conocimiento del 100% del estado de todos los demás participantes, ya que ocurrirán interrupciones. Se producirán horizontes divididos, etc. Lo que estoy buscando es un buen marco genérico para acumular y compartir el estado. Si observa OSPF y otros protocolos de enrutamiento, verá que esta técnica se usa bien en áreas especializadas. – Mike