CSE 486/586 Distributed Systems Reliable Multicast --- 1

Slides:



Advertisements
Similar presentations
CS425/CSE424/ECE428 – Distributed Systems – Fall 2011 Material derived from slides by I. Gupta, M. Harandi, J. Hou, S. Mitra, K. Nahrstedt, N. Vaidya.
Advertisements

DISTRIBUTED SYSTEMS II FAULT-TOLERANT BROADCAST Prof Philippas Tsigas Distributed Computing and Systems Research Group.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Consensus Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Reliable Multicast Steve Ko Computer Sciences and Engineering University at Buffalo.
CS542 Topics in Distributed Systems Diganta Goswami.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Consistency Steve Ko Computer Sciences and Engineering University at Buffalo.
CS 582 / CMPE 481 Distributed Systems
Causality & Global States. P1 P2 P Physical Time 4 6 Include(obj1 ) obj1.method() P2 has obj1 Causality violation occurs when order.
CMPT 431 Dr. Alexandra Fedorova Lecture VIII: Time And Global Clocks.
Distributed Systems Fall 2009 Logical time, global states, and debugging.
Aran Bergman, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Recitation 5: Reliable.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
Computer Science Lecture 10, page 1 CS677: Distributed OS Last Class: Clock Synchronization Physical clocks Clock synchronization algorithms –Cristian’s.
Logical Clocks (2). Topics r Logical clocks r Totally-Ordered Multicasting r Vector timestamps.
Computer Science 425 Distributed Systems (Fall 2009) Lecture 5 Multicast Communication Reading: Section 12.4 Klara Nahrstedt.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
1 Distributed Systems CS 425 / CSE 424 / ECE 428 Global Snapshots Reading: Sections 11.5 (4 th ed), 14.5 (5 th ed)  2010, I. Gupta, K. Nahrtstedt, S.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Mutual Exclusion Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Distributed Shared Memory Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Mutual Exclusion Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Replication with View Synchronous Group Communication Steve Ko Computer Sciences and Engineering.
Multicast Communication. Unicast vs. Multicast Multicast Whereas the majority of network services and network applications use unicast for IPC, multicasting.
CSE 486/586 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
Distributed Systems Fall 2010 Logical time, global states, and debugging.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Global States Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Mutual Exclusion & Leader Election Steve Ko Computer Sciences and Engineering University.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Consistency Steve Ko Computer Sciences and Engineering University at Buffalo.
Ordering of Events in Distributed Systems UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 739 Distributed Systems Andrea C. Arpaci-Dusseau.
CSE 486/586 CSE 486/586 Distributed Systems Global States Steve Ko Computer Sciences and Engineering University at Buffalo.
Lecture 4-1 Computer Science 425 Distributed Systems (Fall2009) Lecture 4 Chandy-Lamport Snapshot Algorithm and Multicast Communication Reading: Section.
Mutual Exclusion Algorithms. Topics r Defining mutual exclusion r A centralized approach r A distributed approach r An approach assuming an organization.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Paxos Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586 CSE 486/586 Distributed Systems Leader Election Steve Ko Computer Sciences and Engineering University at Buffalo.
CS 425 / ECE 428 Distributed Systems Fall 2015 Indranil Gupta (Indy) Lecture 9: Multicast Sep 22, 2015 All slides © IG.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
Distributed Systems Lecture 7 Multicast 1. Previous lecture Global states – Cuts – Collecting state – Algorithms 2.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Paxos Steve Ko Computer Sciences and Engineering University at Buffalo.
Distributed Systems Lecture 6 Global states and snapshots 1.
Reliable multicast Tolerates process crashes. The additional requirements are: Only correct processes will receive multicasts from all correct processes.
Ordering of Events in Distributed Systems UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 739 Distributed Systems Andrea C. Arpaci-Dusseau.
CSE 486/586 Distributed Systems Byzantine Fault Tolerance
Distributed systems II Fault-Tolerant Broadcast
Distributed Systems Course Coordination and Agreement
Coordination and Agreement
CSE 486/586 Distributed Systems Leader Election
Advanced Operating System
CSE 486/586 Distributed Systems Logical Time
CSE 486/586 Distributed Systems Global States
CSE 486/586 Distributed Systems Logical Time
Computer Science 425 Distributed Systems CS 425 / ECE 428 Fall 2013
CSE 486/586 Distributed Systems Byzantine Fault Tolerance
COT 5611 Operating Systems Design Principles Spring 2012
CS 425 / ECE 428 Distributed Systems Fall 2017 Indranil Gupta (Indy)
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS
湖南大学-信息科学与工程学院-计算机与科学系
Time And Global Clocks CMPT 431.
CSE 486/586 Distributed Systems Leader Election
CSE 486/586 Distributed Systems Mutual Exclusion
Distributed Systems Course Coordination and Agreement
CSE 486/586 Distributed Systems Global States
CSE 486/586 Distributed Systems Consistency --- 2
CSE 486/586 Distributed Systems Consistency --- 1
CSE 486/586 Distributed Systems Reliable Multicast --- 2
CSE 486/586 Distributed Systems Logical Time
CSE 486/586 Distributed Systems Mutual Exclusion
CSE 486/586 Distributed Systems Byzantine Fault Tolerance
COT 5611 Operating Systems Design Principles Spring 2014
CSE 486/586 Distributed Systems Reliable Multicast --- 1
CSE 486/586 Distributed Systems Leader Election
Presentation transcript:

