What is ’’hard’’ in distributed computing? R. Guerraoui EPFL/MIT joint work with. Delporte and H. Fauconnier (Univ of Paris)

Slides:



Advertisements
Similar presentations
1 © R. Guerraoui Universal constructions R. Guerraoui Distributed Programming Laboratory.
Advertisements

Impossibility of Distributed Consensus with One Faulty Process
1 © R. Guerraoui The Limitations of Registers R. Guerraoui Distributed Programming Laboratory.
N-Consensus is the Second Strongest Object for N+1 Processes Eli Gafni UCLA Petr Kuznetsov Max Planck Institute for Software Systems.
© 2005 P. Kouznetsov Computing with Reads and Writes in the Absence of Step Contention Hagit Attiya Rachid Guerraoui Petr Kouznetsov School of Computer.
The weakest failure detector question in distributed computing Petr Kouznetsov Distributed Programming Lab EPFL.
A General Characterization of Indulgence R. Guerraoui EPFL joint work with N. Lynch (MIT)
Lecture 8: Asynchronous Network Algorithms
Teaser - Introduction to Distributed Computing
1 © R. Guerraoui The Power of Registers Prof R. Guerraoui Distributed Programming Laboratory.
Distributed Systems Overview Ali Ghodsi
Prof. Jennifer Welch 1. FIFO Queue Example 2  Sequential specification of a FIFO queue:  operation with invocation enq(x) and response ack  operation.
CPSC 668Set 18: Wait-Free Simulations Beyond Registers1 CPSC 668 Distributed Algorithms and Systems Fall 2006 Prof. Jennifer Welch.
P. Kouznetsov, 2006 Abstracting out Byzantine Behavior Peter Druschel Andreas Haeberlen Petr Kouznetsov Max Planck Institute for Software Systems.
Failure detector The story goes back to the FLP’85 impossibility result about consensus in presence of crash failures. If crash can be detected, then consensus.
1 © R. Guerraoui Implementing the Consensus Object with Timing Assumptions R. Guerraoui Distributed Programming Laboratory.
1 © P. Kouznetsov On the weakest failure detector for non-blocking atomic commit Rachid Guerraoui Petr Kouznetsov Distributed Programming Laboratory Swiss.
UPV / EHU Efficient Eventual Leader Election in Crash-Recovery Systems Mikel Larrea, Cristian Martín, Iratxe Soraluze University of the Basque Country,
Détecteurs de défaillances, mémoire partagée/passages de messages Hugues Fauconnier LIAFA, Université Denis Diderot.
Byzantine Generals Problem: Solution using signed messages.
Failure Detectors. Can we do anything in asynchronous systems? Reliable broadcast –Process j sends a message m to all processes in the system –Requirement:
1 © R. Guerraoui Object implementations out of faulty base objects Prof R. Guerraoui Distributed Programming Laboratory.
Failure Detectors & Consensus. Agenda Unreliable Failure Detectors (CHANDRA TOUEG) Reducibility ◊S≥◊W, ◊W≥◊S Solving Consensus using ◊S (MOSTEFAOUI RAYNAL)
1 © R. Guerraoui - Shared Memory - R. Guerraoui Distributed Programming Laboratory lpdwww.epfl.ch.
Asynchronous Consensus (Some Slides borrowed from ppt on Web.(by Ken Birman) )
1 Secure Failure Detection in TrustedPals Felix Freiling University of Mannheim San Sebastian Aachen Mannheim Joint Work with: Marjan Ghajar-Azadanlou.
What Can Be Implemented Anonymously ? Paper by Rachid Guerraui and Eric Ruppert Presentation by Amir Anter 1.
Josef WidderBooting Clock Synchronization1 The  - Model, and how to Boot Clock Synchronization in it Josef Widder Embedded Computing Systems Group
CPSC 668Set 11: Asynchronous Consensus1 CPSC 668 Distributed Algorithms and Systems Fall 2006 Prof. Jennifer Welch.
Distributed Systems Tutorial 4 – Solving Consensus using Chandra-Toueg’s unreliable failure detector: A general Quorum-Based Approach.
Systems of Distributed systems Module 2 - Distributed algorithms Teaching unit 2 – Properties of distributed algorithms Ernesto Damiani University of Bozen.
 Idit Keidar, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Lecture 7: Failure Detectors.
