Distributed Systems Principles and Paradigms. Chapter 04: Communication

Similar documents
Distributed Systems Principles and Paradigms. Chapter 04: Communication

Distributed Systems Principles and Paradigms

Distributed Systems. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum

Distributed Systems. Chapter 02

Advanced Distributed Systems

Chapter 4 Communication

Communication. Distributed Systems IT332

Chapter 4 Communication

Communication. Overview

Last Class: RPCs and RMI. Today: Communication Issues

Communication. Distributed Systems Santa Clara University 2016

Parallelism. Master 1 International. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique

LECTURE 6: MESSAGE-ORIENTED COMMUNICATION II: MESSAGING IN DISTRIBUTED SYSTEMS

LECTURE 6: MESSAGE-ORIENTED COMMUNICATION II: MESSAGING IN DISTRIBUTED SYSTEMS. Lecture Contents

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI

Chapter 4 Communication

Verteilte Systeme (Distributed Systems)

DISTRIBUTED COMPUTER SYSTEMS

Distributed Systems COMP 212. Lecture 15 Othon Michail

Distributed Information Processing

Communication. Layered Protocols. Topics to be covered. Layered Protocols. Introduction

Replica Placement. Replica Placement

Dr Markus Hagenbuchner CSCI319 SIM. Distributed Systems Chapter 4 - Communication

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Today CSCI Remote Method Invocation (RMI) Distributed Objects

Distributed Systems Inter-Process Communication (IPC) in distributed systems

DISTRIBUTED COMPUTER SYSTEMS

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

Remote Invocation. Today. Next time. l Indirect communication. l Request-reply, RPC, RMI

SAI/ST course Distributed Systems

Communication. Outline

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

Communication in Distributed Systems

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

Distributed Systems Principles and Paradigms

Distributed Systems Exam 1 Review. Paul Krzyzanowski. Rutgers University. Fall 2016

IPC. Communication. Layered Protocols. Layered Protocols (1) Data Link Layer. Layered Protocols (2)

Indirect Communication

Advanced Topics in Distributed Systems. Dr. Ayman A. Abdel-Hamid. Computer Science Department Virginia Tech

Today: Distributed Objects. Distributed Objects

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition.

Multimedia Networking

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

Architecture of Software Intensive Systems

CSci Introduction to Distributed Systems. Communication: RPC

COMMUNICATION IN DISTRIBUTED SYSTEMS

Distributed Systems Principles and Paradigms. Chapter 01: Introduction

MODELS OF DISTRIBUTED SYSTEMS

Interprocess Communication

DISTRIBUTED SYSTEMS. Second Edition. Andrew S. Tanenbaum Maarten Van Steen. Vrije Universiteit Amsterdam, 7'he Netherlands PEARSON.

02 - Distributed Systems

02 - Distributed Systems

CS455: Introduction to Distributed Systems [Spring 2018] Dept. Of Computer Science, Colorado State University

Lecture 2 Communication services The Trasport Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Large Systems: Design + Implementation: Communication Coordination Replication. Image (c) Facebook

Today CSCI Communication. Communication in Distributed Systems. Communication in Distributed Systems. Remote Procedure Calls (RPC)

MODELS OF DISTRIBUTED SYSTEMS

May Gerd Liefländer System Architecture Group Universität Karlsruhe (TH), System Architecture Group

DS 2009: middleware. David Evans

Distributed Systems Principles and Paradigms. Distributed Object-Based Systems. Remote distributed objects. Remote distributed objects

User Datagram Protocol

CS454/654 Midterm Exam Fall 2004

Distributed Systems. Pre-Exam 1 Review. Paul Krzyzanowski. Rutgers University. Fall 2015

Indirect Communication

Networks and distributed computing

Architecture of Distributed Systems

ECE 650 Systems Programming & Engineering. Spring 2018

Internetworking With TCP/IP

9. Queued Transaction Processing

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections

Transport protocols Introduction

Institute of Computer Technology - Vienna University of Technology. L73 - IP QoS Integrated Services Model. Integrated Services Model

