Of course doesnt work with failures but well see how

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: lures, but we’ll see how to generalize this to handle failures with paxos. Sometimes we only need to avoid causality anomalies, without a total order. E.g., if an observer sees things that depend on things I’ve done, then they should also see the things I’ve done. That’s all that’s needed for the lunch example – that no message that depends on a past event is delivered before that event. A way of implementing this: vector clocks. Vector clock: what is latest event I have seen from each process? VC[i] is the latest event at process i Pass vector clock in each message, and update local clock on message receipt (same as before, only element by element max). On current process j, VC[j]+1 (for the local event of receiving the message) For all i, VC[i] = max (VC[i], msg-­‐VC[i]) VC defines a partial order for events, but can be used to enforce constraint that you don’t process an event until you’ve seen all prior events from each process. The set of reachable VC values are con...
View Full Document

Ask a homework question - tutors are online