 |
Ensemble Membership Service
|
This document is a part of online
Ensemble documentation. See also
Maestro Open Toolkit.
Normally, Ensemble application groups implement their own group membership
protocol. However, they have the option of using the Ensemble membership
service implemented by the groupd application. groupd is a
service for managing multiple process groups. It uses a core
group of
Ensemble processes to participate in managing these groups. Clients connect
to the service via TCP connections, through which they request to join and
leave groups. The service supports a simple protocol through which the clients
can obtain virtual synchronous properties. The service also supports weaker
properties that give faster membership notifications.
We emphasize that Ensemble applications can operate independently of a
membership service.
Some of the benefits of using this service are:
When there are no membership changes, the clients communicate directly between
themselves, so the membership service has no affect on performance.
The service implements group membership for multiple groups. The costs of the
group membership protocols (such as failure detection) are shared over the
groups.
Because applications are sharing the same membership service, they see
consistent views and failure detections.
The client part of the protocol for implementing virtual synchrony is
simple. Most of the complexity is in the server. This allows client
programs to be implemented in languages other than ML, but save much
of the programming burden because the servers handle the ``hard''
group membership protocols. The client TCP interface is described in
the Ensemble reference manual.
Applications that do not need the full virtual synchrony properties can use
weaker synchronization protocols and get faster view changes.
The service allows groups to scale to larger sizes. The membership servers do
not need to run on all the hosts on which the clients run, so clients can be on
more hosts than are normally supported by Ensemble.
In order to start membership service,
set the ENS_GROUPD_PORT environment
variable to select the TCP port for the service to use. The membership service
is executed through the groupd application program:
% groupd
It takes command-line arguments similar to the other Ensemble demonstration
programs. Normally, each host runs a server.
Other demo applications use the service when the -groupd command-line
argument is selected. For example:
% mtalk -groupd
Note that you must have a groupd server running on the same host as
mtalk for this to work.
-groupd_port port:
sets the port that the membership groupd servers use.
-groupd_hosts arg: sets the hosts that the membership
groupd servers use. Format is the same as for
-gossip_hosts.
-groupd: Use the membership service on the local host.
This option may override others.
send mail to
hayden@cs.cornell.edu