Dudas de implementación de Paxos

Dudas de implementación de Paxos

de Maximiliano Martin Lucero Bacardat -
Número de respuestas: 2

Buenas,

A continuación planteo un par de dudas que me surgieron, más que nada a la hora de pasar a código en DisJ el algoritmo:

  • Tomé la decisión de implementar el algoritmo de manera que cada nodo pueda cumplir cualquiera de los roles de Paxos en simultáneo, esto es, que cada uno pueda ser tanto Proposer, como Acceptor y/o Learner. ¿Esto es lo esperable? ¿o se debería asumir que cada nodo puede tomar un rol en particular de estos?
  • Dos de los puntos claves del Proposer (o Suggestor) según las referencias del tema es que pueda manejar tanto la pérdida de mensajes, lo cual en mi caso intenté abordarlo mediante la solución más común propuesta que es retransmisión de mensajes de parte del Proposer, como la convergencia del algoritmo, donde se recomienda algún algoritmo de backoff exponencial. ¿Es correcto manejar ambos problemas en nuestra solución? Mi consulta va dirigida a que el DisJ no provee operaciones para manejar varios clocks (que fue como lo encaré en la solución "teórica" del algoritmo), lo cual parece complicar un poco de más la solución.
  • En la letra se plantea validar la complejidad del algoritmo en DisJ. ¿Debe probarse de manera teórica primero esto? ¿cómo se validaría en DisJ esto?
  • ¿Está mal que los nodos adopten un estado "final" pero sigan ejecutando cosas?

Desde ya agradezco cualquier respuesta.

Saludos.

En respuesta a Maximiliano Martin Lucero Bacardat

Re: Dudas de implementación de Paxos

de Javier Baliosian -

hola Maximiliano, 

voy respondiendo:

  • Tomé la decisión de implementar el algoritmo de manera que cada nodo pueda cumplir cualquiera de los roles de Paxos en simultáneo, esto es, que cada uno pueda ser tanto Proposer, como Acceptor y/o Learner. ¿Esto es lo esperable? ¿o se debería asumir que cada nodo puede tomar un rol en particular de estos?

cualquiera de las dos soluciones es buena. la que vos elegiste es la mas general, y es la que convierte al sistema en homogéneo. 


  • Dos de los puntos claves del Proposer (o Suggestor) según las referencias del tema es que pueda manejar tanto la pérdida de mensajes, lo cual en mi caso intenté abordarlo mediante la solución más común propuesta que es retransmisión de mensajes de parte del Proposer, como la convergencia del algoritmo, donde se recomienda algún algoritmo de backoff exponencial. ¿Es correcto manejar ambos problemas en nuestra solución? Mi consulta va dirigida a que el DisJ no provee operaciones para manejar varios clocks (que fue como lo encaré en la solución "teórica" del algoritmo), lo cual parece complicar un poco de más la solución.

no se exactamente por que necesitas varios clocks, pero en todo caso, en el DisJ podés concentrarte en la pérdida de mensajes que es el punto más relevante. 

  • En la letra se plantea validar la complejidad del algoritmo en DisJ. ¿Debe probarse de manera teórica primero esto? ¿cómo se validaría en DisJ esto?

las pruebas teóricas de complejidad son... complejas. hay cotas en la bibliografía, solo les pedimos que vean que las simulaciones cumplen con esas cotas. eso en si no es tan trivial, pero es más sencillo. 

  • ¿Está mal que los nodos adopten un estado "final" pero sigan ejecutando cosas?

no, es un estado más. 

saludos

J


En respuesta a Javier Baliosian

Re: Dudas de implementación de Paxos

de Maximiliano Martin Lucero Bacardat -

Hola Javier,

Con respecto a lo de los clocks, ahora que lo cuestionas me di cuenta que estaba mal yo, no son necesarios ya que no se manejan en simultáneo los dos problemas (retransmisión y backoff exponencial).

Muchas gracias por la respuesta.

Saludos.