Distributed Systems Principles and Paradigms

CHAPTER - 4 REMOTE COMMUNICATION

CS 403/534 Distributed Systems Midterm April 29, 2004

Design Intentions. IP QoS IntServ. Agenda. Design Intentions. L73 - IP QoS Integrated Services Model. L73 - IP QoS Integrated Services Model

Consistency and Replication

EEC-682/782 Computer Networks I

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Memory-Mapped Files. generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length)

Lecture 8: February 19

Replication & Consistency Part II. CS403/534 Distributed Systems Erkay Savas Sabanci University

Interprocess Communication

Transport Layer (TCP/UDP)

Unit 2.

UDP: Datagram Transport Service

Applied Networks & Security

Communication Paradigms

C 1. Recap: Finger Table. CSE 486/586 Distributed Systems Remote Procedure Call. Chord: Node Joins and Leaves. Recall? Socket API

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

The Transport Layer: User Datagram Protocol

Distributed Systems Principles and Paradigms. Chapter 12: Distributed Web-Based Systems

Distributed Systems 8. Remote Procedure Calls

Distributed Systems Principles and Paradigms. Chapter 08: Fault Tolerance

Networking Applications

Distributed Systems Principles and Paradigms

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Transcription:

Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 04: Communication Version: November 5, 2009

2 / 52 Contents Chapter 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06: Synchronization 07: Consistency & Replication 08: Fault Tolerance 09: Security 10: Distributed Object-Based Systems 11: Distributed File Systems 12: Distributed Web-Based Systems 13: Distributed Coordination-Based Systems

3 / 52 Layered Protocols Communication 4.1 Layered Protocols Low-level layers Transport layer Application layer Middleware layer

4.1 Layered Protocols 4 / 52 Basic networking model Application Presentation Session Transport Network Data link Physical Application protocol Presentation protocol Session protocol Transport protocol Network protocol Data link protocol Physical protocol 7 6 5 4 3 2 1 Network Drawbacks Focus on message-passing only Often unneeded or unwanted functionality Violates access transparency

4.1 Layered Protocols Low-level layers Recap Physical layer: contains the specification and implementation of bits, and their transmission between sender and receiver Data link layer: prescribes the transmission of a series of bits into a frame to allow for error and flow control Network layer: describes how packets in a network of computers are to be routed. Observation For many distributed systems, the lowest-level interface is that of the network layer. 5 / 52

4.1 Layered Protocols Transport Layer Important The transport layer provides the actual communication facilities for most distributed systems. Standard Internet protocols TCP: connection-oriented, reliable, stream-oriented communication UDP: unreliable (best-effort) datagram communication Note IP multicasting is often considered a standard available service (which may be dangerous to assume). 6 / 52

4.1 Layered Protocols Middleware Layer Observation Middleware is invented to provide common services and protocols that can be used by many different applications Note A rich set of communication protocols (Un)marshaling of data, necessary for integrated systems Naming protocols, to allow easy sharing of resources Security protocols for secure communication Scaling mechanisms, such as for replication and caching What remains are truly application-specific protocols... such as? 7 / 52

4.1 Layered Protocols 8 / 52 Types of communication Client Synchronize at request submission Synchronize at request delivery Synchronize after processing by server Request Transmission interrupt Storage facility Reply Server Time Distinguish Transient versus persistent communication Asynchrounous versus synchronous communication

4.1 Layered Protocols Types of communication Client Synchronize at request submission Synchronize at request delivery Synchronize after processing by server Request Transmission interrupt Storage facility Reply Server Time Transient versus persistent Transient communication: Comm. server discards message when it cannot be delivered at the next server, or at the receiver. Persistent communication: A message is stored at a communication server as long as it takes to deliver it. 9 / 52

4.1 Layered Protocols 10 / 52 Types of communication Client Synchronize at request submission Synchronize at request delivery Synchronize after processing by server Request Transmission interrupt Storage facility Reply Server Time Places for synchronization At request submission At request delivery After request processing

