fbpx
Wikipedia

Raft

Raft es un protocolo de consenso que trabaja eligiendo un líder central sobre el que se hacen las peticiones y coordina al resto de nodos (seguidores) para implementarlas. El ejemplo típico de uso de este algoritmo es para la escritura de mensajes en un log replicado.

Roles

Los nodos participantes en el algoritmo pueden estar en tres estados:

  • Líder.- Todos los cambios que se realicen en el clúster de nodos pasan por él primero. Cómo máximo puede haber uno en cada momento. Si se cae el líder actual se abre un proceso para elegir al siguiente.
  • Candidato.- Nodo que no ha encontrado líder y solicita su elección como tal. El líder será seleccionado entre los distintos candidatos. Una vez que un nuevo líder ha sido elegido se dice que comienza un término
  • Seguidor.- Nodo cuya responsabilidad es actuar frente a las peticiones del nodo líder.

Funcionamiento

Supongamos que estamos en un instante en el que todos los nodos son seguidores y por tanto están esperando recibir comunicación de un nodo que actúe como líder. Cada nodo tiene un tiempo de espera aleatorio después del cual, si un líder no se comunica con él, pasa a estado candidato y pide ser elegido como líder.

Para ello el algoritmo divide el tiempo en términos que son plazos de tiempo definidos por el algoritmo. Para que un nodo sea elegido como líder es necesario que cuando pasa a estado candidato reciba la mayoría de votos de los seguidores en un término (se dice que hay quorum). Si tenemos N nodos la mayoría es al menos (N/2)+1 nodos. Solo los nodos que se encuentren en estado seguidor pueden votar una única vez a la primera solicitud que reciban dentro de un plazo. Si un equipo candidato no recibe los votos suficientes en el plazo y agota su tiempo de espera, espera al siguiente término y repite el proceso de votación. Para evitar problemas de varios nodos sincronizados en las peticiones, el tiempo de espera es aleatorio.

Una vez elegido el líder este, cada cierto tiempo, debe enviar mensaje, ya sea con información de actualización o no, a fin de que los nodos seguidores no agoten su tiempo de espera.

Supongamos que se pide un cambio en la información: El líder registra el cambio, lo pasa al resto de nodos para que lo registren y, una vez que un quorum de estos responde con que el cambio ha sido registrado, el líder hace efectivo el cambio en su sistema y finalmente notifica a los nodos seguidor indicando que el cambio ha sido efectivo.

Gestión de fallos

Como las decisiones se basan en tener una mayoría de nodos de acuerdo, entonces el sistema funciona solo si la mayoría de los nodos están activos.[1]

Cuando un líder falla y luego se recupera, antes de recibir los mensajes del nuevo líder, puede enviar mensajes de actualización a los nodos. Los nodos que ya aceptaron un nuevo líder ignorarán sus mensajes. Los mensajes del viejo líder son detectados por número del término de los mensajes.[1]

El sistema puede recuperarse frente a algunas particiones de red. La partición de la red que contenga una mayoría de los nodos será la que seguirá funcionando con normalidad. El resto de nodos se sincronizará con esta cuando se reestablezcan las comunicaciones en la red.[2]

Referencias

  • Diseño y despliegue de servicios de alta disponibilidad en la nube usando herramientas de código abierto. Antonio Julián Alférez Zamora. Trabajo fin de grado. Escuela Técnica superior de ingenieros de telecomunicación. 2016
  1. Consensus algorithms for distributed systems. Märt Bakhoff. 2014
  2. Raft. Understandable Distributed Consensus


  •   Datos: Q17100313

raft, protocolo, consenso, trabaja, eligiendo, líder, central, sobre, hacen, peticiones, coordina, resto, nodos, seguidores, para, implementarlas, ejemplo, típico, este, algoritmo, para, escritura, mensajes, replicado, Índice, roles, funcionamiento, gestión, f. Raft es un protocolo de consenso que trabaja eligiendo un lider central sobre el que se hacen las peticiones y coordina al resto de nodos seguidores para implementarlas El ejemplo tipico de uso de este algoritmo es para la escritura de mensajes en un log replicado Indice 1 Roles 2 Funcionamiento 3 Gestion de fallos 4 ReferenciasRoles EditarLos nodos participantes en el algoritmo pueden estar en tres estados Lider Todos los cambios que se realicen en el cluster de nodos pasan por el primero Como maximo puede haber uno en cada momento Si se cae el lider actual se abre un proceso para elegir al siguiente Candidato Nodo que no ha encontrado lider y solicita su eleccion como tal El lider sera seleccionado entre los distintos candidatos Una vez que un nuevo lider ha sido elegido se dice que comienza un termino Seguidor Nodo cuya responsabilidad es actuar frente a las peticiones del nodo lider Funcionamiento EditarSupongamos que estamos en un instante en el que todos los nodos son seguidores y por tanto estan esperando recibir comunicacion de un nodo que actue como lider Cada nodo tiene un tiempo de espera aleatorio despues del cual si un lider no se comunica con el pasa a estado candidato y pide ser elegido como lider Para ello el algoritmo divide el tiempo en terminos que son plazos de tiempo definidos por el algoritmo Para que un nodo sea elegido como lider es necesario que cuando pasa a estado candidato reciba la mayoria de votos de los seguidores en un termino se dice que hay quorum Si tenemos N nodos la mayoria es al menos N 2 1 nodos Solo los nodos que se encuentren en estado seguidor pueden votar una unica vez a la primera solicitud que reciban dentro de un plazo Si un equipo candidato no recibe los votos suficientes en el plazo y agota su tiempo de espera espera al siguiente termino y repite el proceso de votacion Para evitar problemas de varios nodos sincronizados en las peticiones el tiempo de espera es aleatorio Una vez elegido el lider este cada cierto tiempo debe enviar mensaje ya sea con informacion de actualizacion o no a fin de que los nodos seguidores no agoten su tiempo de espera Supongamos que se pide un cambio en la informacion El lider registra el cambio lo pasa al resto de nodos para que lo registren y una vez que un quorum de estos responde con que el cambio ha sido registrado el lider hace efectivo el cambio en su sistema y finalmente notifica a los nodos seguidor indicando que el cambio ha sido efectivo Gestion de fallos EditarComo las decisiones se basan en tener una mayoria de nodos de acuerdo entonces el sistema funciona solo si la mayoria de los nodos estan activos 1 Cuando un lider falla y luego se recupera antes de recibir los mensajes del nuevo lider puede enviar mensajes de actualizacion a los nodos Los nodos que ya aceptaron un nuevo lider ignoraran sus mensajes Los mensajes del viejo lider son detectados por numero del termino de los mensajes 1 El sistema puede recuperarse frente a algunas particiones de red La particion de la red que contenga una mayoria de los nodos sera la que seguira funcionando con normalidad El resto de nodos se sincronizara con esta cuando se reestablezcan las comunicaciones en la red 2 Referencias EditarDiseno y despliegue de servicios de alta disponibilidad en la nube usando herramientas de codigo abierto Antonio Julian Alferez Zamora Trabajo fin de grado Escuela Tecnica superior de ingenieros de telecomunicacion 2016 a b Consensus algorithms for distributed systems Mart Bakhoff 2014 Raft Understandable Distributed Consensus Datos Q17100313Obtenido de https es wikipedia org w index php title Raft amp oldid 122833112, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos