Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "What Can Be Implemented Anonymously ? Paper by Rachid Guerraui and Eric Ruppert Presentation by Amir Anter 1."— Presentation transcript:

1 What Can Be Implemented Anonymously ? Paper by Rachid Guerraui and Eric Ruppert Presentation by Amir Anter 1

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

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

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

5 5 Leader election in rings 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. p0p0 p1p1 p2p2 1 1 1 2 2 2

6 6 Leader election in anonymous rings 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!! p0p0 p1p1 p2p2 1 1 1 2 2 2

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

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

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

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

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

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

13 Atomic Counter 13 Example: the sequential spec of a counter H 0 : H 1 : c.f&i() c:0 H 2 : c.f&i() c:0 c.f&i() c:1 H 3 : c.f&i() c:0 c.f&i() c:1 c.f&i() c:2 H 4 : 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. 14

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

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. 16

17 Weak Counters 17 Example: the sequential spec of a weak counter H 0 : H 1 : c.f&i() c:0 H 2 : c.f&i() c:0 c.f&i() c:1 H 3 : c.f&i() c:0 c.f&i() c:1 c.f&i() c:1 H 4 : 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. 1234 A 111000 18

19 Weak Counters 1234 A 000000 19

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

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

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

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

24 Weak Counters 1234 A 110000 Line 3, iteration # 1: a=1, b=2, l=2 A[2]=1 24

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

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

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

28 Weak Counters 1234 A 111000 Line 11, iteration # 3 a=3=b  A[3]=1, L=3 28

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). 29

30 Weak Counters 30

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

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 Update i 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! 32

33 A wait-free simulation of atomic snapshot 33 Initially segment[i].ts=0, segment[i].data=v i, segment[i].view= Scan i (S) 1.for all j <> i c[j]=Segment[j] 2.while true do 3. for all j a[j] = Segment[j] 4. for all j b[j] = Segment[j] 5. if, for all j a[j]=b[j] ; Comparison includes timestamp! 6. return ; Direct scan 7. else if, for some j ≠ i, b[j].ts - c[j].ts ≥ 2 8. return b[j].view ; Indirect scan Update i (S, d) 1.view:=scan() 2.Segment[i]=

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] 34

35 Anonymous snapshot object 35

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

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

38 Consensus Object 38

39 39 Formally: Consensus Object - Supports a single operation: decide - Each process p i calls decide with some input v i 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 40 Decide(v) ; code for p i, i=0,1 1.Prefer[i]:=v 2.qval=Q.deq() 3.if (qval = 0) then return v 4.else return Prefer[1-i] Initially Q= and Prefer[i]=null, i=0,1 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 ?! 41

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. 42

43 Consensus 43

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

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

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. 46

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. 47

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. 48

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

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

51 Consensus - correctness  Proof: n+1 writes, let’s look at the first process P that writes to R in the second time.  4n+1>n one of the values in is at least m, from line 10 we get that P local P will write at least m to R. 51

52 Consensus - correctness  Claim 2: After T, at most n UPDATES write a value to 52

53 Consensus - correctness  Proof: n+1 writes, let’s look at the iteration of the first process P that writes to R in the second time.  At most n values are greater than m in  From claim 1, at most n values are smaller than m in 53

54 Consensus - correctness  We get that for at least values of i. P will change its local value to 0 in line 5. 54

55 Talk outline  What is anonymously?  Anonymously implementation  Weak Counter  Snapshot  Consensus  Summary 55

56 Summary  We showed anonymous algorithms by using only read/write registers.  Weak counter – wait free implementation  Snapshot object – wait free implementations  Consensus – obstruction free implementation 56

57 Thank you! 57


Download ppt "What Can Be Implemented Anonymously ? Paper by Rachid Guerraui and Eric Ruppert Presentation by Amir Anter 1."

Similar presentations


Ads by Google