CSE 486/586 Distributed Systems Reliable Multicast --- 1 Steve Ko Computer Sciences and Engineering University at Buffalo

Last Time Global states The “snapshot” algorithm A union of all process states Consistent global state vs. inconsistent global state The “snapshot” algorithm Take a snapshot of the local state Broadcast a “marker” msg to tell other processes to record Start recording all msgs coming in for each channel until receiving a “marker” Outcome: a consistent global state

Today’s Question How do a group of processes communicate? Unicast (best effort or reliable) One-to-one: Message from process p to process q. Best effort: message may be delivered, but will be intact Reliable: message will be delivered Broadcast One-to-all: Message from process p to all processes Impractical for large networks Multicast One-to-many: “Local” broadcast within a group g of processes What are the issues? Processes crash (we assume crash-stop) Messages get delayed

Why: Examples Articulating why is very important.

Why: Examples Akamai’s Configuration Management System (called ACMS) A core group of 3-5 servers. Continuously multicast to each other the latest updates. After an update is reliably multicast within this group, it is then sent out to all the (1000s of) servers Akamai has all over the world. Air Traffic Control System Commands by one ATC need to be ordered (and reliable) multicast out to other ATC’s. Newsgroup servers Multicast to each other in a reliable and ordered manner.

The Interface Application (at process p) MULTICAST PROTOCOL send Incoming messages deliver One process p

What: Properties to Consider Liveness: guarantee that something good will happen eventually For the initial state, there is a reachable state where the predicate becomes true. “Guarantee of termination” is a liveness property Safety: guarantee that something bad will never happen For any state reachable from the initial state, the predicate is false. Deadlock avoidance algorithms provide safety Liveness and safety are used in many other CS contexts. When you design a system, articulating the properties (what) is very important.

Basic Multicast (B-multicast) A straightforward way to implement B-multicast is to use a reliable one-to-one send (unicast) operation: B-multicast(g,m): for each process p in g, send(p,m). receive(m): B-deliver(m) at p. Guarantees? All processes in g eventually receive every multicast message… … as long as the sender doesn’t crash This guarantee is not so good. What guarantees do we want (once again)?

What: Reliable Multicast Goals Integrity: A correct (i.e., non-faulty) process p delivers a message m at most once. “Non-faulty”: doesn’t deviate from the protocol & alive Agreement: If a correct process delivers message m, then all the other correct processes in group(m) will eventually deliver m. Property of “all or nothing.” Validity: If a correct process multicasts (sends) message m, then it will eventually deliver m itself. Guarantees liveness to the sender. Validity and agreement together ensure overall liveness: if some correct process multicasts a message m, then, all correct processes deliver m too. Once again, articulating what is very important.

Reliable Multicast Overview Keep a history of messages for at-most-once delivery Everyone repeats multicast upon a receipt of a message. Why? For agreement & validity. Even if the sender crashes, as long as there is one process that receives since it’s going to repeat.

Reliable R-Multicast Algorithm B-multicast reliable unicast “USES” On initialization Received := {}; For process p to R-multicast message m to group g B-multicast(g,m); (p∈ g is included as destination) On B-deliver(m) at process q with g = group(m) if (m ∉ Received): Received := Received ∪ {m}; if (q ≠ p): R-deliver(m)

Reliable R-Multicast Algorithm On initialization Received := {}; For process p to R-multicast message m to group g B-multicast(g,m); (p∈ g is included as destination) On B-deliver(m) at process q with g = group(m) if (m ∉ Received): Received := Received ∪ {m}; if (q ≠ p): R-deliver(m) Integrity Agreement Validity

CSE 486/586 Administrivia PA2-A was due today. For undergrads, it is due next Wednesday. PA2-B is due in three weeks (3/11), right before Spring Break. Midterm is on 3/9. Plan well and ahead. PA2-B is significantly more difficult. Recitation today I’ll be there (no separate office hours). Please ask questions and give feedback during my office hours. Help us help you!