Efficient Algorithms to Implement Failure Detectors and Solve Consensus in Distributed Systems Mikel Larrea Departamento de Arquitectura y Tecnología de.
1 © R. Guerraoui Seth Gilbert Professor: Rachid Guerraoui Assistants: M. Kapalka and A. Dragojevic Distributed Programming Laboratory.
Lecture 8-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2010 Indranil Gupta (Indy) September 16, 2010 Lecture 8 The Consensus.
Lecture #12 Distributed Algorithms (I) CS492 Special Topics in Computer Science: Distributed Algorithms and Systems.
1 © P. Kouznetsov A Note on Set Agreement with Omission Failures Rachid Guerraoui, Petr Kouznetsov, Bastian Pochon Distributed Programming Laboratory Swiss.
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS Fall 2011 Prof. Jennifer Welch CSCE 668 Set 18: Wait-Free Simulations Beyond Registers 1.
1 © R. Guerraoui Concurrent Algorithms (Overview) Prof R. Guerraoui Distributed Programming Laboratory.
Review for Exam 2. Topics included Deadlock detection Resource and communication deadlock Graph algorithms: Routing, spanning tree, MST, leader election.
Ch11 Distributed Agreement. Outline Distributed Agreement Adversaries Byzantine Agreement Impossibility of Consensus Randomized Distributed Agreement.
1 © R. Guerraoui Regular register algorithms R. Guerraoui Distributed Programming Laboratory lpdwww.epfl.ch.
1 Consensus Hierarchy Part 1. 2 Consensus in Shared Memory Consider processors in shared memory: which try to solve the consensus problem.
Wait-Free Consensus CPSC 661 Fall 2003 Supervised by: Lisa Higham Presented by: Wei Wei Zheng Nuha Kamaluddeen.
CS294, Yelick Consensus revisited, p1 CS Consensus Revisited
Approximation of δ-Timeliness Carole Delporte-Gallet, LIAFA UMR 7089, Paris VII Stéphane Devismes, VERIMAG UMR 5104, Grenoble I Hugues Fauconnier, LIAFA.
Distributed systems Consensus Prof R. Guerraoui Distributed Programming Laboratory.
Chap 15. Agreement. Problem Processes need to agree on a single bit No link failures A process can fail by crashing (no malicious behavior) Messages take.
SysRép / 2.5A. SchiperEté The consensus problem.
Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with.
1 Fault tolerance in distributed systems n Motivation n robust and stabilizing algorithms n failure models n robust algorithms u decision problems u impossibility.
Failure Detectors n motivation n failure detector properties n failure detector classes u detector reduction u equivalence between classes n consensus.
1 © R. Guerraoui Set-Agreement (Generalizing Consensus) R. Guerraoui.
Unreliable Failure Detectors for Reliable Distributed Systems Tushar Deepak Chandra Sam Toueg Presentation for EECS454 Lawrence Leinweber.
© 2007 P. Kouznetsov On the Weakest Failure Detector Ever Petr Kouznetsov (Max Planck Institute for SWS) Joint work with: Rachid Guerraoui (EPFL) Maurice.
Wait-Free Consensus CPSC 661 Fall 2003 Supervised by: Lisa Higham
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS
Distributed Systems, Consensus and Replicated State Machines
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
Algorithms for Extracting Timeliness Graphs
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
- Atomic register specification -
EEC 688/788 Secure and Dependable Computing
Failure Detectors motivation failure detector properties
R. Guerraoui Distributed Programming Laboratory lpdwww.epfl.ch
Distributed systems Consensus
R. Guerraoui Distributed Programming Laboratory lpdwww.epfl.ch
Presentation transcript:

What is ’’hard’’ in distributed computing? R. Guerraoui EPFL/MIT joint work with. Delporte and H. Fauconnier (Univ of Paris)

What is ’’hard’’ in distributed computing?

Problem A is harder than problem B if any solution to A can be used to solve B B is said to be reducible to A

Black-box reductions Grey-box reductions Roadmap

B A Black-box reduction

Distributed system p1 p2 p3

Compare&Swap Register Queue Which one is harder?

In particular Register : read() and write(x) Queue : enq(x) and deq() Compare&Swap : c&s(x,y)

Register execution p1 p2 p3 write(a) -> ok read() -> b write(b) -> ok

Queue execution p1 p2 p3 enq(0) -> ok deq() -> 0 enq(1) -> ok

C&S execution p1 p2 p3 c&s( ,1) ->  c&s( ,2) -> 1 c&s( ,3) -> 1

Black-box reductions: some established results Grey-box reductions Roadmap

SRSW-Safe-Binary-Register MRMW-Atomic-M-Register All registers are equivalent (L86) NB. They are clearly not equivalent if we consider (memory) complexity (L86, CDG06)

Compare&Swap Register Queue Which one is harder?

The consensus benchmark One operation propose() All operations return the same value, and this has to be one of the values proposed

Consensus execution p1 p2 p3 prop(0) -> 0 prop(1) -> 0

Consensus number (H91) The consensus number of an object is the maximum number of processes among which the object implements consensus

