Assume process A sends messages x and y to processes B and C.
In total order multicast, processes B and C will receive the messages in the same order as process A send them.
This is also called as locally total multicast.
Total order multicast can be implemented,
1. Using a sequencer
– One dedicated “sequencer” that orders all messages
– Everyone else follows.
2. ISIS system
– Similar to having a sequencer, but the responsibility is distributed to each sender.
Total Ordering Using a Sequencer
ISIS algorithm for total ordering
• Sender multicast message to everyone• Reply with proposed priority (sequence no.)
– Larger than all observed agreed priorities
– Larger than any previously proposed (by self) priority
• Store message in priority queue
– Ordered by priority (proposed or agreed)
– Mark message as undeliverable
• Sender chooses agreed priority, re-multicast message with agreed priority
– Maximum of all proposed priorities
• Upon receiving agreed (final) priority
– Mark message as deliverable
– Deliver any deliverable messages at the front of priority queue