Distributed Systems Lecture 7 Multicast 1. Previous lecture Global states – Cuts – Collecting state – Algorithms 2.

Slides:



Advertisements
Similar presentations
1 Process groups and message ordering If processes belong to groups, certain algorithms can be used that depend on group properties membership create (
Advertisements

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.
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.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Lab 2 Group Communication Andreas Larsson
Distributed Systems Fall 2010 Replication Fall 20105DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
1 A Case For End System Multicast Yang-hua Chu, Sanjay Rao and Hui Zhang Carnegie Mellon University Largely adopted from Jonathan Shapiro’s slides at umass.
Virtual Synchrony Jared Cantwell. Review Multicast Causal and total ordering Consistent Cuts Synchronized clocks Impossibility of consensus Distributed.
Secure Multicast (II) Xun Kang. Content Batch Update of Key Trees Reliable Group Rekeying Tree-based Group Diffie-Hellman Recent progress in Wired and.
Group Communications Group communication: one source process sending a message to a group of processes: Destination is a group rather than a single process.
© nCode 2000 Title of Presentation goes here - go to Master Slide to edit - Slide 1 Reliable Communication for Highly Mobile Agents ECE 7995: Term Paper.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Group Communication Phuong Hoai Ha & Yi Zhang Introduction to Lab. assignments March 24 th, 2004.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Application Layer Multicast
1 Principles of Reliable Distributed Systems Lecture 5: Failure Models, Fault-Tolerant Broadcasts and State-Machine Replication Spring 2005 Dr. Idit Keidar.
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
Multicast Communication Multicast is the delivery of a message to a group of receivers simultaneously in a single transmission from the source – The source.
Communication Part IV Multicast Communication* *Referred to slides by Manhyung Han at Kyung Hee University and Hitesh Ballani at Cornell University.
Lab 1 Bulletin Board System Farnaz Moradi Based on slides by Andreas Larsson 2012.
Computer Science 425 Distributed Systems (Fall 2009) Lecture 5 Multicast Communication Reading: Section 12.4 Klara Nahrstedt.
1 A Modular Approach to Fault-Tolerant Broadcasts and Related Problems Author: Vassos Hadzilacos and Sam Toueg Distributed Systems: 526 U1580 Professor:
Overcast: Reliable Multicasting with an Overlay Network CS294 Paul Burstein 9/15/2003.
ARMADA Middleware and Communication Services T. ABDELZAHER, M. BJORKLUND, S. DAWSON, W.-C. FENG, F. JAHANIAN, S. JOHNSON, P. MARRON, A. MEHRA, T. MITTON,
Lab 2 Group Communication Farnaz Moradi Based on slides by Andreas Larsson 2012.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Replication with View Synchronous Group Communication Steve Ko Computer Sciences and Engineering.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Farnaz Moradi Based on slides by Andreas Larsson 2013.
Group Communication Group oriented activities are steadily increasing. There are many types of groups:  Open and Closed groups  Peer-to-peer and hierarchical.
Farnaz Moradi Based on slides by Andreas Larsson 2013.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Replication Steve Ko Computer Sciences and Engineering University at Buffalo.
Hwajung Lee. A group is a collection of users sharing some common interest.Group-based activities are steadily increasing. There are many types of groups:
Application-Level Multicast Routing Michael Siegenthaler CS 614 – Cornell University November 2, 2006 A few slides are borrowed from Swati Agarwal, CS.
November NC state university Group Communication Specifications Gregory V Chockler, Idit Keidar, Roman Vitenberg Presented by – Jyothish S Varma.
EEC 688/788 Secure and Dependable Computing Lecture 10 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
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.
Building Dependable Distributed Systems, Copyright Wenbing Zhao
Replication and Group Communication. Management of Replicated Data FE Requests and replies C Replica C Service Clients Front ends managers RM FE RM Instructor’s.
Overlay Networks and Overlay Multicast May Definition  Network -defines addressing, routing, and service model for communication between hosts.
Chapter 7: Consistency & Replication IV - REPLICATION MANAGEMENT By Jyothsna Natarajan Instructor: Prof. Yanqing Zhang Course: Advanced Operating Systems.
Lecture 10: Coordination and Agreement (Chap 12) Haibin Zhu, PhD. Assistant Professor Department of Computer Science Nipissing University © 2002.
A Case for End System Multicast 學號: 報告人:通訊所 吳瑞益 指導教授:楊峻權 日期: ACM SIGMETRICS.
1 A Case For End System Multicast Yang-hua Chu, Sanjay Rao and Hui Zhang Carnegie Mellon University.
Lecture 4-1 Computer Science 425 Distributed Systems (Fall2009) Lecture 4 Chandy-Lamport Snapshot Algorithm and Multicast Communication Reading: Section.
Fault Tolerance (2). Topics r Reliable Group Communication.
CS 425 / ECE 428 Distributed Systems Fall 2015 Indranil Gupta (Indy) Lecture 9: Multicast Sep 22, 2015 All slides © IG.
Indirect Communication Indirect Communication is defined as communication between entities in DS through intermediary with no direct coupling b/w sender.
Distributed Systems Lecture 9 Leader election 1. Previous lecture Middleware RPC and RMI – Marshalling 2.
Group Communication A group is a collection of users sharing some common interest.Group-based activities are steadily increasing. There are many types.
Chapter 8 Fault Tolerance. Outline Introductions –Concepts –Failure models –Redundancy Process resilience –Groups and failure masking –Distributed agreement.
EEC 688/788 Secure and Dependable Computing Lecture 10 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Reliable multicast Tolerates process crashes. The additional requirements are: Only correct processes will receive multicasts from all correct processes.
CSE 486/586 Distributed Systems Reliable Multicast --- 1
Coordination and Agreement
Replication & Fault Tolerance CONARD JAMES B. FARAON
Reliable group communication
Chapter 7: Consistency & Replication IV - REPLICATION MANAGEMENT -Sumanth Kandagatla Instructor: Prof. Yanqing Zhang Advanced Operating Systems (CSC 8320)
Computer Science 425 Distributed Systems CS 425 / ECE 428 Fall 2013
Overlay Networking Overview.
CS 425 / ECE 428 Distributed Systems Fall 2017 Indranil Gupta (Indy)
EEC 688/788 Secure and Dependable Computing
Indirect Communication Paradigms (or Messaging Methods)
Indirect Communication Paradigms (or Messaging Methods)
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
EE 122: Lecture 22 (Overlay Networks)
EE 122: Lecture 13 (IP Multicast Routing)
CSE 486/586 Distributed Systems Reliable Multicast --- 1
Presentation transcript:

Distributed Systems Lecture 7 Multicast 1

Previous lecture Global states – Cuts – Collecting state – Algorithms 2

Motivation Coordination is needed by distributed systems but hard to achieve: – Events happen concurrently – Communication links are not reliable – Computers can crash – New nodes can join the systems – Asynchronous environments  Need of an efficient way to coordinate a group of processes 3 Refer to slides of Andreas Chalmers University of Technology, Indranil IIT, and Insup University of Pennsylvania

A distributed system in war: synchronous example Friendly fighter Radar Missile Commander Enemy missile Friend Ready to Fire Cancel AskPrepare Friendly fighter 4

A distributed system in war: reality Radar Missile Commander Enemy missile Friend Ready to Fire Fire AskPrepare Friendly fighter Friendly fighter 5

Group communication What is a group? – A number of processes which cooperate to provide a service. – An abstract identity to name a collection of processes. Group Communication – For coordination among processes of a group.

Who needs group communication? Highly available servers (client-server) Database Replication Multimedia Conferencing Online Games Cluster management …

High availability Who needs group communication?

Online game Fault-tolerance, Order

Different comm. methods Unicast – Point-to-Point Communication – Multiple copies are sent Broadcast – One-to-All Communication – Abuse of Network Bandwidth Multicast  this lecture – One-to-multiple (group) Communication

Desired group communication Name Abstraction Efficiency Delivery Guarantees Dynamic Membership  Multicast  Reliability, Ordering  Group membership service

Properties of communication Ordering – Total ordering, causal ordering Failure behavior Reliability – Validity, integrity, agreement

Properties of Group Name of group Addresses of group members Dynamic group membership Options: – Peer group or client-server group – Closed or Open Group

Akamai’s Configuration Management System (called ACMS) uses a core group of 3-5 servers – Servers continuously multicast to each other the latest updates. They use reliable multicast – 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 – Orders by one ATC need to be ordered (and reliable) multicast out to other ATCs Newsgroup servers multicast to each other in a reliable and ordered manner Facebook servers multicast your updates to each other Examples of multicast using

So what is the big issue … More than 20 years since proposal but no wide area IP multicast deployment Scalability (with number of groups) -- Routers maintain per-group state IP Multicast: best-effort multi-point delivery service -- Providing higher level features such as reliability, congestion control, flow control, and security has shown to be more difficult than in the unicast case Can we achieve efficient multi-point delivery without IP-layer support?

Application layer multicast Stanford CMU Stan1 Stan2 Berk2 Overlay Tree Gatech Berk1 Berkeley Gatech Stan1 Stan2 Berk1 Berk2 CMU

Pros and cons Scalability – Routers do not maintain per-group state – End systems do, but they participate in very few groups Potentially simplify support for higher level functionality – Leverage computation and storage of end systems – Leverage solutions for unicast congestion, error and flow control Efficiency concerns – redundant traffic on physical links – increase in latency due to end-systems

System structure The overlay comprises of : A central source (may be replicated for fault tolerance) A number of overcast nodes (standard PCs with lot’s of storage) - organized into a distribution tree rooted at the source - bandwidth efficient trees Final Consumers – members of the multicast group - allows unmodified HTTP clients to join

Bandwidth Efficient Overlay Trees “…three ways of organizing the root and the nodes into a distribution tree.” 10 Mb/s 100 Mb/s R 1 2 R 1 2 R 12 R 12

The node addition algorithm R R Physical network substrate Overcast distribution tree

The client side: how to join a multicast group Clients join a multicast group through a typical HTTP GET request Root determines where to connect the client to the multicast tree using – Status of overcast nodes – Location of client Root selects “best” server and redirects the client to that server

Client Joins R1R R2R2 R3R3 Key: Content query (multicast join) Query redirect Content delivery

Application (at process p) MULTICAST PROTOCOL send multicast Incoming messages deliver multicast (upcall) One process p Multicast protocol

Let’s assume the all processes know the group membership A straightforward way to implement B-multicast is to use a reliable one-to-one send (unicast) operation: – B-multicast(group g, message m) for each process p in g, send (p, m). – receive(m) B-deliver(m) at p. A correct process = a non-faulty process A basic multicast primitive guarantees a correct process will eventually deliver the message, as long as the sender (multicasting process) does not crash. – Can we provide reliability even when the sender crashes (after it has sent the multicast)? Basic multicast (B-multicast)

Integrity – A correct process p delivers a message m at most once Validity: If a correct process multicasts (sends) message m, then it will eventually deliver m itself – Guarantees liveness to the sender Agreement: If some correct process delivers message m, then all other correct processes in group(m) will eventually deliver m – Property of all or nothing – Validity and agreement together ensure overall liveness: If some correct process multicasts a message m, then, all correct processes deliver m too. Reliable multicast

R-multicast B-multicast reliable unicast “USES” Reliable R-multicast algorithm Integrity Agreement if some correct process B-multicasts a message m, then, all correct processes R-deliver m too. If no correct process B-multicasts m, then no correct processes R-deliver m. Integrity, Validity

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 – Sender ordered Causal ordering – If multicast(g,m)  multicast(g,m’) then any correct process that delivers m’ will have already delivered m – Happens before 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. Message ordering

Virtual synchrony 28

FIFO ordering 29 Without failures all we need is to run algorithm on FIFO channels (i.e., TCP) With failures we need to be careful about the order in which things are done

Causal ordering 30 Start from FIFO ordering It has been shown that from it we can achieve causal ordering by adding vector time

Total ordering 31 Centralized sequencer Token based implementation Token has a sequence number When p holds token it can send out new burst of multicasts

Asynchrony FIFO and causal ordering can be used asynchronously – Can always be delivered at the time the multicast is sent – We gain concurrency at sender side Helps only if remainder of group is idle or doing non conflicting tasks But: – Things pile up in output buffers – Much is lost in case of failures, – We consume much of sender-side buffering space Total ordering stutters – Ordering is not known before a round of message exchange has been completed 32

Next lecture RPC and marshalling 33