n-consensus is the second strongest object for n+1 processes eli gafni ucla petr kuznetsov max...
TRANSCRIPT
N-Consensus is the Second Strongest Object for N+1
Processes
Eli Gafni UCLA
Petr Kuznetsov Max Planck Institute for
Software Systems
2
Distributed shared memory
Processes communicate via objects Each object is an instance of a type
Type N-consensus: first N operations propose(v), v∈{0,1} return the argument of the first operation, N+1-th fails
Object types can be classified by their consensus power
3
Consensus power
Cons(T)=N iff objects of T and RW registers can implement N-consensus but not N+1-consensus
N-consensus is universal in a system of N processes : can implement an object of any type [Her91]
4
What about N or more processes?
Can objects of consensus power N “do more” than N-consensus objects?
No: if an N+1-process task can be solved by deterministic objects of consensus power N, then it can also be solved by N-consensus objects
⇨ There are no objects between N- and N+1-consensus
5
Main results
Theorem 1. Any protocol over N+1 processes using deterministic objects of consensus power N is connected.
Theorem 2. Any connected protocol over N+1 processes can be emulated using N-consensus
6
The rest of it
Definitions and tools Inseparability Theorem 1: connectivity of protocols Theorem 2: emulation Conclusions and future
7
Processes and protocols
N+1 processes communicate via objects of consensus power N, RW registers
Protocol P: a collection of deterministic automata P1,…PN+1, assume a single initial state
8
Objects and synchrony
Objects are atomic and deterministic: an execution of P can be seen as a sequence of process idsa state of P is a finite execution a view of Pi in x is the local state of Pi in x
System is asynchronous: we consider all possible executions2-consensus cannot be implemented using RW
registers N+1-consensus cannot be implemented using N-
consensus
9
Some tools
2-process ε-agreement task for q0 and q1 If qi goes alone, qi outputs i outputs are within ε in [0,1](can be implemented using RW registers)
N-consensus can be used to split processes in two teams, each running as a single process in a 2-process RW protocol (e.g., ε-agreement)
10
InseparabilityStates x0 and x1 of P are inseparable (x0~x1)
iff some process Pi cannot distinguish x0 and x1 even in an infinite execution
Pi goes through the same sequence of views
in e0 and e1
x1x0
e1e0
11
Inseparably connected protocols
P is inseparably connected iff for each state x of P, the set G(x) of N+1 immediate descendants of x is transitively inseparable
x1
x2
xN xN+1
~ ~ ~ ~…
There is a path of inseparable states between any two
states in G(x)
…
x
12
Connectivity and consensus power
Theorem 1. Any protocol over N+1 processes using deterministic objects of consensus power N is connected
Proof sketch: suppose some G(x) is ~ disconnected each execution extending x reveals the
component of G(x) we can solve consensus using x and P
(use determinism here)
13
Emulation of connected protocols
Let P be connected Then we can emulate it using N-
consensus!
Emulation: Processes periodically output views of P
Safety: All output views are compatible with an execution of P
Liveness: at least one active process makes progress (outputs infinitely many views of P)
14
Emulation invariants Each process maintains a local estimate
of the “current” state of P Asynchronous phases, at the end of
each phase:There are at most two different state
estimates, and they are inseparable At least one participant outputs a new view All views output so far are compatible with
both state estimates
15
Phase description
Processes split in two teams q0 and q1
Each qi elects a member to promote: proposes a new “next” state xi and a new view vi
q0 and q1 runs ε-agreement and map the results to vertices of the non-separating path connecting x0 and x1
16
Look in the future: x0~x1
Go along inseparable executions until a confusing view v
17
Look in the future: x0 and x1 are not inseparable
But their parents x0’ and x1’ are – concatenate the paths
18
Choosing the next state: safety
ε=Ω(1/N): the decided vertices are neighbors
Neighboring states are inseparable
Each view is compatible with neighboring states: safety is guaranteed!
19
Joining a team: liveness
In every phase, a process:
Try to agree on the system state using N-consensus
If succeeded, join team q0 If failed (only if N came earlier)– join q1
≤N processes participate ⇨ q1 is empty Only a participant obtains a new view:
liveness is guaranteed!
20
A corollary that matters
Let P be any protocol that solves a task M
A non-blocking emulation of P is also wait-free: every active process makes progress
Every N+1-process task that can be solved by objects of consensus power N can also be solved by N-consensus objects
21
Summary
Inseparability (a general connectivity) Emulation of any connected protocol
In a system of N+1 processes, there is no object between N- and N+1-consensus
22
Related questions Can objects of consensus power N be
implemented by N-consensus objects?Common2 class: is queue in it? [Afek et al. 93,
…]
How to emulate a protocol P that uses objects of two types, each of consensus power NRobustness [Jay93,…]
Non-determinism?
23
Thank you!
24
Deterministic objects
Q, set of states O, set of operations R, set of responses σ, Q x O → Q x R, sequential specification
RW-register: a read returns the most recent written value
N-consensus: first N agree on a proposed value, N+1-th fails