Distributed Systems – CS425/CSE424/ECE428 – Fall 2011 2011-08-25Nikita Borisov — UIUC1.

Slides:



Advertisements
Similar presentations
Fault Tolerance. Basic System Concept Basic Definitions Failure: deviation of a system from behaviour described in its specification. Error: part of.
Advertisements

Global States.
Impossibility of Distributed Consensus with One Faulty Process
CS 542: Topics in Distributed Systems Diganta Goswami.
CS425 /CSE424/ECE428 – Distributed Systems – Fall 2011 Material derived from slides by I. Gupta, M. Harandi, J. Hou, S. Mitra, K. Nahrstedt, N. Vaidya.
DISTRIBUTED SYSTEMS II FAULT-TOLERANT BROADCAST Prof Philippas Tsigas Distributed Computing and Systems Research Group.
Teaser - Introduction to Distributed Computing
Failure Detection The ping-ack failure detector in a synchronous system satisfies – A: completeness – B: accuracy – C: neither – D: both.
Computer Science 425 Distributed Systems CS 425 / ECE 428 Consensus
Byzantine Generals Problem: Solution using signed messages.
Distributed systems Module 2 -Distributed algorithms Teaching unit 1 – Basic techniques Ernesto Damiani University of Bozen Lesson 3 – Distributed Systems.
Computer Science Lecture 11, page 1 CS677: Distributed OS Last Class: Clock Synchronization Logical clocks Vector clocks Global state.
1 Principles of Reliable Distributed Systems Lecture 5: Failure Models, Fault-Tolerant Broadcasts and State-Machine Replication Spring 2005 Dr. Idit Keidar.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Failure Detectors Steve Ko Computer Sciences and Engineering University at Buffalo.
OCT Masters of Information Systems Management 1 Organizational Communications and Distributed Object Technologies Week 3: Models and Architectures.
Aran Bergman, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Recitation 5: Reliable.
Cloud Computing Concepts
System Models. Architectural model Structure of the system in terms of components Goals:  reliable, manageable, adaptable, cost-effective system design.
OCT1 Principles From Chapter Two of “Distributed Systems Concepts and Design” Material on Lamport Clocks from “Distributed Systems Principles and Paradigms”
Composition Model and its code. bound:=bound+1.
Time, Clocks, and the Ordering of Events in a Distributed System Leslie Lamport (1978) Presented by: Yoav Kantor.
CSE 486/586 Distributed Systems Failure Detectors
1 A Modular Approach to Fault-Tolerant Broadcasts and Related Problems Author: Vassos Hadzilacos and Sam Toueg Distributed Systems: 526 U1580 Professor:
CS542: Topics in Distributed Systems Diganta Goswami.
Failure detection and consensus Ludovic Henrio CNRS - projet OASIS Distributed Algorithms.
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.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts & Design (5 th Ed.). Essex: Addison-Wesley.
Distributed System Models (Fundamental Model). Architectural Model Goal Reliability Manageability Adaptability Cost-effectiveness Service Layers Platform.
Chapter 2: System Models. Objectives To provide students with conceptual models to support their study of distributed systems. To motivate the study of.
Coordination and Agreement. Topics Distributed Mutual Exclusion Leader Election.
Lecture 4-1 Computer Science 425 Distributed Systems CS 425 / ECE 428 Fall 2013 Indranil Gupta (Indy) September 5, 2013 Lecture 4 Failure Detection Reading:
CS4231 Parallel and Distributed Algorithms AY 2006/2007 Semester 2 Lecture 8 Instructor: Haifeng YU.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Slides for Chapter 2: Architectural.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
Chapter 2: Architectural Models Jenhui Chen. Introduction zArchitectural models ySoftware layers ySystem architecture yVariations on the client-server.
1 © R. Guerraoui Regular register algorithms R. Guerraoui Distributed Programming Laboratory lpdwww.epfl.ch.
Lecture 11 Failure Detectors (Sections 12.1 and part of 2.3.2) Klara Nahrstedt CS 425/ECE 428/CSE424 Distributed Systems (Fall 2009)
Prepared By: Md Rezaul Huda Reza
Chapter 2: System Models  Architectural Models  Fundamental Models.
Slides for Chapter 2: Architectural Models
Lecture 11-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2010 Indranil Gupta (Indy) September 28, 2010 Lecture 11 Leader Election.
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.
Physical clock synchronization Question 1. Why is physical clock synchronization important? Question 2. With the price of atomic clocks or GPS coming down,
SysRép / 2.5A. SchiperEté The consensus problem.
1 © R. Guerraoui Distributed algorithms Prof R. Guerraoui Assistant Marko Vukolic Exam: Written, Feb 5th Reference: Book - Springer.
Distributed System Models
Failure detection The design of fault-tolerant systems will be easier if failures can be detected. Depends on the 1. System model, and 2. The type of failures.
Lecture 4-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2012 Indranil Gupta (Indy) September 6, 2012 Lecture 4 Failure Detection.
CSE 486/586 CSE 486/586 Distributed Systems Leader Election Steve Ko Computer Sciences and Engineering University at Buffalo.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 System Models by Dr. Sarmad Sadik.
Classifying fault-tolerance Masking tolerance. Application runs as it is. The failure does not have a visible impact. All properties (both liveness & safety)
Distributed Systems Lecture 9 Leader election 1. Previous lecture Middleware RPC and RMI – Marshalling 2.
Fundamentals of Fault-Tolerant Distributed Computing In Asynchronous Environments Paper by Felix C. Gartner Graeme Coakley COEN 317 November 23, 2003.
Distributed Systems Lecture 4 Failure detection 1.
EEC 688/788 Secure and Dependable Computing Lecture 10 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
CSE 486/586 Distributed Systems Failure Detectors
When Is Agreement Possible
CSE 486/586 Distributed Systems Failure Detectors
CSE 486/586 Distributed Systems Failure Detectors
Slides for Chapter 2: Architectural Models
Distributed Systems, Consensus and Replicated State Machines
Slides for Chapter 2: Architectural Models
EEC 688/788 Secure and Dependable Computing
Physical clock synchronization
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
CSE 486/586 Distributed Systems Failure Detectors
Broadcasting with failures
CSE 486/586 Distributed Systems Leader Election
Presentation transcript:

