Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.