Compare&Swap Register Queue Test&Set … Fetch&Add Snapshot (1) (2) ()() (3)

Consensus with registers? p1(0) p2(1) write(0) -> ok write(1) -> ok read() -> 0 read() -> 1

Consensus with registers? P(0) Q(1) write(1) -> ok read() -> 1 crash

Queue execution p1 p2 p3 enq(0) -> ok deq() -> 0 enq(1) -> ok

p1 w(0) deq() -> winner Return(0) R1 Q p2 w(1) deq() -> loser Return(0) R2 Q 2-Consensus with queues r()->0 R2

p1 w(0) deq() -> winner Return(0) R1 Q p2 w(1) deq() -> loser R2 Q 3-Consensus with queues? p3 w(0) deq() -> loser R1 Q

C&S execution p1 p2 p3 c&s( ,1) ->  c&s( ,2) -> 1 c&s( ,3) -> 1

P1(1) c&s( ,1) ->  Return(1) C&S P2(2) Return(1) C&S 3-Consensus with c&s c&s( ,2) -> 1 P3(3) Return(1) C&S c&s( ,3) -> 1

Consensus hierarchy For any integer k, there is an object with consensus number k An object with consensus number  is said to be universal

Black-box reductions: some established results Grey-box reductions: some new results Roadmap

The traditional notion of black-box reduction classifies objects, assuming these objects were available What if the objects are not available?

Compare&Swap Register Queue Test&Set … Fetch&Add Snapshot (1) (2) ()() (3)

Registers cannot implement consensus,…in an asynchronous system (FLP85,LA87,DLS86,H91)

Consensus with registers? p1(0) p2(1) write(0) -> ok write(1) -> ok read() -> 0 read() -> 1

Consensus with registers? p1(0) p2(1) write(1) -> ok read() -> 1 crash

Consensus with registers and a failure detector p1(0) p2(1) suspected(p1) crash Return(1)

Consensus with registers and a failure detector p1(0) p2(1) write(0) -> ok read() -> 0 Return(0)

Consensus Weakest failure detector (encapsulating timing assumptions) Register

Failure detector A distributed oracle that provides each process with information about the status correct/failed of other processes A failure detector is implemented with timing assumptions A failure detector A is harder than B if A can emulate B

Compare&Swap Queue Test&Set Fetch&Add Consensus Weakest failure detectors Register

Classic result (CHT92,LH94,GK04) The weakest failure detector to implement consensus (among any number of processes) with registers is 

(p1) p1 p2 p3 Failure detector  (p3) (p2) (p1)(p2) (p3)

Compare&Swap:  Register Queue? Test&Set? … ? Fetch&Add? (1) (2) (N) … ?

The weakest failure detector to implement any object that can solve consensus among at least 2 processes is  Less classic result (DFG05)

Compare&Swap Queue Test&Set Fetch&Add  Consensus All objects are equivalent

Step 1 Consider a pair of processes {p,q} :  {p,q} outputs at each process of {p,q} a leader (might not be in {p,q} )  {p,q} is the weakest to implement a consensus object shared by {p,q} (CHT92,LH94,GK04)

s q r Failure detector  {p,q} (q) (r) p (p) (r)

 {p,q} pr q

Step 2 * (  {p,q}  {p,q}) = 

Emulating  with * (  {p,q}  {p,q}) Processes periodically exchange  {p,q} and (1) Build a digraph of leaders (2) Extract the sub-digraph of accessible leaders (3) Ouput a process in the sink of the super-digraph of strongly connected components

* (  {p,q}  {p,q}) p s q r

q->r at p if p knows r is the leader of q: Phase 1 pr q The graph might contain faulty processes

q is removed from p’s graph if q is not accessible from p Phase 2 pr q The graphs have only correct processes but might be different

p extracts the sink of its digraph of strongly connected components Phase 3 All digraphs of strongly connected components eventually have the same sink (we use here the property of  {p,q})

Compare&Swap Queue Test&Set Fetch&Add  Consensus (Almost) All objects are equivalent

If objects are given as black- boxes, they are different If we can extract from the objects the failure information needed to implement them, then they are all equivalent (and universal) Reductions (black-box vs. grey box)

Object A is harder than object B if the weakest failure detector to implement A implements B Grey-box reduction

B A FD(A)

The weakest failure detector to boost the consensus number of an object from level k to k+1 is  Conjecture (Neiger)

(p1) p1 p2 p3 Failure detector  (p1,p3) (p2) (p1)(p2) (p1,p3)

(1-set) consensus 2-consensus 1-consensus 2-set consensus Impossible

(1-set) consensus 2-consensus 1-consensus 2-set consensus Same weakest failure detector  Conjecture