4.1 Layered Protocols Client/Server Some observations Client/Server computing is generally based on a model of transient synchronous communication: Client and server have to be active at time of commun. Client issues request and blocks until it receives reply Server essentially waits only for incoming requests, and subsequently processes them Drawbacks synchronous communication Client cannot do any other work while waiting for reply Failures have to be handled immediately: the client is waiting The model may simply not be appropriate (mail, news) 11 / 52

4.1 Layered Protocols Client/Server Some observations Client/Server computing is generally based on a model of transient synchronous communication: Client and server have to be active at time of commun. Client issues request and blocks until it receives reply Server essentially waits only for incoming requests, and subsequently processes them Drawbacks synchronous communication Client cannot do any other work while waiting for reply Failures have to be handled immediately: the client is waiting The model may simply not be appropriate (mail, news) 11 / 52

4.1 Layered Protocols 12 / 52 Messaging Message-oriented middleware Aims at high-level persistent asynchronous communication: Processes send each other messages, which are queued Sender need not wait for immediate reply, but can do other things Middleware often ensures fault tolerance

13 / 52 Communication Remote Procedure Call (RPC) 4.2 Remote Procedure Call Basic RPC operation Parameter passing Variations

4.2 Remote Procedure Call Basic RPC operation Observations Application developers are familiar with simple procedure model Well-engineered procedures operate in isolation (black box) There is no fundamental reason not to execute procedures on separate machine Conclusion Communication between caller & callee can be hidden by using procedure-call mechanism. Client Server Call remote procedure Request Wait for result Reply Call local procedure and return results Return from call Time 14 / 52

Basic RPC operation Communication 4.2 Remote Procedure Call Client machine Server machine Client process k = add(i,j) proc: "add" int: val(i) int: val(j) 1. Client call to procedure Server stub Client stub 2. Stub builds message Server process Implementation of add k = add(i,j) proc: "add" int: val(i) int: val(j) 6. Stub makes local call to "add" 5. Stub unpacks message Client OS proc: "add" int: val(i) int: val(j) Server OS 4. Server OS hands message to server stub 3. Message is sent across the network 1 Client procedure calls client stub. 2 Stub builds message; calls local OS. 3 OS sends message to remote OS. 4 Remote OS gives message to stub. 5 Stub unpacks parameters and calls server. 6 Server returns result to stub. 7 Stub builds message; calls OS. 8 OS sends message to client s OS. 9 Client s OS gives message to stub. 10 Client stub unpacks result and returns to the client. 15 / 52

4.2 Remote Procedure Call 16 / 52 RPC: Parameter passing Parameter marshaling There s more than just wrapping parameters into a message: Client and server machines may have different data representations (think of byte ordering) Wrapping a parameter means transforming a value into a sequence of bytes Client and server have to agree on the same encoding: How are basic data values represented (integers, floats, characters) How are complex data values represented (arrays, unions) Client and server need to properly interpret messages, transforming them into machine-dependent representations.

4.2 Remote Procedure Call 17 / 52 RPC: Parameter passing RPC parameter passing: some assumptions Copy in/copy out semantics: while procedure is executed, nothing can be assumed about parameter values. All data that is to be operated on is passed by parameters. Excludes passing references to (global) data. Conclusion Full access transparency cannot be realized. Observation A remote reference mechanism enhances access transparency: Remote reference offers unified access to remote data Remote references can be passed as parameter in RPCs

4.2 Remote Procedure Call Asynchronous RPCs Essence Try to get rid of the strict request-reply behavior, but let the client continue without waiting for an answer from the server. Client Wait for result Client Wait for acceptance Call remote procedure Return from call Call remote procedure Return from call Request Reply Request Accept request Server Call local procedure and return results Time Server Call local procedure Time (a) (b) 18 / 52

4.2 Remote Procedure Call Deferred synchronous RPCs Client Wait for acceptance Interrupt client Server Call remote procedure Request Return from call Accept request Call local procedure Return results Acknowledge Time Call client with one-way RPC Variation Client can also do a (non)blocking poll at the server to see whether results are available. 19 / 52

