All Classes and Interfaces
Class
Description
Keeps track of messages received from various senders.
Keeps track of ACKs from receivers for each message.
Called by retransmitter thread whenever a message needs to be re-sent
to a destination.
Counterpart of AckSenderWindow.
ACK-based sliding window for a sender.
Abstract address.
Cache which removes its elements after a certain time
The AUTH protocol adds a layer of authentication to JGroups
AuthHeader is a holder object for the token that is passed from the joiner to the coordinator
Abstract AuthToken class used by implementations of AUTH, e.g.
Senses the network configuration when it is initialized (in init()) and sends a CONFIG event up
and down the stack.
JMX wrapper for BARRIER protocol.
All messages up the stack have to go through a barrier (read lock, RL).
JMX interface for BARRIER protocol.
Shared class for TCP connection tables.
Used to be notified about connection establishment and teardown.
Used for message reception.
Shared base class for tcpip protocols
Trivial object that represents a block event.
A bounded subclass of LinkedList, oldest elements are removed once max capacity is exceeded.
Beanshell (www.beanshell.org) interpreter class.
Buffer with an offset and length.
Implements casual ordering layer using vector clocks.
Simple causal demo where each member bcast a consecutive letter from the
alphabet and picks the next member to transmit the next letter.
A channel represents a group communication endpoint (like BSD datagram sockets).
Thrown if an operation is attemped on a closed channel.
This class represents the super class for all exception types thrown by
JGroups.
A channel factory that removes hardwiring of calls to create JGroups
channels.
Allows a listener to be notified when important channel events occur.
Class which implements
ChannelListener
Thrown if an operation is attemped on an unconnected channel.
This class will be replaced with the class that read info
from the magic number configurator that reads info from the xml file.
Maintains mapping between magic number and class
Client part of GMS.
The Command patttern (see Gamma et al.).
Compresses the payload of a message.
The task if this class is to setup and configure the protocol stack.
Parses and encapsulates the specification for 1 protocol of the protocol stack, e.g.
The ConfigurationFactory is a factory that returns a protocol stack configurator.
Manages incoming and outgoing TCP connections.
Manages incoming and outgoing TCP connections.
ObjectInputStream which sets a contact classloader for reading bytes into objects.
Coordinator role of the Group MemberShip (GMS) protocol.
Class will be utilized
Thread factory mainly responsible for naming of threads.
Delays incoming/outgoing messages by a random number of milliseconds (range between 0 and n
where n is determined by the user).
Discards 2 JOIN-REQs then accepts 1, then discards 2 more and so on
A message digest, which is used by the PBCAST layer for gossiping (also used by NAKACK for
keeping track of current seqnos for all members).
Class keeping track of the lowest and highest sequence numbers delivered, and the highest
sequence numbers received, per member.
Discards up or down messages based on a percentage; e.g., setting property 'up' to 0.1 causes 10%
of all up messages to be discarded.
Discards a message whose sequence number (in the payload, as a Long) matches seqno 2 times,
before passing it up.
The Discovery protocol layer retrieves the initial membership (used by the GMS when started
by sending event FIND_INITIAL_MBRS down the stack).
Deprecated.
Uses the DistributedHashtable building block.
Distributed lock manager is responsible for maintaining the lock information
consistent on all participating nodes.
This class represents the lock to be released.
This class represents the lock
This class represents the lock that has to be marked as multilocked
This class represents the lock to be released.
Provides the abstraction of a java.util.LinkedList that is replicated at several
locations.
Uses the DistributedQueue building block.
A tree-like structure that is replicated across several members.
Demo showing the DistributedTree class.
Shared whiteboard, each new instance joins the same group.
Same as Draw but using 2 channels: one for view changes (control channel) and the other one for drawing
(data channel).
Encapsulates information about a draw command.
Replicates the whiteboard demo by intercepting central AWT event queue and mcasting events to
all members.
Dummy transport, returns a fake local address and responds to CONNECT.
Duplicates outgoing or incoming messages by copying them
ENCRYPT layer.
Used for inter-stack and intra-stack communication.
Example of a protocol layer.
Trivial object that represents an exit event.
Extends ByteArrayOutputStream, but exposes the internal buffer.
ExtendedMessageListener
has additional callbacks for:
partial state transfer - http://jira.jboss.com/jira/browse/JGRP-118
streaming state transfer - http://jira.jboss.com/jira/browse/JGRP-89
Extends Receiver, plus the partial state transfer methods.
Simple flow control protocol based on a credit system.
Failure detection based on simple heartbeat protocol.
Failure detection based on simple heartbeat protocol.
Protocol which uses InetAddress.isReachable() to check whether a given host is up or not,
taking 1 argument; the host name of the host to be pinged.
Protocol which uses an executable (e.g.
Simple failure detection protocol.
Failure detection protocol based on sockets.
Blocking queue which can only process 1 message per service concurrently, establishing FIFO order per sender.
The FixedMemberShipToken object predefines a list of IP addresses and Ports that can join the group.
Flush, as it name implies, forces group members to flush their pending
messages while blocking them to send any additional messages.
Fragmentation layer.
Fragmentation layer.
Lists all network interfaces on a system
Represents a GetState event.
Globals used by JGroups packages.
Group membership protocol.
Demos that tries to graphically illustrating the gossip (or pbcast) protocol: every sender periodically sends
a DRAW command to a random subset of the group members.
Local stub for clients to access one (or more) GossipRouters.
Encapsulates data sent between GossipRouter and GossipClient
Router for TCP based group comunication (using layer TCP instead of UDP).
Sends a message to all members of the group and waits for all responses (or timeout).
Copyright (c) 2005 Brian Goetz and Tim Peierls
Released under the Creative Commons Attribution License
(http://creativecommons.org/licenses/by/2.5)
Official home: http://www.jcip.net
Adopted from Java Concurrency in Practice.
Example of a protocol layer.
Abstract base class for all headers to be added to a Message.
Open addressing based implementation of a hashmap (not supporting the Map interface though) for message
headers.
Implementation of UTO-TCP as designed by EPFL.
Copyright (c) 2005 Brian Goetz and Tim Peierls
Released under the Creative Commons Attribution License
(http://creativecommons.org/licenses/by/2.5)
Official home: http://www.jcip.net
Adopted from Java Concurrency in Practice.
Interface which returns a time series, one value at a time calling next()
Network-dependent address (Internet).
JChannel is a pure Java implementation of Channel.
JChannelFactory creates pure Java implementations of the
Channel
interface.Implementation of the transport protocol using the Java Message Service (JMS).
Simple
Address
representing the JMS node ID or JMS topic group.Result of a JOIN request (sent by the GMS client).
Generates a keystore file that has a SecretKey in it.
Lazily names threads: whenever the address or cluster name is changed, all threads are renamed
LockManager
represents generic lock manager that allows
obtaining and releasing locks on objects.Thrown by the
DistributedLockManager.unlock(Object, Object, boolean)
method if a lock is only locally released, because it is locked
by multiple DistributedLockManagers.This exception indicated that lock manager refused to give a lock on
some resource.
This exception indicated that lock manager refused to release a lock on
some resource.
Makes copies of outgoing messages, swaps sender and receiver and sends the message back up the stack.
Uses magic numbers for class descriptors
Uses magic numbers for class descriptors
Title: JGroups Communications
Description: Contact me at mail@filip.net
Copyright: Copyright (c) 2002
Company: www.filip.net
This is an example of using a preshared token that is encrypted using an MD5/SHA hash for authentication purposes.
Class to keep track of Addresses.
Allows a listener to be notified when group membership changes.
This class provides multiplexing possibilities for
MembershipListener
instances.Protocol to discover subgroups; e.g., existing due to a network partition (that healed).
Protocol to discover subgroups; e.g., existing due to a network partition (that healed).
Encapsulates data sent with a MERGE_RSP (handleMergeResponse()) and INSTALL_MERGE_VIEW
(handleMergeView()).
The coordinator attaches a small header to each (or every nth) message.
A view that is sent as a result of a merge.
A Message encapsulates data sent to members of a group.
Provides synchronous and asynchronous message sending with request-response
correlation; i.e., matching responses with the original request.
Allows a listener to be notified when a message arrives.
This class provides multiplexing possibilities for
MessageListener
instances.A method call is the JGroups representation of a remote method.
Uses its own IP multicast socket to send and receive discovery requests/responses.
The multiplexer allows multiple channel interfaces to be associated with one
underlying instance of JChannel.
A mutable version of Digest (which is immutable
Multiplexer channel is a lightweight version of a regular channel where
multiple MuxChannel(s) share the same underlying regular channel.
Header used for multiplexing and de-multiplexing between service components on top of a Multiplexer (Channel)
Negative AcKnowledgement layer (NAKs).
Keeps track of messages according to their sequence numbers.
NBMessageForm - Message form for non-blocking message reads.
This class provides notification sending and handling capability.
Demoes the NotificationBus (without caching).
Maintains a pool of ExposedDataOutputStreams.
Protocol to simulate a partition.
Measures the time for a message to travel from the channel to the transport
The PING protocol layer retrieves the initial membership (used by the GMS when started
by sending event FIND_INITIAL_MBRS down the stack).
A ProtocolStackConfigurator for the old style properties.
Maintains a list of ports used on this host, associated with time stamps.
Allows to time execution of 'named' statements, counts number of times called and total
execution time.
Allows a thread to submit an asynchronous request and to wait for the result.
The Protocol class provides a set of common services for protocol layers.
Data holder for protocol data
A ProtocolStack manages a number of protocols layered above each other.
Generic class to test one or more protocol layers directly.
Redirects incoming TCP connections to other hosts/ports.
Deprecated.
Use
Receiver
instead, this class will be removed in JGroups 3.0Elements are added at the tail and removed from the head.
Used in conjunction with QuoteServer: a client is member of a group of quote servers which replicate
stock quotes among themselves.
Example of a replicated quote server.
Defines the callbacks that are invoked when messages, views etc are received on a channel
Subclass of a
ConcurrentHashMap
with replication of the contents across a cluster.Uses the ReplicatedHashMap building block, which subclasses java.util.HashMap and overrides
the methods that modify the hashmap (e.g.
Deprecated.
Use
ReplicatedHashMap
insteadA tree-like structure that is replicated across several members.
Graphical view of a ReplicatedTree
Framework to send requests and receive matching responses (matching on
request ID).
The header for RequestCorrelator messages
Similar to AckCollector, but collects responses, not just acks.
Maintains a pool of sequence numbers of messages that need to be retransmitted.
Retransmit command (see Gamma et al.) used to retrieve missing messages
Reusable thread class.
Client stub that talks to a remote GossipRouter
This class allows a programmer to invoke remote methods in all (or single)
group members and optionally wait for the return value(s).
Used to provide a Marshaller2 interface to a Marshaller.
class that represents a response from a communication
Interface defining when a group request is done.
Contains responses from all members.
Implementation of a priority scheduler.
Provides callback for use with a
Scheduler
.Maintains the highest received and highest delivered seqno per member
Implementation of total order protocol using a sequencer.
Class used for service state communication between Multiplexers
Encapsulates a state returned by
Channel.receive()
, as requested by
Channel.getState(s)
previously.Simple flow control protocol.
Loopback transport shared by all channels within the same VM.
This layer shuffles upcoming messages, put it just above your bottom layer.
ShutdownRejectedExecutionHandler is a decorator RejectedExecutionHandler used
in all JGroups ThreadPoolExecutor(s).
This is an example of using a preshared token for authentication purposes.
Tests one or more protocols independently.
Protocol which prints out the real size of a message.
Queue as described in http://jira.jboss.com/jira/browse/JGRP-376.
Simple Multicast ACK protocol.
Computes the broadcast messages that are stable; i.e., have been received by all members.
New STATE_TRANSFER protocol based on PBCAST.
Wraps data for a state request/response.
StateTransferException
is thrown to indicate failure of
state transfer between cluster members.Contains parameters for state transfer.
Manages retransmission timeouts.
Provides various stats
Implementations of Streamable can add their state directly to the output stream, enabling them to bypass costly
serialization
STREAMING_STATE_TRANSFER
, as its name implies, allows a
streaming state transfer between two channel instances.Represents an event returned by
channel.receive()
, as a result
of another channel instance requesting a state from this channel.Represents an event returned by
channel.receive()
, as requested by
channel.getState()
previously.Thrown if a message is sent to a suspected member.
Represents a suspect event.
TCP based protocol.
Transport using NIO
The TCPGOSSIP protocol layer retrieves the initial membership (used by the GMS when started
by sending event FIND_INITIAL_MBRS down the stack).
The TCPPING protocol layer retrieves the initial membership in answer to the GMS's
FIND_INITIAL_MBRS event.
An object that can alter the state of a thread when it receives a callback from a
ThreadManager
notifying
it that the thread has been created or released from use.An object that manages threads and provides callbacks to a
ThreadDecorator
to allow it to alter their state.ThreadPoolExecutor subclass that implements @{link ThreadManager}.
Maintains a set of ReusableThreads.
Waits until the buffer has been written to the output stream, or until timeout msecs have elapsed,
whichever comes first.
Thrown if members fail to respond in time.
Fixed-delay invalid input: '&' fixed-rate single thread scheduler
The interface that submitted tasks must implement
Demonstrates the membership service.
Originally written to be a demo for TOTAL order (code to be written by a student).
Demonstration of TOTAL_TOKEN protocol stack implementing total
order.
Generic transport - specific implementations should extend this abstract class.
Generic transport header, used by TP.
Defines a very small subset of the functionality of a channel,
essentially only the methods for sending and receiving messages.
Lighweight representation of the VectorTime clock suitable for network transport
Holds 3 values, useful when we have a map with a key, but more than 1 value and we don't want to create a separate
holder object for the values, and don't want to pass the values as a list or array.
Replacement for UDP.
Holds 2 values, useful when we have a map with a key, but more than 1 value and we don't want to create a separate
holder object for the values, and don't want to pass the values as a list or array.
This adapter introduces simple two-phase voting on a specified decree.
Wrapper of the decree to voting decree.
Implementations of this interface can participate in two-phase voting process.
IP multicast transport based on UDP.
Trivial object that represents a block event.
Reliable unicast layer.
Vector which cannot be modified
Provides a way of taking over a channel's tasks.
Collection of various utility routines that can not be assigned to other classes.
Catches SUSPECT events traveling up the stack.
We're using the scheme described at http://www.jboss.com/index.html?module=bbinvalid input: '&op'=viewtopicinvalid input: '&t'=77231
for major, minor and micro version numbers.
A view is a local representation of the current membership of a group.
Periodically sends the view to the group.
Demos the reception of views using a PullPushAdapter.
ViewIds are used for ordering views (each view has a ViewId and a list of members).
This exception is thrown when voting listener cannot vote on the
specified decree.
VoteResultProcessor
Applications that use the VotingAdapter and/or TwoPhaseVotingAdapter can pass an implementation of this down the vote
calls, to intercept processing of the VoteResults returned by other nodes.
Voting adapter provides a voting functionality for an application.
Class that represents a result of local voting on the failed node.
This class represents the result of local voting.
Implemetations of this interface are able to participate in voting process.
Shared whiteboard: members are represented by rectangles that contain their names and the OS/arch of
the machine they are working on.
This is an example of using a preshared token that is encrypted using an X509 certificate for authentication purposes.
ReplicatedHashMap
instead