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