Replies: 8 comments
-
I don't see where the modification is. In fact, once a proposed value reaches the quorum, it will be included in the "accept" message sent by the acceptors. Eventually, in subsequent rounds, when another proposer reaches the quorum and sees a value in the "promise" messages, at least one of those messages will contain the value that reached the quorum. Therefore, the acceptors do not actually change their vote if they voted for value V in past rounds. Am i missing something? EDIT: i undestood what was the problem, i was thinking of Paxos as fault free; in fact if some accept messages only some acceptors will receive the proposed value. So it's possible to have more different values in acceptors in Paxos (in general not in this specific case). |
Beta Was this translation helpful? Give feedback.
-
Could implementing a timeout mechanism where if a proposer does not receive enough responses within a specified time, it can attempt to propose a different value be the solution to the liveness problem? |
Beta Was this translation helpful? Give feedback.
-
The exercise doen't require a solution for the liveness problem. |
Beta Was this translation helpful? Give feedback.
-
The problem persists, even with the timeout solution. Consider a scenario with 6 acceptors, namely |
Beta Was this translation helpful? Give feedback.
-
A possible solution i found is to demostrate the three properties mentioned in "A simpler Proof for Paxos and Fast Paxos":
1.: the acceptors only receive proposed values from proposers and will never change their preference, so larners will be forced to learn only a proposed value. |
Beta Was this translation helpful? Give feedback.
-
I don't think that this is possible. After Edit: Wrong |
Beta Was this translation helpful? Give feedback.
-
But why you say that acceptor1 vote one value, and others 2 acceptor vote for another different value? I mean this is FastPaxos, not Paxos. In Paxos, acceptors can only vote for one value in each round, so I dont understand why the modification can introduces a liveliock. Anyone knows ? |
Beta Was this translation helpful? Give feedback.
-
To show that Paxos with this modification is still safe it must satisfy the property:
The The The So Paxos with this modification is still safe. we have 3 acceptors, a proposer sends a prepare for round i the acceptors respond with a majority of promise(i, -, -) then the proposer sends accept(i,v), but 2 messages are lost so only 1 acceptor sends a learn(i,v). Then, another proposer sends a prepare(j) for round j>i then the 2 acceptors reply with promise(j, -, -) instead the other node does not receive the prepare so it does not reply, since the proposers got a majority of promises it sends accept(j, v') then 2 messages are lost and 1 arrive to an acceptor that has not send a learn before and now it sends a learn(j, v'), now the third acceptor crash, so from now on no majority can be formed since no one of the 2 nodes up can change its values and the protocol continues to issue new prepare and promises for greater rounds without having the possibility to change the value in the learn messages, so the protocol is in a livelock condition. |
Beta Was this translation helpful? Give feedback.
-
Exercise 16: Assume that acceptors do not change their vote. In other words, if they vote for value$v$ in round $i$ , they will not send learn messages with value different from $v$ in larger rounds. Show that Paxos, with this modification, is safe. Unfortunately, the modification introduces a severe liveness problem (the protocol can reach a livelock).
Beta Was this translation helpful? Give feedback.
All reactions