20 / 52 RPC in practice Communication 4.2 Remote Procedure Call Uuidgen Interface definition file IDL compiler Client code Client stub Header Server stub Server code #include #include C compiler C compiler C compiler C compiler Client object file Client stub object file Server stub object file Server object file Linker Runtime library Runtime library Linker Client binary Server binary

4.2 Remote Procedure Call Client-to-server binding (DCE) Issues (1) Client must locate server machine, and (2) locate the server. Directory machine Client machine 3. Look up server Directory server 2. Register service Server machine Client 5. Do RPC Server 1. Register endpoint 4. Ask for endpoint DCE daemon Endpoint table 21 / 52

22 / 52 Communication Message-Oriented Communication 4.3 Message-Oriented Communication Transient Messaging Message-Queuing System Message Brokers Example: IBM Websphere

23 / 52 Communication Transient messaging: sockets 4.3 Message-Oriented Communication Berkeley socket interface SOCKET Create a new communication endpoint BIND Attach a local address to a socket LISTEN Announce willingness to accept N connections ACCEPT Block until request to establish a connection CONNECT Attempt to establish a connection SEND Send data over a connection RECEIVE Receive data over a connection CLOSE Release the connection

24 / 52 Communication Transient messaging: sockets 4.3 Message-Oriented Communication Server socket bind listen accept read write close Synchronization point Communication socket connect write read close Client

25 / 52 Communication Message-oriented middleware 4.3 Message-Oriented Communication Essence Asynchronous persistent communication through support of middleware-level queues. Queues correspond to buffers at communication servers. PUT GET POLL NOTIFY Append a message to a specified queue Block until the specified queue is nonempty, and remove the first message Check a specified queue for messages, and remove the first. Never block Install a handler to be called when a message is put into the specified queue

4.3 Message-Oriented Communication Message broker Observation Message queuing systems assume a common messaging protocol: all applications agree on message format (i.e., structure and data representation) Message broker Centralized component that takes care of application heterogeneity in an MQ system: Transforms incoming messages to target format Very often acts as an application gateway May provide subject-based routing capabilities Enterprise Application Integration 26 / 52

27 / 52 Message broker Communication 4.3 Message-Oriented Communication Source client Message broker Repository with conversion rules and programs Destination client Broker program OS Queuing layer OS OS Network

4.3 Message-Oriented Communication 28 / 52 IBM s WebSphere MQ Basic concepts Application-specific messages are put into, and removed from queues Queues reside under the regime of a queue manager Processes can put messages only in local queues, or through an RPC mechanism

4.3 Message-Oriented Communication 29 / 52 IBM s WebSphere MQ Message transfer Messages are transferred between queues Message transfer between queues at different processes, requires a channel At each endpoint of channel is a message channel agent Message channel agents are responsible for: Setting up channels using lower-level network communication facilities (e.g., TCP/IP) (Un)wrapping messages from/in transport-level packets Sending/receiving packets

30 / 52 IBM s WebSphere MQ Communication 4.3 Message-Oriented Communication Sending client Routing table Send queue Client's receive queue Receiving client Program Queue manager Queue manager Program MQ Interface Stub Server stub MCA MCA MCA MCA Server stub Stub RPC (synchronous) Local network Message passing (asynchronous) Enterprise network To other remote queue managers Channels are inherently unidirectional Automatically start MCAs when messages arrive Any network of queue managers can be created Routes are set up manually (system administration)

31 / 52 IBM s WebSphere MQ Communication 4.3 Message-Oriented Communication Routing By using logical names, in combination with name resolution to local queues, it is possible to put a message in a remote queue Alias table LA1 QMC LA2 QMD SQ2 QMA Routing table QMB QMC QMD SQ1 SQ1 SQ2 SQ1 Alias table LA1 QMA LA2 QMD SQ1 Routing table QMA SQ1 QMC SQ1 QMD SQ1 QMB Routing table QMA SQ1 QMC SQ2 QMB SQ1 QMD SQ1 SQ2 Alias table LA1 QMA LA2 QMC QMC SQ1 Routing table QMA SQ1 QMB SQ1 QMD SQ1

