3 ms·
My understanding of the FLP result is that it only applies to algorithms without timeouts. Because it restates that, without timeouts, in theory, you could be
by jacques_chester 12y ago
My understanding of the FLP result is that it only applies to algorithms without timeouts.
Because it restates that, without timeouts, in theory, you could be waiting forever for a message to arrive. It's formally proved and whatnot, but it's not a super-surprising result when you restate it in common terms.
For message delivery, it seems that FLP says that you need to give up at-least-once, because at-least-once ostensibly requires an infinite number of retries. I'm not sure how it would apply to at-most-once.
Exactly-once is, so far as I can tell, a bit of a strawman. But it's a strawman that we all fall for, the first time we break stuff into different systems.
As a disclaimer, I am still wrapping my head around this stuff. Don't rely on me. Not even if your name is Salvatore.
- shasta 12y ago> My understanding of the FLP result is that it only applies to algorithms without timeouts. No, I don't think timeouts help. What does timeout mean here? You've sent a message and didn't get a response. If you timeout, did they receive the message or not?
- krenoten 12y agoAye. Timeouts cannot save you from the recursive ack problem. I believe the parent is thinking of the fact that FLP applies only in an "asynchronous" system in which messages may take infinite time to arrive, and without regard to sending order.
- jacquesm 12y agoTime-outs are a band-aid that works in practice but formally speaking are not an improvement at all since for every packet sent due to the time-out you'd need another time-out.
- jacques_chester 12y agoThanks, looks like I'd misunderstood the theoretical finding. Recursion is hard.