Writes aren’t seen by other processors until some unknown time (when the “write buffer” is flushed)
- Group: the nodes that receive the message
- View: the sets of nodes in the group
- View Change: when nodes enter and leave the group
- new nodes might be added for more load balancing
- nodes might leave because of failure or
-
Received: messages have been placed in the system’s buffer
-
Delivered: messages that have in been received in the correct order
- ex: if you recieve message 0 then message 2
- 0 is delivered
- 2 is kept in the buffer (received but not delivered)
- Once message 1 is received, then both 1 and 2 are delivered
-
At least once guarantee: keep sending a message until one of the messages is acknowledged
- Whenever a node receives a message, send it to everyone else
- This guarantees that every working node gets the message
- But there a tons of messages being sent
A partial ordering that uses a vector on each node to guarantee that messages from a specific individual node are in order, but there’s no guarantee that messages from different nodes are in order
- The vector stores the number of the last message received from each node
https://cse.buffalo.edu/~stevko/courses/cse486/spring15/lectures/12-multicast2.pptx