Abort phase for the lock acquisition or release.
This is unconditional abort of the previous voting on the decree.
Removes the message from msgs
, removing them also from retransmission.
An ACK has been received from sender
.
Keeps track of messages received from various senders.
Keeps track of ACKs from receivers for each message.
Create and start the retransmitter
Create and start the retransmitter
Create and start the retransmitter
Create and start the retransmitter
Counterpart of AckSenderWindow.
ACK-based sliding window for a sender.
This class represents the lock to be released.
Adds a list of members to this membership
Add the given range [first_seqno, last_seqno] in the list of
entries eligible for retransmission.
Adds a new message to the retransmission table.
Adds a message according to its sequence number (ordered).
Adds a new message to the hash table.
Adds an element at the tail.
Add the speficied element at the bottom of the queue
adds an object to the tail of this queue
If the queue has been closed with close(true) no exception will be
thrown if the queue has not been flushed yet.
Adds an object at the tail of the list.
adds an object to the tail of this queue
If the queue has been closed with close(true) no exception will be
thrown if the queue has not been flushed yet.
adds an object to the tail of this queue
If the queue has been closed with close(true) no exception will be
thrown if the queue has not been flushed yet.
Records the sender/seqno pair in the message table
Adds a new member to this membership.
Add a task for execution at adjustable intervals
Add a task for execution at adjustable intervals
Add the speficied collection to the top of the queue.
Adds an object to the head, removes an element from the tail if capacity has been exceeded
Add the speficied element at the top of the queue
Adds a new object to the head of the queue
basically (obj.equals(LinkedListQueue.remove(LinkedListQueue.add(obj)))) returns true
If the queue has been closed with close(true) no exception will be
thrown if the queue has not been flushed yet.
Adds an object at the head of the list.
Adds a new object to the head of the queue
basically (obj.equals(queue.remove(queue.add(obj)))) returns true
If the queue has been closed with close(true) no exception will be
thrown if the queue has not been flushed yet.
Adds a new object to the head of the queue
basically (obj.equals(queue.remove(queue.add(obj)))) returns true
If the queue has been closed with close(true) no exception will be
thrown if the queue has not been flushed yet.
Allows to be notified when a channel event such as connect, disconnect or close occurs.
Add a new channel listener to be notified on the channel's state change.
Adds a new entry to both hashtables
Adds a GossipServer to be accessed.
Called before event is added.
Called before event is added.
Wraps actual listener with the VoteChannelListener and adds to the
voteChannel
Add membership listener to this adapter.
Add message listener to this adapter.
addr - field in class org.jgroups.demos.wb.
Node The arguments of the method.
Assigns a task to the thread.
Senses the network configuration when it is initialized (in init()) and sends a CONFIG event up
and down the stack.
This field is used only if deadlock detection is enabled.
Multicast a message request to all members in dests
and receive responses via the RspCollector
interface.
Cast a message to all members, and wait for mode
responses.
Cast a message to all members, and wait for mode
responses.
Compute a new view, given the current view, the new members and the suspected/left
members.
Compute a new view, given the current view, the new members and the suspected/left
members.
Broadcasts the new view and digest, and waits for acks from all members in the list given as argument.
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 takes care of creation of channel implementations.
Allows a listener to be notified when important channel events occur.
Thrown if an operation is attemped on an unconnected channel.
Returns true if local_addr is member of mbrs, else false
Returns true if local_addr is member of mbrs, else false
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
Clears the key-cache as well as all entries
Clears this hashtable so that it contains no keys
Clears the complete NV state from the DB
removes all the members from this membership
Clears the complete NV state from the DB
Removes all elements from the queue.
Clears this hashtable so that it contains no keys
creates a copy of this view
creates a copy of this view
Cloneable interface
Returns a new ViewID object containing the same address and lamport timestamp as this view
Destroys the channel and its associated resources (e.g., the protocol stack).
Marks the queues as closed.
Marks the queues as closed.
Marks the queues as closed.
returns true if the Queue has been closed
however, this method will return false if the queue has been closed
using the close(true) method and the last element has yet not been received.
returns true if the Queue has been closed
however, this method will return false if the queue has been closed
using the close(true) method and the last element has yet not been received.
returns true if the Queue has been closed
however, this method will return false if the queue has been closed
using the close(true) method and the last element has yet not been received.
Thread responsible for closing a channel and potentially reconnecting to it (e.g., when shunned).
The Command patttern (see Gamma et al.).
Commit phase for the lock acquisition or release.
This is voting on the commiting the decree.
Commit the modifications to the locally replicated data and release all locks.
Establishes an order between 2 addresses.
Establishes an order between 2 addresses.
implements the java.lang.Comparable interface
Compare this object to o
.
implements the java.lang.Comparable interface
Establishes an order between 2 ViewIds.
Establishes an order between 2 addresses.
Compares the specified version number against the current version number.
Compresses the payload of a message.
Given a buffer and a fragmentation size, compute a list of fragmentation offset/length pairs, and
return them in a list.
Process items on the queue concurrently (RequestCorrelator).
Process items on the queue concurrently (Scheduler).
Class that checks on a condition and - if condition doesn't match the expected result - waits until the result
matches the expected result, or a timeout occurs.
The task if this class is to setup and configure the protocol stack.
The ConfigurationFactory is a factory that returns a protocol stack configurator.
Establishes a connection to the router.
Connects the channel to a group.
Connects the channel to a group.
Used to be notified about connection establishment and teardown.
Manages incoming and outgoing TCP connections.
Regular ConnectionTable without expiration of idle connections
ConnectionTable including a connection reaper.
ConnectionTable including a connection reaper.
Manages incoming and outgoing TCP connections.
Manages a multicast and unicast socket on a given interface (NIC).
Manages a bunch of Connectors
Returns true if the provided member belongs to this membership
returns true, if this view contains a certain member
ObjectInputStream which sets a contact classloader for reading bytes into objects.
Creates a new instance of MarshalledValueOutputStream
Coordinator role of the Group MemberShip (GMS) protocol.
Used to determine whether to copy messages (copy=true) in retransmission tables,
or whether to use references (copy=false).
copy() - method in class org.jgroups.protocols.pbcast.
Digest copy() - method in class org.jgroups.protocols.pbcast.
Gossip returns a copy of this membership
Old Copy method, deprecated because it is substituted by clone()
Create a copy of the message.
The unique name of the associated RequestCorrelator
JBoss MBean lifecycle operation.
Creates an instance implementing the Channel
interface.
Creates a JChannel
implementation of the
Channel
interface using the protocol stack configuration
information specfied during construction of an instance of this factory.
Creates an instance implementing the Channel
interface.
Creates a JChannel
implementation of the
Channel
interface.
Creates a DatagramSocket bound to addr.
Reads the default properties and creates a persistencemanager
The default properties are picked up from the $USER_HOME or
from the classpath.
Duplicated signature to create PersistenceManager to allow user to
provide property path.
Creates a new protocol given the protocol specification.
Creates a new protocol given the protocol specification.
Finds first available port starting at start_port and returns server socket
Finds first available port starting at start_port and returns server socket.
Finds first available port starting at start_port and returns server socket.
Tries to create a socket to remote_peer:remote_port.
Duplicate constructor allowing inputstream
Tests the deadlock detection mechanism of RequestCorrelator.
Whether or not to perform deadlock detection for synchronous (potentially recursive) group method invocations.
Allows for conditional compilation; e.g., if(log.isTraceEnabled()) if(log.isInfoEnabled()) log.info(...) would be removed from the code
(if recompiled) when this flag is set to false.
Dumps internal state @remove
The Debugger displays a graphical view of the protocol stack by showing all the protocols and
the events in them.
The default protocol stack used by the default constructor.
Concatenates smaller fragments into entire buffers.
Delays incoming/outgoing messages by a random number of milliseconds (range between 0 and n
where n is determined by the user).
Contains a list of members who should receive the request (others will drop).
JBoss MBean lifecycle operation.
Stop the retransmitter and reset the nak window
Return the first non-loopback interface
Returns all members that left between 2 views.
Message digest, collecting the highest sequence number seen so far for each member, plus the
messages that have higher seqnos than the ones given.
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).
Writes are serialized, but reads can be dirty; e.g., a data might have
been changed while we read it.
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.
Disconnects the channel from the current group (if connected), leaving the group.
Disconnects the channel if it is connected.
Closes the socket and the input and output streams associated with it
The Discovery protocol layer retrieves the initial membership (used by the GMS when started
by sending event FIND_INITIAL_MBRS down the stack).
Used to broadcast updates and receive responses (latter only in synchronous case)
Provides the abstraction of a java.util.Hashtable that is replicated at several
locations.
Uses a user-provided PullPushAdapter to create the dispatcher rather than a Channel.
Creates a DisttributedHashtable.
Creates a DistributedHashtable
Uses the DistributedHashtable building block.
Distributed lock manager is responsible for maintaining the lock information
consistent on all participating nodes.
Constructor for the DistributedLockManager_cl object.
Create instance of this class.
Provides the abstraction of a java.util.LinkedList that is replicated at several
locations.
Uses a user-provided PullPushAdapter to create the dispatcher rather than a Channel.
Creates a DistributedQueue
Uses the DistributedQueue building block.
A tree-like structure that is replicated across several members.
Demo showing the DistributedTree class.
Used to signal that a certain request may be garbage collected as
all responses have been received.
Makes sure that we detect when a peer connection is in the closed state (not closed while we send data,
but before we send data).
Makes sure that we detect when a peer connection is in the closed state (not closed while we send data,
but before we send data).
Processes Event going down in the stack
Access to event mechanism of channels.
We compress the payload if it is larger than min_size
.
An event is to be sent down the stack.
Caller by the layer above this layer.
An event is to be sent down the stack.
An event is to be sent down the stack.
An event is to be sent down the stack.
An event is to be sent down the stack.
Checs if it can send the message, else puts the message in the queue.
Fragment a packet if larger than frag_size (add a header).
Fragment a packet if larger than frag_size (add a header).
Sends a message through the protocol stack if the stack is available
Called by the protocol above this.
Caller by the layer above this layer.
An event is to be sent down the stack.
An event is to be sent down the stack.
This message is not originated by this layer, therefore we can just
pass it down without having to go through the request correlator.
Adds to Messages a Header with the local partitin number and if receives a SET_PARTITIONS Event sends
a new Message with a PartitionerHeader set to COMMAND that carries the Hashtable
Caller by the layer above this layer.
An event is to be sent down the stack.
An event is to be sent down the stack.
An event is to be sent down the stack.
An event is to be sent down the stack.
An event is to be sent down the stack.
An event is to be sent down the stack.
handles an Event coming down the Protocol Stack
Caller by the layer above this layer.
Caller by the layer above this layer.
Caller by the layer above this layer.
An event is to be sent down the stack.
An event is to be sent down the stack.
Sent to destination(s) using the WAN pipe.
Called when an event is about to be dispatched to the protocol (before it is dispatched).
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 with CONNECT_OK.
DUMP - static field in class org.jgroups.stack.
Router Debugging method used to dump the content of a protocol queue in a condensed form.
Returns a map of statistics of the various protocols and of the channel itself.
Returns a map of statistics of the various protocols and of the channel itself.
dx - field in class org.jgroups.demos.wb.
Node dy - field in class org.jgroups.demos.wb.
Node Generate random local address.
GET - static field in class org.jgroups.stack.
Router Returns a class for a magic number.
Returns the message from received_msgs or delivered_msgs.
Loads and returns the class from the class name
Retrieves the membership (list of Addresses) for a given group.
Finds a node given its name and returns the value associated with a given key in its data
map.
return majority (of all members, may block)
return only first response
return majority (of all non-faulty members)
return n responses (may block)
return no response (async call)
Returns the additional_data.
Returns the additional_data.
Retrieve all states of the group members.
Retrieves the current group state.
returns an ordered list of arguments used for the method invokation
Returns a message associated with this vector timestamp.
Returns a copy of the buffer if offset and length are used, otherwise a reference.
Called on the coordinator to obtains its cache
Called on the coordinator to obtains its cache
Determines the coordinator and asks it for its cache.
Determines the coordinator and asks it for its cache.
Returns the Channel the DistributedTree is connected to
Offers access to the underlying Channel.
Returns the Channel the DistributedTree is connected to
Returns the group address of the group of which the channel is a member.
returns the name of the channel
if the channel is not connected or if it is closed it will return null
Returns all children of a Node as strings
Returns all children of a given node
Returns the Class object for this class
Mcasts getResult() to all members (including itself).
Returns a list of local addresses (one for each Connector)
Convert consensus type into string representation.
returns a vector with all the objects currently in the queue
returns a vector with all the objects currently in the queue
returns the address of the member that issued this view
returns the creator of this view
if this view was created with the empty constructur, null will be returned
Sends down a GET_DIGEST event and waits for the GET_DIGEST_OK response, or
timeout, whichever occurs first
Returns the first element.
Returns the first element.
Returns the sequence id of the "first" queued message
(i.e., the lowest seq id queued).
Returns the number of current members joined to the group
Returns the number of current members joined to the group
Returns the name of the group that the DistributedTree is connected to
Returns the name of the group that the DistributedTree is connected to
Returns the highest sequence number received so far (which may be
higher than the highest seqno delivered so far; e.g., for
1,2,3,5,6 it would be 6.
Returns the highest deliverable seqno; e.g., for 1,2,3,5,6 it would
be 3.
returns the lamport time of the view
getImpl() - method in class org.jgroups.protocols.pbcast.
GMS Singular public method to get access to any of the Persistence
Manager implementations.
Returns the key that should be used for Map lookup.
Gets the keys of the data
map.
Returns the last element.
Returns the last element.
Returns the number of bytes in the buffer
returns the Address of the local machine
returns null if it is not known yet
Returns the channel's own address.
returns the local address of the channel
returns null if the channel is closed
Returns the magic number for the class.
returns a copy (clone) of the members in this membership.
Returns Collection containing addresses of other group members from this Vector clock
Returns a reference to the List of members (ordered)
Do NOT change this list, hence your will invalidate the view
Make a copy if you have to modify it.
Returns all members of a given group
Returns a reference to the real membership: don't modify.
Gives access to the currently configured MessageListener.
Return messages that are higher than seqno
(excluding
seqno
).
Return a list of all messages for which there is a seqno in
missing_msgs
.
Return all messages m for which the following holds:
m > lower && m <= upper (excluding lower, including upper).
Find all messages between 'low' and 'high' (including 'low' and
'high') that have a null msg.
Returns a name of this stack, each stackhas to have unique name
All protocol names have to be unique !
All protocol names have to be unique !
All protocol names have to be unique !
All protocol names have to be unique !
getName() - method in class org.jgroups.protocols.pbcast.
FD getName() - method in class org.jgroups.protocols.pbcast.
GMS Get the name of the protocol.
All protocol names have to be unique !
returns the name of the method to be invoked using this method call object
All protocol names have to be unique !
All protocol names have to be unique !
All protocol names have to be unique !
All protocol names have to be unique !
All protocol names have to be unique !
All protocol names have to be unique !
All protocol names have to be unique !
returns the unique name of this protocol
All protocol names have to be unique !
All protocol names have to be unique !
Lists all network interfaces on a system
Returns the number of members for a given entry for which acks have to be received
Returns the number of members for a given entry for which acks have been received
The number of messages in all Entry.sent_msgs tables (haven't received an ACK yet)
Returns the number of messages that are waiting.
Returns the offset into the buffer at which the data starts
returns the value of an option.
Returns owner index in this VectorTime clock
Returns a copy of the list of physical addresses.
returns the protocol stack configuration in string format.
Returns all protocols in a list, from top to bottom.
Returns the protocol stack.
Throws a UnsupportedOperationException all the time.
returns the old style protocol string
Returns a reference to the payload (byte buffer).
Returns a random integer value between 1 and 10
Returns the result, but never throws a TimeoutException; returns null instead.
Returns the results as a RspList
Returns the results from non-suspected members that are not null.
Blocks until a result is available, or timeout milliseconds have elapsed
Returns sequence number of the message that owns this header
returns the address of the current sequencer of the group
returns null if the list of members is empty
Returns a protocol stack configurator based on the XML configuration
provided by the specified XML element.
Returns a protocol stack configurator based on the XML configuration
provided by the specified File.
Returns a protocol stack configurator based on the properties passed in.
If the properties parameter is a plain string UDP:FRAG:MERGE:GMS etc, a PlainConfigurator is returned.
If the properties parameter is a string that represents a url for example http://www.filip.net/test.xml
or the parameter is a java.net.URL object, an XmlConfigurator is returned
Returns a protocol stack configurator based on the provided properties
string.
Returns a protocol stack configurator based on the XML configuration
provided at the specified URL.
Answers the group state; e.g., when joining.
Answers the group state; e.g., when joining.
Return a copy of the tree
Answers the group state; e.g., when joining.
Get state from state listener if present.
Answers the group state; e.g., when joining.
Answers the group state; e.g., when joining.
Answers the group state; e.g., when joining.
Answers the group state; e.g., when joining.
Return a copy of the current cache (tree)
Answers the group state; e.g., when joining.
Retrieve the state of the group.
Retrieves the current group state.
Represents a GetState event.
Returns a minimal lightweight representation of this Vector Time
suitable for network transport.
Returns Vector clock values of this Vector clock
Returns a vector timestamp carreid by this header
Returns Vector clock values of this Vector clock
returns the view ID of this view
if this view was created with the empty constructur, null will be returned
getView() - method in class org.jgroups.jmx.protocols.pbcast.
GMS getView() - method in class org.jgroups.protocols.pbcast.
GMS Returns the current view.
Globals used by JGroups packages.
gms - field in class org.jgroups.protocols.
GmsImpl gms - field in class org.jgroups.protocols.pbcast.
GmsImpl GMS - class org.jgroups.jmx.protocols.pbcast.
GMS GMS - class org.jgroups.protocols.
GMS Group membership protocol.
GMS - class org.jgroups.protocols.pbcast.
GMS Group membership protocol.
GMS() - constructor for class org.jgroups.jmx.protocols.pbcast.
GMS GMS() - constructor for class org.jgroups.protocols.
GMS GMS() - constructor for class org.jgroups.protocols.pbcast.
GMS Used for JOIN_REQ or LEAVE_REQ header
go() - method in class org.jgroups.demos.
Draw 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.
Contains the highest sequence numbers as seen by sender
Local stub for clients to access one (or more) GossipServers.
Encapsulates data sent between GossipServer and GossipClient
Router for TCP based group comunication (using layer TCP instead of UDP).
Maintains a cache of member addresses for each group.
Sends a message to all members of the group and waits for all responses (or timeout).
Use an ID to map to a method
The id of this request to distinguish among other requests from
the same RequestCorrelator
id - field in class org.jgroups.blocks.
Xid Incerements owners current vector value by 1
Increments the sender's high_seqno by 1.
Returns index of the given member represented by it's Address
Called after instance has been created (null constructor) and before protocol is started.
init() - method in class org.jgroups.protocols.
BSH Called after instance has been created (null constructor) and before protocol is started.
Called after instance has been created (null constructor) and before protocol is started.
init() - method in class org.jgroups.protocols.
FD Called after instance has been created (null constructor) and before protocol is started.
init() - method in class org.jgroups.protocols.pbcast.
GMS init() - method in class org.jgroups.protocols.pbcast.
NAKACK Called after instance has been created (null constructor) and before protocol is started.
Called after instance has been created (null constructor) and before protocol is started.
Called after instance has been created (null constructor) and before protocol is started.
init() - method in class org.jgroups.protocols.
SIZE Called after instance has been created (null constructor) and before protocol is started.
used to intitiailize complete DB access.
Generates the public/private key pair from the init params
Used to initialise the symmetric key if none is supplied in a keystore.
Inserts an already created (and initialized) protocol into the protocol list.
Inserts an already created (and initialized) protocol into the protocol list.
Sets the new view and sends a VIEW_CHANGE event up and down the stack.
Sets the new view and sends a VIEW_CHANGE event up and down the stack.
Manages retransmission timeouts.
Invokes the method with the supplied arguments against the target object.
Network-dependent address (Internet).
Determines if the vector clock represented by TransportedVectorTime is
causally next to this VectorTime
Determines whether the channel is connected to a group.
returns true if the Connect operation has been called successfully
Checks whether this is an address that represents multiple destinations;
e.g., a class D address in the Internet.
Checks whether this is an address that represents multiple destinations;
e.g., a class D address in the Internet.
Is the address a multicast address?
Checks whether this is an address that represents multiple destinations;
e.g., a class D address in the Internet.
Determines whether the channel is open;
i.e., the protocol stack has been created (may not be connected though).
returns true if the Open operation has been called successfully
isShun() - method in class org.jgroups.jmx.protocols.
FD isShun() - method in class org.jgroups.protocols.
FD isShun() - method in class org.jgroups.jmx.protocols.pbcast.
GMS isShun() - method in class org.jgroups.protocols.pbcast.
GMS Lock aquire decree is valid for a ACQUIRE_EXPIRATION
time after creation and if the lock is still valid (in the
future locks will be leased for a predefined period of time).
This is a place-holder for future lock expiration code.
Returns potential coordinator based on lexicographic ordering of member addresses.
Returns potential coordinator based on lexicographic ordering of member addresses.
Parses comma-delimited longs; e.g., 2000,4000,8000.
Get a string of the form "P1(config_str1):P2:P3(config_str3)" and return
ProtocolConfigurations for it.
Return a number of ProtocolConfigurations in a vector
This layer can be put on top of the bottommost layer and is useful to simulate partitions.
The Partitioner header normally (type = NORMAL) contains just the partition number that is checked to discard messages
received from other partitions.
Causes the event to be forwarded to the next layer down in the hierarchy.Typically called
by the implementation of Down
(when done).
Called when an event is about to be passed down to the next lower protocol.
Pass through only when the latch becomes unlocked.
Causes the event to be forwarded to the next layer up in the hierarchy.
Called when an event is about to be passed up to the next higher protocol.
To carry arbitrary data with a method call, data needs to be serializable if sent across the wire
Implementation of probabilistic broadcast.
returns the first object on the queue, without removing it.
returns the first object on the queue, without removing it.
Returns element at the tail (if present), but does not remove it from list.
returns the first object on the queue, without removing it.
returns the first object on the queue, without removing it.
Returns the next message, view, block, suspect or other event without removing
it from the queue.
Just peeks at the next message, view or block.
returns the first object on the queue, without removing it.
returns the first object on the queue, without removing it.
returns the first object on the queue, without removing it.
Returns element at the head (if present), but does not remove it from list.
PERF - static field in class org.jgroups.
Event Measures time taken by each protocol to process a message.
Measures the time for a message to travel from the channel to the transport
Inserted by PERF into each message.
List of physical addresses
Selects a random subset of members according to subset_percentage and returns them.
Combines multiple messages into a single large one.
PING - class org.jgroups.jmx.protocols.
PING The PING protocol layer retrieves the initial membership (used by the GMS when started
by sending event FIND_INITIAL_MBRS down the stack).
PING() - constructor for class org.jgroups.jmx.protocols.
PING Sends num_ping_request GET_MBRS_REQ messages, distributed over timeout ms
Class that waits for n PingRsp'es, or m milliseconds to return the initial membership
A ProtocolStackConfigurator for the old style properties.
Instantiates a PlainConfigurator with old style properties
Prepare phase for the lock acquisition or release.
This is voting if the decree is acceptable to the party.
Prints a representation of the node defined by fqn
.
Prints the specified element.
Returns the catenation of the description and cvs fields.
Prints all members plus whether an ack has been received from those members for a given seqno
Tries to read an object from the message's buffer and prints it
Tries to read a MethodCall
object from the message's buffer and prints it.
Returns a pretty-printed form of all the protocols.
Prints the names of the protocols, from the bottom to top.
Use with caution: lots of overhead
Returns the version field as a String.
Title: JGroups Communications
Description: Contact me at
filip@filip.net
Copyright: Copyright (c) 2002
Company: www.filip.net
Processes the response list and votes like the default processResponses method with the consensusType VOTE_ALL
If the result of the voting is false, but this DistributedLockManager owns the lock, the result is changed to
true and the lock is released, but marked as multiple locked.
Processes the responses returned by the other nodes.
Processes the response list and makes a decision according to the
type of the consensus for current voting.
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.
Parses and encapsulates the specification for 1 protocol of the protocol stack, e.g.
Creates a new ProtocolConfiguration.
Interface for the Debugger to receive notifications about a protocol layer.
Data holder for protocol data
Abstract class for all protocol-specific views, e.g.
A ProtocolStack manages a number of protocols layered above each other.
Only used by Simulator; don't use
Generic class to test one or more protocol layers directly.
Graphical view of a protocol instance
List of events that are provided to layers below (they will be handled when sent down from
below).
List of events that are provided to layers below (they will be handled when sent down from
below).
List of events that are provided to layers below (they will be handled when sent down from
below).
List of events that are provided to layers above (they will be handled when sent down from
above).
List of events that are provided to layers above (they will be handled when sent down from
above).
List of events that are provided to layers above (they will be handled when sent down from
above).
List of events that are provided to layers above (they will be handled when sent down from
above).
Redirects incoming TCP connections to other hosts/ports.
Allows a client of
Channel
to be notified when messages have been received
instead of having to actively poll the channel for new messages.
Maps the specified key to the specified value in the hashtable.
Maps the specified key to the specified value in the hashtable.
Adds a new node to the tree and sets its data.
Adds a key and value to a given node.
Copies all of the mappings from the specified Map to this Hashtable These mappings will replace any mappings that this Hashtable had for any of the keys currently in the specified Map.
Copies all of the mappings from the specified Map to this Hashtable These mappings will replace any mappings that this Hashtable had for any of the keys currently in the specified Map.
Puts a header given a key into the hashmap.
Returns a random value in the range [1 - range]
reads the magic number, instantiates the class (from the
configurator) and invokes the readExternal method on the object.
Reads are dirty until another transaction actually commits; at that
points the modified data will be reflected here.
Read object from external input.
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
Read the state of the current object (including superclasses) from instream
Note that the input stream must not be closed
try to read the magic number configuration file as a Resource form the classpath using getResourceAsStream
if this fails this method tries to read the configuration file from mMagicNumberFile using a FileInputStream (not in classpath but somewhere else in the disk)
Receives a message from the router (blocking mode).
Receive a message from any of the physical links.
Receives a message, a view change or a block event.
Calls the receiver callback.
ConnectionTable.Receiver interface
Subclasses must call this method when a unicast or multicast message has been received.
Receives data sent by a sender to all group members and applies update to locally replicated data.
Called when a message is received.
Called when a message is received.
Called when a message is received.
Called when a message is received.
Receive message from group.
Called when a message is received.
Called when a message is received.
Called when a message is received.
Called when a message is received.
Called when a message is received.
Buffer for incoming unicast packets
Heartbeat came back again (before link was taken down) after missing some heartbeats
We need to receive view changes concurrent to messages on the down events: a message might blocks, e.g.
The default handling adds the event to the down-queue where events are handled in order of
addition by a thread.
Internal method, should not be called by clients.
Handles a message coming from a layer below
Used for message reception.
Defines the callbacks that are invoked when messages, views etc are received on a channel
Callback (called by RequestCorrelator or Transport).
Event.SUSPECT event received from a layer below.
This method is overridden to avoid hanging on getDigest(): when a JOIN is received, the coordinator needs
to retrieve the digest from the NAKACK layer.
Internal method, should not be called by clients.
Event.VIEW_CHANGE event received from a layer below.
Tries to establish connection to router.
Enables safely locking and unlocking a shared resource, without blocking the calling threads.
Create a new unlocked latch.
Register this process with the router under groupname
.
Adds the member to the given group.
Registers an already created channel with the MBeanServer.
Sets a listener to messages with a given identifier.
Takes all protocols of an existing stack, creates corresponding MBean proxies and registers them with
the MBean server
This class represents the lock to be released.
Removes a message whose seqno is equal to next_to_remove
, increments the latter.
Try to return the first objet in the queue.It does not wait for an object.
Removes 1 element from head or blocks
until next element has been added
Removes an object from the tail of the list.
Removes 1 element from head or blocks
until next element has been added or until queue has been closed
Removes 1 element from head or blocks
until next element has been added or until queue has been closed
removes all the members contained in v from this membership
Removes 1 element from the head.
Removes 1 element from the head.
Removes 1 element from the head.
Remove the given sequence number from the list of seqnos eligible
for retransmission.
Removes the key (and its corresponding value) from the Hashtable.
Removes the key (and its corresponding value) from the Hashtable.
Remove obj
from all receiver sets and wake up
retransmission thread.
Remove addr
from connection table.
removes an member from the membership.
Remove existing NV from being persisted
Remove existing NV from being persisted
Removes the node from the tree.
Removes key
from the node's hashmap
removes a specific object from the queue.
Removes element obj
from the list, checking for equality using the equals
operator.
removes a specific object from the queue.
removes a specific object from the queue.
Removes an object from the head of the list.
Removes obj from not_seen list
Removes the listener from the voteChannel
Remove membership listener from this adapter.
Remove message listener from this adapter.
Removes a protocol from the stack.
Removes a protocol from the stack.
Reply to broadcast request.
Each read causes the data read to be copied to the private workspace, so
subsequent reads always read the private data.
Provides the abstraction of a java.util.Hashtable that is replicated at several
locations.
Creates a ReplicatedHashtable
A tree-like structure that is replicated across several members.
Expects an already connected channel.
Creates a channel with the given properties.
Graphical view of a ReplicatedTree
Class used for data exchange by ReplicationManager and ReplicationReceiver.
Class to propagate updates to a number of nodes in various ways:
- Asynchronous
- Synchronous
- Synchronous with locking
Note: This class is experimental as of Oct 2002
Creates an instance of ReplicationManager on top of a PullPushAdapter
Creates an instance of ReplicationManager on top of a Channel
Implementation of this interface needs to register with ReplicationManager and will receive updates to be
applied to its locally replicated data.
Request to broadcast by the source
The handler for the incoming requests.
Framework to send requests and receive matching responses (matching on
request ID).
The table of pending requests (keys=Long (request IDs), values=RequestEntry)
List of events that are required to be answered by some layer below.
List of events that are required to be answered by some layer below.
List of events that are required to be answered by some layer above.
The events expected to be handled from some layer above:
-
GET_MSGS_RECEIVED: NAKACK layer
List of events that are required to be answered by some layer above.
List of events that are required to be answered by some layer above.
Remove all pending msgs from the hashtable.
reset() - static method in class org.jgroups.protocols.
DUMMY Just remove if you don't need to reset any state
Just remove if you don't need to reset any state
Just remove if you don't need to reset any state
Just remove if you don't need to reset any state
Just remove if you don't need to reset any state
Nulls all fields of this message so that the message can be reused.
Reset the retransmitter and the nak window
Just remove if you don't need to reset any state
Causes all waiting threads to return
Reset the retransmitter: clear all msgs and cancel all the
respective tasks
Just remove if you don't need to reset any state
Resets all the values in this vector clock to 0
resets an existing node, useful after a merge when you want to tell other
members of your state, but do not wish to remove and then add as two separate calls
resets an existing node, useful after a merge when you want to tell other
members of your state, but do not wish to remove and then add as two separate calls
This method sets the membership
variable to the value of
members
.
Resets the seqnos for the sender at 'index' to 0.
Implementation of Retransmitter.RetransmitCommand.
Get the missing messages between sequence numbers
first_seqno
and last_seqno
.
Called by AckSenderWindow to resend messages for which no ACK has been received yet
Called by retransmitter thread whenever a message needs to be re-sent
to a destination.
Retransmit command (see Gamma et al.) used to retrieve missing messages
Maintains a pool of sequence numbers of messages that need to be retransmitted.
Create a new Retransmitter associated with the given sender address
Create a new Retransmitter associated with the given sender address
Used to retrieve the persisted map back to its last known state
Gives back the Map in last known state
Gives back the Map in last known state
Called by the application is response to receiving a
getState()
object when calling receive()
.
Called by the application is response to receiving a getState()
object when
calling receive()
.
Discard all modifications and release all locks.
Router for TCP based group comunication (using layer TCP instead of UDP).
Creates a stub for a remote Router object.
This class allows a programmer to invoke remote methods in all (or single)
group members and optionally wait for the return value(s).
Base class for group RMC peer protocols.
Rsp - class org.jgroups.util.
Rsp class that represents a response from a communication
msg is synchronous if true
Contains responses from all members.
run() - method in class org.jgroups.protocols.pbcast.
FD Loop while more than 1 member available.
Runs as long as there are 2 members and more.
FCInfo request must be submitted in a different thread.
run() - method in class org.jgroups.protocols.
GMS run() - method in class org.jgroups.blocks.
Link Receiver thread main loop.
run() - method in class org.jgroups.protocols.
MERGE If IP multicast: periodically mcast a HELLO message
If gossiping: periodically retrieve the membership.
run() - method in class org.jgroups.protocols.
MPING run() - method in class org.jgroups.protocols.pbcast.
PBCAST Gossip thread.
Reentrant run(): message reception is serialized, then the listener is notified of the
message reception
Delicate piece of code (means very important :-)).
Removes a random chosen message from the messages List<\code> if there
are less than 10 messages in the List it waits some time to ensure to chose from
a set of messages > 1.
run() - method in class org.jgroups.protocols.
UDP Will be started when a suspect is added to the suspects hashtable.
Checks whether 2 Addresses are on the same host
Compares two digests and returns true if the senders are the same, otherwise false.
Throws an exception if sanity check fails.
Saves NV pair as serializable object;
creates if new, stores new state if already exists.
Save new NV pair as serializable objects or if already exist; store
new state
Save new NV pair as serializable objects or if already exist; store
new state
Saves all row entries for the map to DB.
Use to store a complete map into persistent state
Use to store a complete map into persistent state
Implementation of a priority scheduler.
The dispatching thread pool
Tries to send buffer across out socket.
Send a message to the other side
Sends a message using mcast_sock
Sends a request to all members of the group.
creates a new message with the destination address, and the source address
and the object as the message value
Sends a message to a (unicast) destination.
Sends a message through the protocol stack.
Sends a message with no identifier; listener member will get this message on the other group members.
Sends a message to the router.
Sends a message to the group - listeners to this identifier will receive the messages.
Publish message in the JMS topic.
Sends a message to a single member (destination = msg.dest) and returns the response.
Sends a message to a single member (destination = msg.dest) and returns the response.
Pack the argument in a Info, serialize that one into the message buffer and send the message
Send a request to a group.
Send to all members in the group.
Send to all members in the group.
Sends a VIEW_SYNC_REQ to all members, every member replies with a VIEW multicast
Tries to find out the max number of bytes in a DatagramPacket we can send by sending increasingly
larger packets, until there is an exception (e.g., java.io.IOException: message too long).
For TOTAL_BCAST messages, seq_id is used to determine the order of messages
in the view.
The ID imposing the total order of messages
Reads and writes require locks.
Clear the membership and adds all members of v
This method will clear out all the old members of this membership by
invoking the Clear
method.
Clear the membership and adds all members of v
This method will clear out all the old members of this membership by
invoking the Clear
method.
Sets the additional_data.
Sets the additional_data.
Sets a message associated with this vector timestamp
Set the internal buffer to point to a subset of a given buffer
Allows to be notified when a channel event such as connect, disconnect or close occurs.
To configure via XML file
To configure via XML file
Switch the deadlock detection mechanism on/off
Send down a SET_DIGEST event
sets the name for this MethodCall and allowing you to reuse the same object for
a different method invokation of a different method
Only 1 observer is allowed.
Setup the Protocol instance acording to the configuration string
Configures the protocol initially.
sets the properties of the PING protocol.
Configures the protocol initially.
Configures the protocol initially.
Configures the protocol initially.
Configures the protocol initially.
Following parameters can be optionally supplied:
- window size cap -
int
Limits the window size to a reasonable value.
Setup the Protocol instance acording to the configuration string
Setup the Protocol instance acording to the configuration string
Setup the Protocol instance acording to the configuration string
Setup the Protocol instance according to the configuration string
Configures the protocol initially.
sets the properties of the PING protocol.
Configures the protocol initially.
Setup the Protocol instance acording to the configuration string
sets the properties of the PING protocol.
Configures the protocol initially.
Configures the protocol initially.
Setup the Protocol instance acording to the configuration string
Set the parameters for this layer.
Configures the protocol initially.
Configures the protocol initially.
Setup the Protocol instance acording to the configuration string
Setup the Protocol instance acording to the configuration string
sets the properties of the PING protocol.
sets the properties of the PING protocol.
Configures the protocol initially.
Setup the Protocol instance acording to the configuration string
Setup the Protocol instance according to the configuration string
Setup the Protocol instance acording to the configuration string
Setup the Protocol instance acording to the configuration string.
Setup the Protocol instance acording to the configuration string.
Configures the protocol initially.
Configures the protocol initially.
sets the properties of the PING protocol.
Setup the Protocol instance acording to the configuration string
Called when a ProtocolObserver is attached to a protcol.
Sets the receiver, which will handle all messages, view changes etc
Sets the result and notifies any threads
waiting for it
Sets the group state; e.g., when joining.
Sets the group state; e.g., when joining.
Sets the group state; e.g., when joining.
Sets the group state; e.g., when joining.
Sets the group state; e.g., when joining.
Sets the group state; e.g., when joining.
Sets the group state; e.g., when joining.
Sets the group state; e.g., when joining.
Set the cache (tree) to this value
Sets the group state; e.g., when joining.
Encapsulates a state returned by Channel.receive()
, as requested by
Channel.getState(s)
previously.
Register listener
for state notification events.
When up_handler is set, all events will be passed to it directly.
The configuration string has a number of entries, separated by a ':' (colon).
This layer shuffles upcoming messages, put it just above your bottom layer.
Shutting down the database cleanly
Used to handle shutdown call the PersistenceManager implementation.
Shuts down the channel without disconnecting
Used to handle shutdown call the PersistenceManager implementation.
Provide a signature, similar to JMX.
Tests one or more protocols independently.
size - field in class org.jgroups.util.
List Protocol which prints out the real size of a message.
Returns serialized size of this address
To be implemented by subclasses.
Size of this vector timestamp estimation, used in fragmetation
size() - method in class org.jgroups.protocols.pbcast.
Digest To be implemented by subclasses.
To be implemented by subclasses.
To be implemented by subclasses.
To be implemented by subclasses.
Returns serialized size of this address
returns the number of objects that are currently in the queue
Returns the number of addresses in this membership
Returns size of buffer, plus some constant overhead for src and dest, plus number of headers time
some estimated size/header.
To be implemented by subclasses.
returns the number of objects that are currently in the queue
returns the number of objects that are currently in the queue
To be implemented by subclasses.
To be implemented by subclasses.
Answers the number of tasks currently in the queue.
Returns size of the header
To be implemented by subclasses.
Returns size of this vector timestamp i.e number of process group members
returns the number of members in this view
To be implemented by subclasses.
Returns serialized size of this address
Returns the marshalled size of a Collection of Addresses.
On most UNIX systems, the minimum sleep time is 10-20ms.
Sleeps between 1 and timeout milliseconds, chosen randomly.
Simple Multicast ACK protocol.
Contains the highest message sequence numbers (for each member) that
can safely be deleted (because they have been seen by all members).
Computes the broadcast messages that are stable; i.e., that have been received
by all members.
Computes the broadcast messages that are stable; i.e., have been received by all members.
STABLE() - constructor for class org.jgroups.jmx.protocols.pbcast.
STABLE Delete all messages <= seqno (they are stable, that is, have been
received at all members).
LIFO stack, with better performance than java.util.Stack (based on List).
start() - method in class org.jgroups.protocols.
BSH start() - method in class org.jgroups.protocols.
FC start() - method in class org.jgroups.protocols.
GMS start() - method in class org.jgroups.protocols.pbcast.
GMS JBoss MBean lifecycle operation.
start() - method in class org.jgroups.protocols.
JMS Start the JMS protocol.
Will always be called from synchronized method, no need to do our own synchronization
Starts the messagesHandler<\code>
start() - method in class org.jgroups.protocols.
TCP Start the scheduler, if it's suspended or stopped
Prepare this layer to receive messages from above
start() - method in class org.jgroups.protocols.
TP Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads
start() - method in class org.jgroups.protocols.
UDP Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads
Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads
Get all interfaces, create one Connector per interface and call start() on it
Leave empty: no down_thread will be created, but the down_thread of the neighbor above us will be used
We have no down handler thread
This prevents the down-handler thread to be created, which is not needed in the protocol.
This prevents the down-handler thread to be created, which is not needed in the protocol.
Leave empty: no up_thread will be created, but the up_thread of the neighbor below us will be used
We have no up handler thread
This prevents the up-handler thread to be created, which is not needed in the protocol.
This prevents the up-handler thread to be created, which is not needed in the protocol.
This prevents the up-handler thread to be created, which essentially is superfluous:
messages are received from the network rather than from a layer below.
This prevents the up-handler thread to be created, which essentially is superfluous:
messages are received from the network rather than from a layer below.
This prevents the up-handler thread to be created, which essentially is superfluous:
messages are received from the network rather than from a layer below.
Override with null functionality: we don't need any threads to be started !
New STATE_TRANSFER protocol based on PBCAST.
Wraps data for a state request/response.
Contains parameters for state transfer.
STATS() - constructor for class org.jgroups.jmx.protocols.
STATS STOP - static field in class org.jgroups.
Event Stop the rentransmition and clear all pending msgs.
stop() - method in class org.jgroups.protocols.
BSH Closes all open sockets, the server socket and all threads waiting for incoming messages
Closes all open sockets, the server socket and all threads waiting for incoming messages
stop() - method in class org.jgroups.protocols.
FC stop() - method in class org.jgroups.protocols.
FD stop() - method in class org.jgroups.protocols.pbcast.
FD stop() - method in class org.jgroups.protocols.pbcast.
GMS JBoss MBean lifecycle operation.
stop() - method in class org.jgroups.protocols.
JMS Stops the work of the JMS protocol.
stop() - method in class org.jgroups.protocols.pbcast.
NAKACK stop() - method in class org.jgroups.protocols.pbcast.
PBCAST stop() - method in class org.jgroups.protocols.
PING Stop the rentransmition and clear all pending msgs.
Stops the thread by setting thread=null and interrupting it.
Stop the scheduler thread.
Stops the messagesHandler
Stop scheduling the gossip task
stop() - method in class org.jgroups.protocols.pbcast.
STABLE stop() - method in class org.jgroups.protocols.
TCP Stop the scheduler if it's running.
Handle the stop() method travelling down the stack.
Overrides @org.jgroups.stack.MessageProtocol#stop().
stop() - method in class org.jgroups.protocols.
TP stop() - method in class org.jgroups.protocols.
UDP Iterates through all the protocols
from top to bottom and does the following:
- Waits until all messages in the down queue have been flushed (ie., size is 0)
- Calls stop() on the protocol
Override with null functionality: we don't need any threads to be started !
Implementations of Streamable can add their state directly to the output stream, enabling them to bypass costly
serialization
Process with address suspected
is suspected: remove it
from all receiver sets.
Called when a member is suspected
Called when a member is suspected
Called when a member is suspected
Callback (called by RequestCorrelator or Transport).
Called whenever a member is suspected of having crashed,
but has not yet been excluded.
Notify membership listener that some node was suspected.
Called whenever a member is suspected of having crashed,
but has not yet been excluded.
Called whenever a member is suspected of having crashed,
but has not yet been excluded.
Called whenever a member is suspected of having crashed,
but has not yet been excluded.
Called whenever a member is suspected of having crashed,
but has not yet been excluded.
Called when a member is suspected
Called when a member is suspected
Called when a member is suspected
Callback for notification that one node is suspected
Called whenever a member is suspected of having crashed,
but has not yet been excluded.
Thrown if a message is sent to a suspected member.
Represents a suspect event.
Send() blocks from now on, until resume() is called
UDP - class org.jgroups.jmx.protocols.
UDP UDP - class org.jgroups.protocols.
UDP IP multicast transport based on UDP.
UDP() - constructor for class org.jgroups.jmx.protocols.
UDP UDP() - constructor for class org.jgroups.protocols.
UDP Creates the UDP protocol, and initializes the
state variables, does however not start any sockets or threads.
Creates the UDP_NIO protocol, and initializes the
state variables, does however not start any sockets or threads.
unblock() - method in class org.jgroups.jmx.protocols.
FC Allows to unblock a blocked sender from an external program, e.g.
Unlocks an object with lockId
on behalf of the specified
owner
.
Release lock on obj
owned by specified owner
.
Unlocks an object with lockId
on behalf of the specified
owner
.
Release lock on obj
owned by specified owner
.
Removes a message listener to a given identifier from the message listeners map.
Removes previously suspected member from list of currently suspected members
Processes Event going up through the stack
If there is no header, we pass the message up.
An event was received from the layer below.
An event was received from the layer below.
An event was received from the layer below.
An event was received from the layer below.
An event was received from the layer below.
Checs if up messages are from myaddr and in the case sends down queued messages or
decremnts sentMsgs if there are no queued messages
If event is a message, if it is fragmented, re-assemble fragments into big message and pass up the stack.
If event is a message, if it is fragmented, re-assemble fragments into big message and pass up
the stack.
Callback method
Called by the ProtocolStack when a message is received.
An event was received from the layer below.
Handle an event coming from the layer above
Discards Messages with the wrong partition number and sets local partition number if
it receives a COMMAND Header
An event was received from the layer below.
An event was received from the layer below.
An event was received from the layer below.
Queues or passes up events.
Adds upcoming messages to the messages List<\code> where the
messagesHandler<\code>
retrieves them.
An event was received from the layer below.
An event was received from the layer below.
An event was received from the layer below.
handles an Event coming up the Protocol Stack
An event was received from the layer below.
Invoked for all channel events except connection management and state transfer.
An event was received from the layer below.
Called when an event is about to be dispatched to the protocol (before it is dispatched).
Provides a way of taking over a channel's tasks.
Collection of various utility routines that can not be assigned to other classes.
Returns all the elements of the queue
Vector timestamp used in CAUSAL order protocol stack
Constructs VectorTime given an adress of a owning group member
Catches SUSPECT events traveling up the stack.
Holds version information for JGroups.
vid - field in class org.jgroups.
View A view is a local representation of the current membership of a group.
creates an empty view, should not be used
Used by a client until it becomes a member: all up messages are discarded until a VIEW_CHANGE
is encountered.
Class to process JOIN, LEAVE and MERGE requests
view_id - field in class org.jgroups.protocols.
GMS Periodically sends the view to the group.
Called when a change in membership has occurred.
Called when a change in membership has occurred.
Called when a change in membership has occurred.
Notify membership listener that new view was accepted.
Called when a change in membership has occurred.
Called when a change in membership has occurred.
Called when a change in membership has occurred.
Called when a change in membership has occurred.
Called when a change in membership has occurred.
Called when a change in membership has occurred.
Called when a change in membership has occurred.
Callback for notification about the new view of the group.
Called when a change in membership has occurred.
Any member of 'membership' that is not in the new view is flagged as
SUSPECTED.
Demos the reception of views using a PullPushAdapter.
ViewIds are used for ordering views (each view has a ViewId and a list of members).
Creates a ViewID with the coordinator address and a Lamport timestamp of 0.
Creates a ViewID with the coordinator address and the given Lamport timestamp.
Each member is able to vote with true
or false
messages.
Each member is able to vote with true
or false
messages.
Performs actual voting on the VoteChannel using the JGroups
facilities for communication.
Performs actual voting on the VoteChannel using the JGroups
facilities for communication.
Performs the two-phase voting on the decree.
Vote on the specified decree requiring all nodes to vote.
Performs the two-phase voting on the decree.
Vote on the specified decree requiring all nodes to vote.
This consensus type means that at least one positive vote and no negative
votes are required for the voting to succeed.
This consensus type means that at least one positive vote is required
for the voting to succeed.
This consensus type means that number of positive votes should be greater
than number of negative votes.
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.
This class represents the result of local voting.
Voting adapter provides a voting functionality for an application.
Creates an instance of the VoteChannel that uses JGroups
for communication between group members.
Implemetations of this interface are able to participate in voting process.
Waits until the condition matches the expected result.
Waits until all outstanding messages have been ACKed by all receivers.
Waits until the queue has been closed.
Blocks until the queue has no elements left.
Waits until the condition matches the expected result.
Similar to TCPPING, except that the initial host list is specified as a list of logical pipe names.
Logical point-to-point link.
Logical address for a WAN pipe (logical link)
Shared whiteboard: members are represented by rectangles that contain their names and the OS/arch of
the machine they are working on.
width - field in class org.jgroups.demos.wb.
Node Checks whether the potential_new_coord would be the new coordinator (2nd in line)
Writes an object to the ObjectOutput stream.
Writes data to an output stream.
Writes a Vector of Addresses.
Write the object to external output.
if we were to register for OP_WRITE and send the remaining data on
readyOps for this channel we have to either block the caller thread or
queue the message buffers that may arrive while waiting for OP_WRITE.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Streams all members (dest and src addresses, buffer and headers) to the output stream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.
Write the entire state of the current object (including superclasses) to outstream.