Replication and Group Communication

Download Report

Transcript Replication and Group Communication

Replication and Group Communication

Management of Replicated Data Clients C Requests and replies FE C Front ends FE RM Service RM RM Replica managers Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012

Replica Manager • • • • Manages a single copy of the data Interacts with other RMs Behave as state machines – Operations are atomic – Deterministic – Ensures behaviour can be reproduced at replicas May be dynamic or static

Sequence of Events Client Request Response Front End Request, id Response, id RM Coordination Execution Agreement RM RM

Coordination Phase • Reach agreement on – Whether to execute or not – Ordering • FIFO • • Causal Total

Group Communication • • • Messages send to all members of a group – Reliable – Either all receive message or none do – Ordered Group membership – Static – Fixed number of processes – Dynamic – Processes can leave and join Implementation – Network support (IP Multicast) – Sending multiple messages

Group Types • • • • Process vs Object groups Closed vs Open groups Overlapping vs Non-overlapping Synchronous vs Asynchronous

Reliability of Multicasts • • • Integrity – Message received same as message send – No message is delivered twice Validity – Message send is eventually delivered Agreement – If delivered to one, it is delivered to all

Managing Group Membership • • • • Allow processes to be added and removed Detect failed/unreachable components Notify members of group changes Perform group address expansion – Processes may be part of multiple groups – Send message to group using group id

System Model Client Request Response Front End Request, id Response, id RM GM GC RM GM GC RM GM GC RM – Replication Manager GM – Group Manager GC – Group Communicator

Group Communicator • • • Assumptions – Reliable one-to-one channels – Processes only fail by crashing To send a message: – RM calls multicast(g,m) in GC – GC may communicate with GM to get group members To receive a message: – GC receives message over network – Processes message – Calls deliver(m) in RM

Basic Multicast • • B-multicast(g,m): – For each p ∊ g, send (p,m) On receive(m) at p: – B-deliver(m) at p