Distributed Systems – CS425/CSE424/ECE428 – Fall Nikita Borisov — UIUC1

 Multiple computers  Concurrent execution  Independent failures  Autonomous administrators  Heterogeneous capacities, properties  Large numbers (scalability)  Networked communication  Asynchronous execution  Unreliable delivery  Insecure medium  Common goal  Consistency – can discuss whole-system properties  Transparency – can use the system without knowing details Nikita Borisov — UIUC2

 How do we detect failures?  Models  Failures  Networks  Properties  Guarantees  Metrics  Techniques Nikita Borisov — UIUC3

 What is a failure?  Process omission failure  Crash-stop (fail-stop) – a process halts and does not execute any further operations  Crash-recovery – a process halts, but then recovers (reboots) after a while  We will focus on Crash-stop failures  They are easy to detect in synchronous systems  Not so easy in asynchronous systems

 Synchronous Distributed System  Each message is received (successfully) within bounded time  Each step in a process takes lb < time < ub  (Each local clock’s drift has a known bound)  Asynchronous Distributed System  No bounds on message transmission delays  No bounds on process execution  (The drift of a clock is arbitrary)  Which is more realistic?  Synchronous: Multiprocessor systems  Asynchronous: Internet, wireless networks, datacenters, most real systems

pipi pjpj

pipi pjpj Crash-stop failure (p j is a failed process)

pipi needs to know about p j ’s failure (p i is a non-faulty process or alive process) Crash-stop failure (p j is a failed process) pjpj There are two styles of failure detectors

pipi pjpj - p j replies - p i queries p j once every T time units - if p j does not respond within another T time units of being sent the ping, p i detects p j as failed ping ack If p j fails, then within T time units, p i will send it a ping message. p i will time out within another T time units. Worst case Detection time = 2T The waiting time ‘T’ can be parameterized.

