Groups of nodes act together, can send messages (multicast) to a group, and the messages are received by all the nodes that are in the group (Sandén, 2011). If there is a broadcast, all nodes in the system get the same message. In a multicast, the messages can reach the nodes in a group in a different order: First In First Out order, casual order, or total order (atomic multicast if it is reliable).
Per Sandén (2011), a multicast can occur if the source is a member of the group, but it cannot span across groups in causal order. Two-phase, total order multicast systems can look like a vector clock but they are not, and each message sends or receive will increment on this system by one as they talk between the systems.
Below is an example of a vector clock:
- m1 suggested time at 6 and m2 suggested time at 11
- m1 commit time at 7 and m2 commit time at 12
- m1 suggested time at 7 and m2 suggested time at 12
- m1 commit time at 8 and m2 commit time at 13
- Sandén, B. I. (2011-01-14). Design of Multithreaded Software: The Entity-Life Modeling Approach, 1st Edition. [VitalSource Bookshelf Online]. Retrieved from https://bookshelf.vitalsource.com/#/books/9781119143086/