1 / 57

What Can Be Implemented Anonymously ?

What Can Be Implemented Anonymously ?. Paper by Rachid Guerraui and Eric Ruppert. Presentation by Amir Anter. Talk outline. What is anonymously ? Motivation Anonymously implementation Counter Snapshot Consensus Summary. Talk outline. What is anonymously ?

chynna
Download Presentation

What Can Be Implemented Anonymously ?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What Can Be Implemented Anonymously ? Paper by RachidGuerraui and Eric Ruppert Presentation by Amir Anter

  2. Talk outline • What is anonymously ? • Motivation • Anonymously implementation • Counter • Snapshot • Consensus • Summary

  3. Talk outline • What is anonymously ? • Anonymously implementation • Counter • Snapshot • Consensus • Summary

  4. What is anonymously ? • There is no unique identifiers for the processes.

  5. Leader election in rings p0 1 2 1 2 p2 p1 2 1 • Each process has to decide whether it is a leader or not • Termination states are partitioned to elected and not-elected. • In every execution, exactly one process enters an elected state, all others enter a non-elected state. • We assume rings are oriented.

  6. Leader election in anonymous rings p0 1 2 1 2 p2 p1 2 1 • A ring algorithm is anonymous if processes don’t have an ID they can use in the algorithm (all perform the same code) An anonymous leader election algorithm is… Impossible!!

  7. Motivation • Sensor networks – Might not have id’s • Privacy: • Web servers • Peer-to-peer sharing systems

  8. Talk outline • What is anonymously? • Anonymously implementation • Weak Counter • Snapshot • Consensus • Summary

  9. Anonymously Implementation • Number of processes is know – n. • Shared memory – multi-reader, multi-writer. • Using registers • Crash failures may occur • Deterministic • Asynchronous

  10. Wait freedom Definition: An algorithm is wait-free if a process invoking it will finish after a finite number of steps

  11. Talk outline • What is anonymously? • Anonymously implementation • Weak Counter • Snapshot • Consensus • Summary

  12. Fetch-and-add(w, d) do atomically prev:=w w:= prev+d return prev Atomic Counter Read-Modify-Write operation:

  13. Atomic Counter Example: the sequential spec of a counter H0: H1: c.f&i() c:0H2: c.f&i() c:0 c.f&i() c:1 H3: c.f&i() c:0 c.f&i() c:1 c.f&i() c:2H4: c.f&i() c:0 c.f&i() c:1 c.f&i() c:2 c.f&i() c:3 ...

  14. Atomic Counter It has been shown by Herlihy that fetch& increment object has no wait-free implementation from registers, even for the non anonymous case.

  15. Anonymous Counter So how can we implement a counter only from registers and also anonymously ?!

  16. Weak Counters • Single operation: GetTimestamp • Returns an integer • Properties: • Let GetTimestamp(t) = x, GetTimestamp(t’)=x’, If t≥t’ then x ≥x’. • If GetTimestamp was invoked n times then each of those invocation returned a value x ≤n. • Weaker version of fetch&increment. • Strong enough for our purposes.

  17. Weak Counters Example: the sequential spec of a weak counter H0: H1: c.f&i() c:0H2: c.f&i() c:0 c.f&i() c:1 H3: c.f&i() c:0 c.f&i() c:1 c.f&i() c:1H4: c.f&i() c:0 c.f&i() c:1 c.f&i() c:1 c.f&i() c:2 ...

  18. Weak Counters • Array A[1,2,…] of binary registers. • Initially each register A[i]=0. • Invariant: • If A[k]=1, then all entries A[1..k]=1. 1 2 3 4 A 1 1 1 0 0 0

  19. Weak Counters 1 2 3 4 A 0 0 0 0 0 0

  20. Weak Counters • a • Last location returned by the process’s previous GetTimestamp operation.

  21. Weak Counters • L • Shared register initialized to 0. • When process change some A[b] to 1, it also writes b to L.

  22. Weak Counters • j • Local variable • The number of times the process has seen L changes.

  23. Weak Counters • t • Local variable • The largest value the process has seen in L.

  24. Weak Counters 1 2 3 4 • Line 3, iteration # 1: a=1 , b=2 , l=2 • A[2]=1 A 1 1 0 0 0 0

  25. Weak Counters 1 2 3 4 • Line 3, iteration # 2: a=1 , b=4 , l=2 • A[4]=0 A 1 1 0 0 0 0

  26. Weak Counters 1 2 3 4 • Line 11, iteration # 1: a=1 , b=4 • mid=2 • A[2]=1  a=3 A 1 1 0 0 0 0

  27. Weak Counters 1 2 3 4 • Line 11, iteration # 2: a=3 , b=4 • mid=3 • A[3]=0 b=3 A 1 1 0 0 0 0

  28. Weak Counters 1 2 3 4 • Line 11, iteration # 3 • a=3=b  A[3]=1 , L=3 A 1 1 1 0 0 0

  29. Weak Counters • Wait freedom • The second loop stops – binary search. • The first loop stops • If j≥n then return t • In any finite execution in which k GetTimestamp operations are invoked: • O(k) registers are accessed. • Any operation takes O(log k).

  30. Weak Counters

  31. Talk outline • What is anonymously? • Anonymously implementation • Weak Counter • Snapshot • Consensus • Summary

  32. Snapshot object • R[1…n] registers • Operations • Scan • Returns a vector V, where V is an n-element vector called a view (with a value for each segment). • Update(d) • Process i writes d to R[i] V[i] must return the value of the latest Updatei operation (or the initial value if there were none) Scan returns a snapshot of the segments array that existed at some point during the execution!

  33. A wait-free simulation of atomic snapshot Initially segment[i].ts=0, segment[i].data=vi, segment[i].view=<v0, …, vn-1> • Updatei(S, d) • view:=scan() • Segment[i]=<segment[i].ts+1, d, view> • Scani(S) • for all j <> i c[j]=Segment[j] • while true do • for all j a[j] = Segment[j] • for all j b[j] = Segment[j] • if, for all j a[j]=b[j] ; Comparison includes timestamp! • return <b[0].data, …, b[n-1].data> ; Direct scan • else if, for some j ≠ i, b[j].ts - c[j].ts≥ 2 • return b[j].view ; Indirect scan

  34. Anonymous snapshot object • R[1…m] registers • Operations • Scan • Returns a vector V, where V is an m-element vector called a view (with a value for each segment). • Update(i,x) • Writes x to R[i]

  35. Anonymous snapshot object

  36. Anonymous snapshot object • The algorithm is anonymous and wait-free. • The average number of steps per operation in any finite execution is

  37. Talk outline • What is anonymously? • Anonymously implementation • Weak Counter • Snapshot • Consensus • Summary

  38. Consensus Object

  39. Formally: Consensus Object • Supports a single operation: decide • Each process pi calls decide with some input vi from some domain. decide returns a value from the same domain. • The following requirements must be met: • Agreement: In any execution E, all decide operations must return the same value. • Validity: The values returned by the operations must equal one of the inputs.

  40. FIFO queue + registers can implement 2-process consensus Initially Q=<0> and Prefer[i]=null, i=0,1 • Decide(v) ; code for pi, i=0,1 • Prefer[i]:=v • qval=Q.deq() • if (qval = 0) then return v • else return Prefer[1-i] There is a proof that wait-free consensus for 2 or more processes cannot be solved by registers.

  41. Anonymous Consensus So how can we implement it only from registers and also anonymously ?!

  42. Obstruction freedom • Obstruction-freedom guarantees that a process will complete its algorithm whenever it has an opportunity to take enough steps without interruption by other processes.

  43. Consensus

  44. Consensus • The algorithm is using 8n+2 registers. • Anonymous • Uses anonymous snapshot object. • Obstruction free • Correct

  45. Consensus - Obstruction freedom • Let’s see that if process is running by itself it eventually halts.

  46. Consensus - Obstruction freedom • Let C be any configuration. • m is the maximum value of R in C. • P run by itself forever from C.

  47. Consensus - Obstruction freedom • lap increases at least once every iterations • Eventually and • Now P will write values larger than m to in the next iterations.

  48. Consensus - correctness • Let P’ be a process that decides 0 (without loss of generality). • Let T be the time P’ last scans R and S’ that scan. • We shall show that every other process that terminates also decides 0.

  49. Consensus - correctness • Let m be the minimum value in • All values in are less than m.

  50. Consensus - correctness • Claim 1: After T, at most n UPDATES write smaller value than m to R.

More Related