32 / 52 Communication Stream-oriented communication 4.4 Stream-Oriented Communication Support for continuous media Streams in distributed systems Stream management

4.4 Stream-Oriented Communication Continuous media Observation All communication facilities discussed so far are essentially based on a discrete, that is time-independent exchange of information Continuous media Characterized by the fact that values are time dependent: Audio Video Animations Sensor data (temperature, pressure, etc.) 33 / 52

4.4 Stream-Oriented Communication Continuous media Transmission modes Different timing guarantees with respect to data transfer: Asynchronous: no restrictions with respect to when data is to be delivered Synchronous: define a maximum end-to-end delay for individual data packets Isochronous: define a maximum and minimum end-to-end delay (jitter is bounded) 34 / 52

4.4 Stream-Oriented Communication Stream Definition A (continuous) data stream is a connection-oriented communication facility that supports isochronous data transmission. Some common stream characteristics Streams are unidirectional There is generally a single source, and one or more sinks Often, either the sink and/or source is a wrapper around hardware (e.g., camera, CD device, TV monitor) Simple stream: a single flow of data, e.g., audio or video Complex stream: multiple data flows, e.g., stereo audio or combination audio/video 35 / 52

4.4 Stream-Oriented Communication Streams and QoS Essence Streams are all about timely delivery of data. How do you specify this Quality of Service (QoS)? Basics: The required bit rate at which data should be transported. The maximum delay until a session has been set up (i.e., when an application can start sending data). The maximum end-to-end delay (i.e., how long it will take until a data unit makes it to a recipient). The maximum delay variance, or jitter. The maximum round-trip delay. 36 / 52

4.4 Stream-Oriented Communication Enforcing QoS Observation There are various network-level tools, such as differentiated services by which certain packets can be prioritized. Also Use buffers to reduce jitter: Packet departs source 1 2 3 4 5 6 7 8 Packet arrives at buffer 1 2 3 4 5 6 7 8 Packet removed from buffer Time in buffer 1 2 3 4 5 6 7 8 Gap in playback 0 5 10 Time (sec) 15 20 37 / 52

4.4 Stream-Oriented Communication Enforcing QoS Problem How to reduce the effects of packet loss (when multiple samples are in a single packet)? 38 / 52

39 / 52 Enforcing QoS Communication 4.4 Stream-Oriented Communication Lost packet Sent 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Delivered 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Gap of lost frames (a) Sent Lost packet 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 Delivered 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Lost frames (b)

4.4 Stream-Oriented Communication Stream synchronization Problem Given a complex stream, how do you keep the different substreams in synch? Example Think of playing out two channels, that together form stereo sound. Difference should be less than 20 30 µsec! 40 / 52

4.4 Stream-Oriented Communication Stream synchronization Receiver's machine Procedure that reads two audio data units for each video data unit Application Incoming stream OS Network Alternative Multiplex all substreams into a single stream, and demultiplex at the receiver. Synchronization is handled at multiplexing/demultiplexing point (MPEG). 41 / 52

4.4 Stream-Oriented Communication Stream synchronization Receiver's machine Procedure that reads two audio data units for each video data unit Application Incoming stream OS Network Alternative Multiplex all substreams into a single stream, and demultiplex at the receiver. Synchronization is handled at multiplexing/demultiplexing point (MPEG). 41 / 52

42 / 52 Communication Multicast communication 4.5 Multicast Communication Application-level multicasting Gossip-based data dissemination

4.5 Multicast Communication 43 / 52 Application-level multicasting Essence Organize nodes of a distributed system into an overlay network and use that network to disseminate data. Chord-based tree building 1 Initiator generates a multicast identifier mid. 2 Lookup succ(mid), the node responsible for mid. 3 Request is routed to succ(mid), which will become the root. 4 If P wants to join, it sends a join request to the root. 5 When request arrives at Q: Q has not seen a join request before it becomes forwarder; P becomes child of Q. Join request continues to be forwarded. Q knows about tree P becomes child of Q. No need to forward join request anymore.

