1 multicast request tm to everyone 2 if get request

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: Tm to everyone 2) if get request, put Tm on local queue, ack (so now request is on everyone’s queue) 3) to release, remove request from local queue, send release to everyone 4) if get release, remove that request from local queue 5) Process i gets lock if its request is before (=>) everyone else’s, and none earlier can arrive (have a later timestamp from everyone) Example of state machine; everyone operates on the same information, so everyone stays in synch. Example: start with set of processes, each with a request queue. P0 starts with lock, at T0. In everyone’s request queue. P1 asks for lock, at T1. P2 asks for lock, at T2. P0 releases lock, at T2. Any problems? What if there are failures? We’ll see how to generalize this to handle failures with paxos. Suppose I only want to avoid causality anomalies, but I don’t need a total order. That’s all that’s needed for the lunch example – that no message that depends on a past event is delivered before that event. Might need to ping neighbors to...
View Full Document

This document was uploaded on 04/04/2014.

Ask a homework question - tutors are online