Ordered Multicast Problem Each process delivers received messages independently. What is the order of delivery for each process if they deliver as soon as they receive? The question is, what ordering does each process use? Three meaningful types of ordering FIFO, Causal, Total M1 P1 P2 M2 P3

FIFO Ordering Preserving the process order The message delivery order at each process should preserve the message sending order from every process. But each process can deliver in a different order. For example, P1: m0, m1, m2 P2: m3, m4, m5 P3: m6, m7, m8 FIFO? P1: m0, m3, m6, m1, m4, m7, m2, m5, m8 P2: m0, m4, m6, m1, m3, m7, m2, m5, m8 P3: m6, m7, m8, m0, m1, m2, m3, m4, m5

Causal Ordering Preserving the happened-before relations The message delivery order at each process should preserve the happened-before relations across all processes. But each process can deliver in a different order. For example, P1: m0, m1, m2 P2: m3, m4, m5 P3: m6, m7, m8 Cross-process happened-before: m0  m4, m5  m8 Causal? P1: m0, m3, m6, m1, m4, m7, m2, m5, m8 P2: m0, m4, m1, m7, m3, m6, m2, m5, m8 P3: m0, m1, m2, m3, m4, m5, m6, m7, m8

Total Ordering Every process delivers all messages in the same order. For example, P1: m0, m1, m2 P2: m3, m4, m5 P3: m6, m7, m8 Total? P1: m7, m1, m2, m4, m5, m3, m6, m0, m8 P2: m7, m1, m2, m4, m5, m3, m6, m0, m8 P3: m7, m1, m2, m4, m5, m3, m6, m0, m8 P2: m7, m2, m1, m4, m5, m3, m6, m0, m8 P3: m7, m1, m2, m4, m5, m3, m6, m8, m0

Ordered Multicast FIFO ordering: If a correct process issues multicast(g,m) and then multicast(g,m’), then every correct process that delivers m’ will have already delivered m. Causal ordering: If multicast(g,m)  multicast(g,m’) then any correct process that delivers m’ will have already delivered m. Typically,  defined in terms of multicast communication only Total ordering: If a correct process delivers message m before m’ (independent of the senders), then any other correct process that delivers m’ will have already delivered m.

Total, FIFO and Causal Ordering Totally ordered messages T1 and T2. FIFO-related messages F1 and F2. Causally related messages C1 and C3 Total ordering does not imply causal ordering. Causal ordering implies FIFO ordering Causal ordering does not imply total ordering. Hybrid mode: causal-total ordering, FIFO-total ordering.

Display From Bulletin Board Program os.interesting Item From Subject 23 A.Hanlon Mach 24 G.Joseph Microkernels 25 Re: Microkernels 26 T.L’Heureux RPC performance 27 M.Walker Re: Mach end What is the most appropriate ordering for this application? (a) FIFO (b) causal (c) total

Providing Ordering Guarantees (FIFO) Look at messages from each process in the order they were sent: Each process keeps a sequence number for each of the other processes. When a message is received, if message # is: as expected (next sequence), accept higher than expected, buffer in a queue lower than expected, reject

Implementing FIFO Ordering Spg: the number of messages p has sent to g. Rqg: the sequence number of the latest group-g message p has delivered from q. For p to FO-multicast m to g p increments Spg by 1. p “piggy-backs” the value Spg onto the message. p B-multicasts m to g. At process p, Upon receipt of m from q with sequence number S: p checks whether S= Rqg+1. If so, p FO-delivers m and increments Rqg If S > Rqg+1, p places the message in the hold-back queue until the intervening messages have been delivered and S= Rqg+1.

Hold-back Queue for Arrived Multicast Messages

Example: FIFO Multicast (do NOT be confused with vector timestamps) “Accept” = Deliver Physical Time Reject: 1 < 1 + 1 Accept 1 = 0 + 1 Accept: 2 = 1 + 1 1 0 0 2 0 0 2 1 0 2 1 0 P1 0 0 0 1 2 2 1 1 1 P2 0 0 0 2 1 0 1 0 0 2 0 0 Accept 1 = 0 + 1 1 P3 0 0 0 0 0 0 1 0 0 2 1 0 2 0 0 Buffer 2>0 +1 2 0 0 Accept Buffer 2 =1 + 1 Accept: 1 = 0 + 1 0 0 0 Sequence Vector

Summary Reliable Multicast Ordered Multicast Reliability Ordering R-multicast Ordered Multicast FIFO ordering Total ordering Causal ordering Next: continue on multicast

Acknowledgements These slides contain material developed and copyrighted by Indranil Gupta (UIUC).