4.5 Multicast Communication ALM: Some costs End host A 1 Ra 30 Router 1 C 20 Re Rc 7 5 B 1 Rb 40 Internet Rd 1 D Overlay network Link stress: How often does an ALM message cross the same physical link? Example: message from A to D needs to cross Ra, Rb twice. Stretch: Ratio in delay between ALM-level path and network-level path. Example: messages B to C follow path of length 71 at ALM, but 47 at network level stretch = 71/47. 44 / 52

45 / 52 Epidemic Algorithms Communication 4.5 Multicast Communication General background Update models Removing objects

4.5 Multicast Communication 46 / 52 Principles Basic idea Assume there are no write write conflicts: Update operations are performed at a single server A replica passes updated state to only a few neighbors Update propagation is lazy, i.e., not immediate Eventually, each update should reach every replica Two forms of epidemics Anti-entropy: Each replica regularly chooses another replica at random, and exchanges state differences, leading to identical states at both afterwards Gossiping: A replica which has just been updated (i.e., has been contaminated), tells a number of other replicas about its update (contaminating them as well).

4.5 Multicast Communication Anti-entropy Principle operations A node P selects another node Q from the system at random. Push: P only sends its updates to Q Pull: P only retrieves updates from Q Push-Pull: P and Q exchange mutual updates (after which they hold the same information). Observation For push-pull it takes O(log(N)) rounds to disseminate updates to all N nodes (round = when every node as taken the initiative to start an exchange). 47 / 52

4.5 Multicast Communication Gossiping Basic model A server S having an update to report, contacts other servers. If a server is contacted to which the update has already propagated, S stops contacting other servers with probability 1/k. Observation If s is the fraction of ignorant servers (i.e., which are unaware of the update), it can be shown that with many servers s = e (k+1)(1 s) 48 / 52

4.5 Multicast Communication Gossiping ln(s) -2.5-5.0-7.5-10.0-12.5-15.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 k Consider 10,000 nodes k s N s 1 0.203188 2032 2 0.059520 595 3 0.019827 198 4 0.006977 70 5 0.002516 25 6 0.000918 9 7 0.000336 3 Note If we really have to ensure that all servers are eventually updated, gossiping alone is not enough 49 / 52

4.5 Multicast Communication Gossiping ln(s) -2.5-5.0-7.5-10.0-12.5-15.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 k Consider 10,000 nodes k s N s 1 0.203188 2032 2 0.059520 595 3 0.019827 198 4 0.006977 70 5 0.002516 25 6 0.000918 9 7 0.000336 3 Note If we really have to ensure that all servers are eventually updated, gossiping alone is not enough 49 / 52

4.5 Multicast Communication Deleting values Fundamental problem We cannot remove an old value from a server and expect the removal to propagate. Instead, mere removal will be undone in due time using epidemic algorithms Solution Removal has to be registered as a special update by inserting a death certificate 50 / 52

4.5 Multicast Communication 51 / 52 Deleting values Next problem When to remove a death certificate (it is not allowed to stay for ever): Run a global algorithm to detect whether the removal is known everywhere, and then collect the death certificates (looks like garbage collection) Assume death certificates propagate in finite time, and associate a maximum lifetime for a certificate (can be done at risk of not reaching all servers) Note It is necessary that a removal actually reaches all servers. Question What s the scalability problem here?

4.5 Multicast Communication Example applications Typical apps Data dissemination: Perhaps the most important one. Note that there are many variants of dissemination. Aggregation: Let every node i maintain a variable x i. When two nodes gossip, they each reset their variable to x i,x j (x i + x j )/2 Result: in the end each node will have computed the average x = i x i /N. Question What happens if initially x i = 1 and x j = 0,j i? 52 / 52

4.5 Multicast Communication Example applications Typical apps Data dissemination: Perhaps the most important one. Note that there are many variants of dissemination. Aggregation: Let every node i maintain a variable x i. When two nodes gossip, they each reset their variable to x i,x j (x i + x j )/2 Result: in the end each node will have computed the average x = i x i /N. Question What happens if initially x i = 1 and x j = 0,j i? 52 / 52