pipi pjpj - p j maintains a sequence number - p j sends p i a heartbeat with incremented seq. number after every T time units -if p i has not received a new heartbeat for the past, say 3T time units, since it received the last heartbeat, then p i detects p j as failed heartbeat If T ≫ round trip time of messages, then worst case detection time ~ 3T (why?) The ‘3’ can be changed to any positive number since it is a parameter

 The Ping-ack and Heartbeat failure detectors are always correct  Ping-ack: set waiting time T to be > round-trip time upper bound  Heartbeat: set waiting time 3T to be > round-trip time upper bound  The following property is guaranteed:  If a process p j fails, then p i will detect its failure as long as p i itself is alive  Its next ack/heartbeat will not be received (within the timeout), and thus pi will detect p j as having failed

 Completeness = every process failure is eventually detected (no misses)  Accuracy = every detected failure corresponds to a crashed process (no mistakes)  What is a protocol that is 100% complete?  What is a protocol that is 100% accurate?  Completeness and Accuracy  Can both be guaranteed 100% in a synchronous distributed system (with reliable message delivery in bounded time)  Can never be guaranteed simultaneously in an asynchronous distributed system  Why?

 Impossible because of arbitrary message delays, message losses  If a heartbeat/ack is dropped (or several are dropped) from p j, then p j will be mistakenly detected as failed => inaccurate detection  How large would the T waiting period in ping-ack or 3T waiting period in heartbeating, need to be to obtain 100% accuracy?  In asynchronous systems, delay/losses on a network link are impossible to distinguish from a faulty process  Heartbeating – satisfies completeness but not accuracy (why?)  Ping-Ack – satisfies completeness but not accuracy (why?)

 Most failure detector implementations are willing to tolerate some inaccuracy, but require 100% Completeness  Plenty of distributed apps designed assuming 100% completeness, e.g., p2p systems  “Err on the side of caution”.  Processes not “stuck” waiting for other processes  But it’s ok to mistakenly detect once in a while since – the victim process need only rejoin as a new process  Both Hearbeating and Ping-ack provide  Probabilistic accuracy (for a process detected as failed, with some probability close to 1.0 (but not equal), it is true that it has actually crashed).

 That was for one process p j being detected and one process pi detecting failures  Let’s extend it to an entire distributed system  Difference from original failure detection is  We want failure detection of not merely one process (p j ), but all processes in system

… p j, Heartbeat Seq. l++ pjpj pipi Downside?

p j, Heartbeat Seq. l++ pjpj … … pipi Downside?

p j, Heartbeat Seq. l++ … pjpj pipi Advantage: Everyone is able to keep track of everyone Downside?

 Bandwidth: the number of messages sent in the system during steady state (no failures)  Small is good  Detection Time  Time between a process crash and its detection  Small is good  Scalability: Given the bandwidth and the detection properties, can you scale to a 1000 or million nodes?  Large is good  Accuracy  Large is good (lower inaccuracy is good)

 False Detection Rate: Average number of failures detected per second, when there are in fact no failures  Fraction of failure detections that are false  Tradeoffs: If you increase the T waiting period in ping- ack or 3T waiting period in heartbeating what happens to:  Detection Time?  False positive rate?  Where would you set these waiting periods?

 Let’s discuss the other types of failures  Failure detectors exist for them too (but we won’t discuss those)

 Communication omission failures  Send-omission: loss of messages between the sending process and the outgoing message buffer (both inclusive) ▪ What might cause this?  Channel omission: loss of message in the communication channel ▪ What might cause this?  Receive-omission: loss of messages between the incoming message buffer and the receiving process (both inclusive) ▪ What might cause this?

 Arbitrary failures  Arbitrary process failure: arbitrarily omits intended processing steps or takes unintended processing steps.  Arbitrary channel failures: messages may be corrupted, duplicated, delivered out of order, incur extremely large delays; or non-existent messages may be delivered.  Above two are Byzantine failures, e.g., due to hackers, man-in-the-middle attacks, viruses, worms, etc.  A variety of Byzantine fault-tolerant protocols have been designed in literature!

Class of failureAffectsDescription Fail-stopProcessProcess halts and remains halted. Other processes may detect this state. OmissionChannelA message inserted in an outgoing message buffer never arrives at the other end’s incoming message buffer. Send-omissionProcessA process completes asend, but the message is not put in its outgoing message buffer. Receive-omissionProcessA message is put in a process’s incoming message buffer, but that process does not receive it. Arbitrary (Byzantine) Process or channel Process/channel exhibits arbitrary behaviour: it may send/transmit arbitrary messages at arbitrary times, commit omissions; a process may stop or take an incorrect step.

 Failure detectors are required in distributed systems to keep system running in spite of process crashes  Properties – completeness & accuracy, together unachievable in asynchronous systems but achievable in synchronous sytems  Most apps require 100% completeness, but can tolerate inaccuracy  2 failure detector algorithms - Heartbeating and Ping  Distributed FD through heartbeating: Centralized, Ring, All-to-all  Metrics: Bandwidth, Detection Time, Scale, Accuracy  Other Types of Failures

 Reading for Next Topics: Sections  Time and Synchronization  Global States and Snapshots