¿Cómo es la detección de nodos terminados en Erlang trabajando?¿Cómo está influyendo net_tick tiempo que influye en el control de la trivalidad del nodo en Erlang?

StackOverflow https://stackoverflow.com//questions/24061270

Pregunta

Fije el valor Net_Ticktime a 600 segundos.

net_kernel:set_net_ticktime(600)

en la documentación de Erlang para NET_TICKTETE= TickTime:

Especifica el tiempo de tick Net_kernel. Tiempo de mareo se da en segundos. Una vez que cada tiempo de marificación / 4 segundos, todos los nodos conectados están marcados (si algo más se ha escrito en un nodo) y si no se ha recibido nada de otro nodo en los últimos cuatro (4) tiempos de marginología que se considera un nodo. Esto garantiza que los nodos que no respondan, por razones como los errores de hardware, se considera que están disminuyendo.

El tiempo t, en el que se detecta un nodo que no responde:

MinT < T < MaxT where:

MinT = TickTime - TickTime / 4
MaxT = TickTime + TickTime / 4

TickTime es por defecto 60 (segundos). Por lo tanto, 45

Nota: Normalmente, se detecta un nodo de terminación inmediatamente.

Mi problema: Mi tiempo de mareo es 600 (segundos). Por lo tanto, 450 (7,5 minutos)

Señaló que normalmente se detecta un nodo terminante de manera inmediata, pero no pude encontrar una explicación (ni en la documentación de Erlang, o Erlang eBook u otras fuentes basadas en Erlang) de este principio de respuesta inmediata para la terminación de nodos en Erlang distribuidos. ¿Los nodos en el entorno distribuido se pica periódicamente con intervalos más pequeños que los net_ticktime o el nodo terminante envía algún tipo de mensaje a otros nodos antes de que termine? Si se envía un mensaje, ¿hay algún escenario cuando al final de la terminación no pueda enviar este mensaje y debe estar ping para investigar su vivacidad?

También se observa en la documentación de Erlang que distribuida Erlang no es muy escalable para grupos más de 100 nodos, ya que cada nodo mantiene enlaces a todos los nodos en el clúster. ¿Está el algoritmo para investigar la vivacidad de los nodos (ping, anotando la terminación) modificada con un creciente tamaño del clúster?

¿Fue útil?

Solución

Cuando se conectan dos nodos Erlang, se realiza una conexión TCP entre ellos.La falla que está induciendo haría que el sistema operativo subyacente cierre la conexión, notificando efectivamente al otro nodo muy rápidamente.

La garrapata de la red se usa para detectar una conexión a un nodo distante que parece estar arriba, pero en realidad no está pasando el tráfico, como puede ocurrir cuando un evento de red aísla un nodo.

Si desea simular una falla que requeriría una marca para detectar, use un firewall para bloquear el tráfico en la conexión creada cuando los nodos primero hacen ping.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top