Contents:
What is group communication
Communication modes
Quiz
Root
Transis provides group communication services, i.e. omission free multicast among process groups. A process group is identified by a name (a string), selected by the user. A process can send a message to a group, and be certain that all members of the group receive it (unless they crash or a network partition occurs).
When a process connects to Transis, a singleton group consisting of itself only is automatically formed, messages for this process are sent to this group.
Transis maintains the membership (list of connected processes) for each group. The membership in process groups is dynamic: Processes may join and leave groups. A process may leave a group due to a user's request or a process crash. Furthermore, a group may partition due to a network partition. Process may join the group, and previously disconnected partitions may re-merge. Changes in group membership are reported to all group members through special configuration change messages. Membership changes are delivered in the same order to all the members who deliver them. Here's an example of using group commuication in real life. The Trans City Blue-Socks baseball team fired their coach and chose coach Bat-man to be new one. The key to good coaching is good communication with the players and management, therefore coach Bat-man decided to use Transis for all communication outside practice hours.
What groups does he use to simplify team communication?

One obvious group is the whole team, where practice hours could be announced, and every member is guaranteed to receive the information. Do you think coach Bat-Man should be a part of this group too? It is not obligatory because he can still send messages to the group without being a member. The advantage of joining the group is that he can hear all the members' reactions to his messages (don't want the players gossiping behind his back), and even more important - if any team member suddenly leaves the team (due to injury, moving to another team, etc.) he is informed through the membership service as soon as Transis recognizes it! On the other hand, the group manager will probably not want to join this group because most of the information that circulates in the group is useless to him.
Another group contains coach Bat-man and the management. Other groups could be the out-fielders group and the basemen group which practice differently as two disjoint groups. One can conduct private talks with individual players by sending messages to each one's singleton group.
Communication Modes
Transis provides several modes of multicast communication, in which different ordering properties are supported. These include:
The higher the mode is in the hierarchy depicted above (in increasing order), the more time consuming it is . The communication mode is specified in the Transis send command. Different communication modes can be used concurrently.
Causal mode: This communication mode guarantees
that the message order preserves the happens-before
relation (after Lamport). It means that single source messages are
always delivered in the order in whichthey were sent, and that a
response to a message is never delivered before the message that
caused it.
In a more formal way causal order is the transistive closure of: let M, M' be messages.
Let us go back to the Blue-Socks baseball team. Coach Bat-Man decides to practice at 10 o'clock, but then the pitcher asks to postpone the practice in half an hour. If these messages are sent using causal mode then everyone knows the practice will take place at 10:30, since the pitcher's message causally follows coach Bat-Man's message.
Still total order is not achieved - two messages sent without causal relation between them could be delivered in different orders to the group members. For example, if Coach Bat-Man decides to practice at 10 o'clock, and the pitcher takes a shower and shouts that there are no more hot water, then these messages can be delivered in any order to the team players.
Agreed mode: This is
a total order communication mode. It guarantees that all messages are
delivered in the same order to all group members.
The total order created preserves causality, but agreed messages may be
delayed longer than causal messages.
Safe mode: This
communication mode delivers a message only after its reception is
acknowledged by the low levels of the system (i.e. by the communication
module in each Transis daemon) at all the destination (group's) machines.
It causes the greatest delay in delivering messages.
Safe mode guarantees the following:
The second guarantee means that if safe message M was multicast and delivered in a certain configuration, then any message - no matter in which communication mode it was multicast - is delivered by all processes either before M, or after M. Safe mode is therefore stronger than agreed mode since agreed mode guarantees the relative order of agreed messages only. The order on safe messages is the same as the order on agreed messages.
Quiz
Each question presents a different application that uses Transis.
Name the simplest and least expensive group structure and the communication
mode for each application.
Questions
Answers
The communication mode is causal, since the crowd wants to view the game step be step, and the steps are causally related.
The servers should be members of one group, since they must exchange information to keep their maps consistent.
A server-server communication needs some kind of total order. Causal order
will not suffice, since updates are not commutative, and may happen without
being causally related. This would allow several legal orderings.
If several legal orderings of updates exist in the system, consistency
may be invalidated.
For example, assume there are two servers S1, S2 and two clients C1, C2.
C1 communicates with S1, while C2 communicates with S2.
C1 and C2 concurrently update the same slot on the map - C1 colors it blue
and C2 colors it red. The servers now multicast both update messages
using causal mode.
Since there is no causal relation between the two updates, server
S1 can receive the update message requesting blue color before the message
requesting red color, while S2 can receive the update message requesting
red color before the message requesting blue color.
Therefore the slot held by S1 will be red, while the slot held by S2 will
be blue, contradicting consistency.
Contents