org.jgroups.protocols
public class TOTAL_TOKEN extends RpcProtocol
Total order implementation based on The Totem Single-Ring Ordering and Membership Protocol.
However, this is an adaption of algorithm mentioned in the research paper above since we reuse our own membership protocol and failure detectors. Somewhat different flow control mechanism is also implemented.
Token passing is done through reliable point-to-point udp channels provided by UNICAST layer. Process groups nodes members are organized in a logical ring.
Total token layer doesn't need NAKACK nor STABLE layer beneath it since it implements it's own retransmission and tracks stability of the messages from the information piggybacked on the token itself.
For the typical protocol stack configuration used, see org.jgroups.demos.TotalTokenDemo and total-token.xml configuration file provided with this distribution of JGroups.
Version: $Revision: 1.12 $
See Also: RingNodeFlowControl RingNode TcpRingNode
Nested Class Summary | |
---|---|
static class | TOTAL_TOKEN.RingTokenHeader |
static class | TOTAL_TOKEN.TotalTokenHeader |
Field Summary | |
---|---|
static String | prot_name |
Method Summary | |
---|---|
long | getAllReceivedUpTo() |
String | getName() |
IpAddress | getTokenReceiverAddress() |
boolean | handleDownEvent(Event evt) |
boolean | handleUpEvent(Event evt) |
void | installTransitionalView(Vector members) |
Vector | providedUpServices() |
boolean | setProperties(Properties props)
Setup the Protocol instance acording to the configuration string
|
void | start() |
void | stop()
Overrides @org.jgroups.stack.MessageProtocol#stop(). |
protected void | updateView(View newMembers) |