Abort phase for the lock acquisition or release.
This is unconditional abort of the previous voting on the decree.
AbstractService
is a superclass for all service implementations.
Main constructor to create services.
Called to update you with the new view
ACK - static field in class org.jgroups.
Event 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 constructor whould be used when we want AckSenderWindow to send the message added
by add(), rather then ourselves.
This class represents the lock to be released.
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
Adds a list of members to this membership
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.
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.
For internal use only ! Don't use this method !
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.
This field is used only if deadlock detection is enabled.
Broadcast a Hot_Message to the group specified in the Hot_GroupContext
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.
Implements casual ordering layer using vector clocks
Causal protocol layer guarantees that if message m0 multicasted
by a process group member p0 causes process group member
p1 to multicast message p1 then all other remaining process group
members in a current view will receive messages in order m0
followed by m1.
Simple causal demo where each member bcast a consecutive letter from the
alphabet and picks the next member to transmit the next letter.
Change the properties of the group specified by the Hot_GroupContext
to the properties specified by the String
Change the protocol used by the group specified by the Hot_GroupContext
to the protocol specified by the String
A channel represents a group communication endpoint (like BSD datagram sockets).
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.
Instances of the group can broadcast short messages to the group, and receive them.
Checks whether responses from members contain exceptions or timeouts.
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.
The name and the relative path of the magic number map file can be specified
as value of the property org.jgroups.conf.magicNumberFile
.
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
Clears this hashtable so that it contains no keys
Replicates the update to all members.
Replicates the update to all members.
Replicated the update to all members, and use locks at each member to ensure serializability.
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.
Destroys the channel.
After this method has been called, the channel us unusable.
This operation will disconnect the channel and close the channel receive queue immediately
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.
The Command patttern (se Gamma et al.).
Commits all modifications done in the current transaction (kept in temporary storage)
to the hashtable.
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.
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.
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).
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.
If the channel is already connected, an error message will be printed to the error log
If the channel is closed a ChannelClosed exception will be thrown
This method starts the protocol stack by calling ProtocolStack.start
then it sends an Event.CONNECT event down the stack and waits to receive a CONNECT_OK event
Once the CONNECT_OK event arrives from the protocol stack, any channel listeners are notified
and the channel is considered connected
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.
JBoss MBean lifecycle operation.
Creates an instance implementing the Channel
interface.
No-Op implementation of the createChannel() method specified by 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
Tries to create a socket to remote_peer:remote_port.
Class used to transport updates to all replicas
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.
Dumps internal state @remove
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).
Message header that represents deny response.
Create uninitialized instance of this class.
Create instance of this class for specified denial type and denial
reason.
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
Destroys the associated outboard process.
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 e.g.
Writes are serialized, but reads can be dirty, e.g.
Discards up or down messages based on a percentage, e.g.
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
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.
This method runs with rsp_mutex locked (called by execute()
).
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).
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.
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.
Sent to destination(s) using the ConnectionTable class.
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).
NOT SUPPORTED !
Replicates the whiteboard demo by intercepting central AWT event queue and mcasting events to
all members.
DUMP - static field in class org.jgroups.stack.
Router This constant represents arbitrary duration.
This constant represents maximum possible duration.
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.
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.
Get address of this service in service group.
Get address of this client in group.
Retrieve all states of the group members.
Retrieves the current group state.
returns an ordered list of arguments used for the method invokation
Get best-fit duration leases with duration LeaseFactory.DURATION_ANY
.
Returns a copy of the buffer if offset and length are used, otherwise a reference
Serializes the contained object into a byte array
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.
Retrieves the cause of this exception as passed to the constructor.
Returns the Channel the DistributedTree is connected to
Used to operate on the underlying channel directly, e.g.
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 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
Returns the transaction associated with the current thread.
Get reason why lease was denied.
Sends down a GET_DIGEST event and waits for the GET_DIGEST_OK response, or
timeout, whichever occurs first
Get requested duration of a lease.
Get requested duration of a lease.
Get lease expiration time.
Returns the first element.
Returns the first element.
returns the sequence id of the "first" queued message
(i.e.
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.
Returns the highest deliverable seqno, e.g.
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.
Get lease info from this header.
Get target of this lease.
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.
Get best-fit duration leases with duration
LeaseFactory.DURATION_FOREVER
.
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.
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.
Get name of this service.
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.
Get name of this service.
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 next sequence id expected to be received in this view
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
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 results as a RspList
Returns the results from non-suspected members that are not null.
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 at the specified URL.
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.
Return a copy of the tree
Get state from state listener if present.
Return a copy of the current cache (tree)
TODO: use read lock on entire hashmap while making copy
Retrieve the state of the group.
Retrieves the current group state.
Get tenant to which this response is addressed to
Get tenant that was granted this lease.
Get tenant that owns this lease.
Get identifier of an object that requests the lease.
Get tenant, to which this request is addressed to.
Returns minimal lightweigth representation of this Vector Time
suitable for network transport
Get type of lease request.
Get type of lease request.
Get type of lease request.
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
returns the current view.
if the channel is not connected or if it is closed it will return null
gms - field in class org.jgroups.protocols.
GmsImpl gms - field in class org.jgroups.protocols.pbcast.
GmsImpl 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.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.
Chat 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).
The id of this request to distinguish among other requests from
the same RequestCorrelator
id - field in class org.jgroups.blocks.
Xid This method is called when service queries new state but received state
contains incorrect entries.
Incerements owners current vector value by 1
Increment 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.
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 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.
Called after instance has been created (null constructor) and before protocol is started.
init() - method in class org.jgroups.protocols.
UDP 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.
used to intitiailize complete DB access.
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.
Interrupted exception wrapped in a RuntimeException
Invokes the method with the supplied arguments against the target object.
Network-dependent address (Internet).
Check if duration is relative or absolute.
Check if duration is relative or absolute.
This method returns true
if inter-service communication
processes should temporarily stop sending messages to service channel.
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
Check if this service is a coordinator of service group.
Check if lease has expired.
Check if lease is expired.
Checks whether this is an address that represents multiple destinations,
e.g.
Checks whether this is an address that represents multiple destinations,
e.g.
Is the address a multicast address?
Checks whether this is an address that represents multiple destinations,
e.g.
Checks whether this is an address that represents multiple destinations,
e.g.
Determines whether the channel is open, ie.
returns true if the Open operation has been called successfully
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.
lbl - field in class org.jgroups.demos.wb.
Node Lease
interface represents a token granted by lease manager
that allows access to some resource for a limited period of time.
LeaseFactory
is responsible for granting new leases, renewing
existing leases and canceling leases when it is no longer needed.
LeaseFactoryClient
is an implementation of
LeaseFactory
interface that delegates lease granting to group containing one or more
LeaseFactoryService
instances.
Create instance of this class for specified client channel with
default timeouts.
Create instance of this class for the specified channel with specified
timeouts.
LeaseFactoryService
is service that is able to lease resources
to clients.
Create instance of this class.
This class represents granted lease that is replicated between services.
Create uninitialized instance of this object.
Create instance of this class.
Create instance of this class using request header.
Construct uninitialized instance of this object.
Create instance of this object for a specified lease info object.
Message header that represents lease request.
Create lease request header of the specified type with specified
duration.
Message header representing service response.
Create uninitialized instance of this class.
Create instance of this class of type either LEASE_GRANTED
or LEASE_RENEWED
.
Create instance of this class of type LEASE_CANCELED
or LEASE_RENEWED
.
The coordinator itself wants to leave the group
The coordinator itself wants to leave the group
Leave the Ensemble group specified in the Hot_GroupContext
leaving - field in class org.jgroups.protocols.pbcast.
GMS Members excluded from group, but for which no view has been received yet
The number of bytes in the buffer (usually buf.length is buf != null)
Implements a physical link between 2 parties (point-to-point connection).
One of the physical links went down
LinkedListQueue implementation based on java.util.Queue.
One of the physical links came up
List() - constructor for class org.jgroups.util.
List Adds the given interface address to the list of interfaces on which the receiver mcast
socket has to listen.
The address of this group member
The ID used by the message source to match replies from the
sequencer
This method performs voting on the specific decree between all
local voteListeners.
Locks an object with lockId
on behalf of the specified
owner
.
Obtain lock on obj
for specified owner
.
This class represents the lock
LockManager
represents generic lock manager that allows
obtaining and releasing locks on objects.
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.
log - static field in class org.jgroups.protocols.pbcast.
Digest log - field in class org.jgroups.protocols.
GmsImpl log - field in class org.jgroups.protocols.pbcast.
GmsImpl log - static field in class org.jgroups.util.
Queue log - static field in class org.jgroups.util.
Queue2 log - field in class org.jgroups.stack.
Router log - static field in class org.jgroups.protocols.
UDP1_4 log - static field in class org.jgroups.util.
Util Logical address that spans the lifetime of a member.
Use this constructor to create an instance, not the null-constructor
Implements a logical point-to-point link between 2 entities consisting of a number of physical links.
Makes copies of outgoing messages, swaps sender and receiver and sends the message back up the stack.
Example of a protocol layer.
low - field in class org.jgroups.util.
Range ltime - field in class org.jgroups.protocols.
GMS ltime - field in class org.jgroups.protocols.pbcast.
GMS Halts the application with the error specified by the String
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.
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.
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.
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.
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.
Prints this exception's stack trace to standard error.
Use with caution: lots of overhead
Prints this exception's stack trace to the provided stream.
Prints this exception's stack trace to the provided writer.
Use with caution: lots of overhead
Title: JGroups Communications
Description: Contact me at
filip@filip.net
Copyright: Copyright (c) 2002
Company: www.filip.net
Process request to cancel lease.
Process new lease request.
Process request to renew a lease.
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.
Propagate state change to other members.
props - field in class org.jgroups.protocols.
GMS 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.
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).
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.
Replicates the update to all members.
Replicates the update to all members.
Replicates the update to all members, and use locks at each member to ensure serializability.
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.
Replicates the update to all members.
Replicates the update to all members.
Replicated the update to all members, and use locks at each member to ensure serializability.
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 state of this object from object input.
Read object from external input.
Read state of this object from ObjectInput
Read state of this object from object input stream.
Read state of this object from object input.
Read the header from the given stream
Obtain the read lock immediatelly or throw an exception if an
attempt to get the read lock would block this call
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.
Called when data has been received on a socket.
Called when data has been received on a socket.
Receives a message, a view change or a block event.
Receives data sent by a sender to all group members and applies update to locally replicated data.
Calls the receiver callback.
Receive message from group.
ConnectionTable.Receiver interface
Buffer for incoming unicast packets
Called when Ensemble receives a Cast from your group
Heartbeat came back again (before link was taken down) after missing some heartbeats
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
Callback (called by RequestCorrelator or Transport).
Called when Ensemble receives a point-to-point message for you
Event.SUSPECT event received from a layer below
All response collectors currently registered will
be notified that
mbr
may have crashed, so they won't
wait for its response.
This method is overridden to avoid hanging on getDigest(): when a JOIN is received, the coordinator needs
to retrieve the digest from the PBCAST layer.
Internal method, should not be called by clients.
We need to receive this event out-of-band, otherwise we would block.
Event.VIEW_CHANGE event received from a layer below
Mark all responses from members that are not in new_view as
NOT_RECEIVED.
Tries to establish connection to router.
This exception indicates that lease factory has undecided lease request
for the specified lease target and from specified tenant.
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.
sets a listener to messages with a given identifier messages sent with this identifier in there header will be routed to this listener
note: there could be only one listener for one identifier, if you want to register a different listener to an already registered identifier then unregister first
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.
Returns the first entry (with the lowest seqno) from the received_msgs map if its associated message is not
null, otherwise returns null.
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 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.
Replicates the update to all members.
Replicates the update to all members.
Replicated the update to all members, and use locks at each member to ensure serializability.
Remove obj
from all receiver sets and wake up
retransmission thread.
Remove addr
from connection table.
removes an member from the membership.
Used to remove existing entry
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 all the members contained in v from this membership
For internal use only ! Don't use this method !
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.
For internal use only ! Don't use this method !
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).
Request a new view in the group specified by the Hot_GroupContext
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.
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 the group request, so it can be reused for another execution.
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()
.
When the application receives a getState() message on the receive() method,
it should call returnState() to reply with the state of the application
Discards all changes done within the current transaction.
Discard all modifications and release all locks.
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.
Dispatches and receives remote group method calls.
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.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.
Lock allowing multiple reads or a single write.
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.
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
Save new NV pair as serializable objects or if already exist; store
new state
Used to save all row entries for the map in 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
Send a Hot_Message to member specified by the Hot_Endpoint in the group
specified by the Hot_GroupContext
Sends a message to a (unicast) destination.
Sends a message to a unicast destination.
implementation of the Transport interface.
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.
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.
seq_id
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.
ServiceRunner
is utility class that runs services in standalone
mode.
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.
Set the internal buffer to point to a subset of a given buffer
Interprets the bytes as a serialized object and sets the contained reference
to the unserialized version of the serialized object
Allows to be notified when a channel event such as connect, disconnect or close occurs.
Switch the deadlock detection mechanism on/off
Set whether or not to display lots of debug information.
Sets the default replication mode.
Send down a SET_DIGEST event
Set message listener for service message channel.
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.
sets a channel option
the options can be either
Channel.BLOCK
Channel.VIEW
Channel.SUSPECT
Channel.LOCAL
Channel.GET_STATE_EVENTS
Channel.AUTO_RECONNECT
Channel.AUTO_GETSTATE
There are certain dependencies between the options that you can set, I will try to describe them here
Option: Channel.VIEW option
Value: java.lang.Boolean
Result: set to true the JChannel will receive VIEW change events
Option: Channel.SUSPECT
Value: java.lang.Boolean
Result: set to true the JChannel will receive SUSPECT events
Option: Channel.BLOCK
Value: java.lang.Boolean
Result: set to true will set setOpt(VIEW, true) and the JChannel will receive BLOCKS and VIEW events
Option: GET_STATE_EVENTS
Value: java.lang.Boolean
Result: set to true the JChannel will receive state events
Option: LOCAL
Value: java.lang.Boolean
Result: set to true the JChannel will receive messages that it self sent out.
Option: AUTO_RECONNECT
Value: java.lang.Boolean
Result: set to true and the JChannel will try to reconnect when it is being closed
Option: AUTO_GETSTATE
Value: java.lang.Boolean
Result: set to true, the AUTO_RECONNECT will be set to true and the JChannel will try to get the state after a close and reconnect happens
Setup the Protocol instance acording to the configuration string
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.
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.
Setup the Protocol instance acording to the configuration string
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
Setup the Protocol instance acording to the configuration string
The following properties are being read by the UDP protocol
param mcast_addr - the multicast address to use default is 228.8.8.8
param mcast_port - (int) the port that the multicast is sent on default is 7600
param ip_mcast - (boolean) flag whether to use IP multicast - default is true
param ip_ttl - Set the default time-to-live for multicast packets sent out on this socket.
Setup the Protocol instance acording to the configuration string
The following properties are being read by the UDP protocol
param mcast_addr - the multicast address to use default is 224.0.0.200
param mcast_port - (int) the port that the multicast is sent on default is 7500
param ip_mcast - (boolean) flag whether to use IP multicast - default is true
param ip_ttl - Set the default time-to-live for multicast packets sent out on this socket.
Configures the protocol initially.
Configures the protocol initially.
Setup the Protocol instance acording to the configuration string
Called when a ProtocolObserver is attached to a protcol.
Sets the result and notifies any threads
waiting for it
Set the cache (tree) to this value
TODO: use write lock on entire hashmap to set state
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).
Don't use this method; used by unit testing only.
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.
Used to handle shutdown call the PersistenceManager implementation.
provide a signature, similar to JMX
size - field in class org.jgroups.util.
List Protocol which prints out the real size of a message.
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.
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
Returns size of the header
returns the number of members in this view
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.
Computes the broadcast messages that are stable, i.e.
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 standalone thread that will run until explicitly stopped.
start() - method in class org.jgroups.protocols.
BSH 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.
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
DON'T REMOVE ! 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
DON'T REMOVE ! This prevents the up-handler thread to be created, which is not needed in the protocol.
DON'T REMOVE ! 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.
DON'T REMOVE ! 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.
DON'T REMOVE ! 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 !
Indicates whether the state was retrieved correctly (even a null state if we are the first member)
New STATE_TRANSFER protocol based on PBCAST.
Wraps data for a state request/response.
Contains parameters for state transfer.
STOP - static field in class org.jgroups.
Event Stop standalone thread started with start()
method.
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.
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.
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 !
This method is called when a member of service group is suspected to
be failed.
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 when a member is suspected
Notify membership listener that some node was suspected.
Called when a member is suspected
Called when a member is suspected
Called when a member is suspected
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 when a member is suspected
NOT SUPPORTED CURRENTLY IN THE ML
members are made available so that the top level user can dump
appropriate members on to his stack trace
members are made available so that the top level user can dump
appropriate members on to his stack trace
tail - field in class org.jgroups.util.
List The interface that submitted tasks must implement
TCP - class org.jgroups.protocols.
TCP TCP based protocol.
TCP() - constructor for class org.jgroups.protocols.
TCP 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 (used by the GMS when started
by sending event FIND_INITIAL_MBRS down the stack).
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.
Fixed-delay & fixed-rate single thread scheduler
The scheduler supports varying scheduling intervals by asking the task
every time for its next preferred scheduling interval.
Create a scheduler that executes tasks in dynamically adjustable
intervals
Create a scheduler that executes tasks in dynamically adjustable
intervals
Demonstrates the membership service.
Tosses a coin weighted with probability and returns true or false.
Get the string representation of the protocol.
Get the string representation of the address.
prints the size of the queue
prints the size of the queue
prints the size of the queue
return String representation of the VectorTime
Tries to read an object from the message's buffer and prints it
Implements the total ordering layer using a message sequencer
The protocol guarantees that all bcast sent messages will be delivered in
the same order to all members.
class TOTAL_OLD extends Protocol
TODO: (more comments)
Sequencer based total ordering protocol layer
- requires the following layers "below" it in the stack
(or layers with equivalent functionality):
GMS, FD, PING, UDP, ...
class TotalHeader
The header that is prepended to every message passed down through the TOTAL_OLD layer
and removed (and processed) from every message passed up through the TOTAL_OLD layer
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.
Prints (or does not print) the specified string to standard error
based upon the debug flag
Hashtable which replicates its contents to all members of the group.
The protocol layer to use to pass up/down messages.
This adapter introduces simple two-phase voting on a specified decree.
Creats an instance of the class.
Implementations of this interface can participate in two-phase voting process.
Wrapper of the decree to voting decree.
Type of header: request or reply
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.
vid - field in class org.jgroups.
View A view is a local representation of the current membership of a group
Only one view is installed in a channel at a time
Views contain the address of its creator, an ID and a list of member addresses
These adresses are ordered, and the first address is always the coordinator of the view
This way, each member of the group knows who the new coordinator will be if the current one
crashes or leaves the 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.
view_id - field in class org.jgroups.protocols.
GMS view_id - field in class org.jgroups.protocols.pbcast.
GMS This method is called when new view is installed.
Called by JGroups to notify the target object of a change of membership.
Called by JGroups to notify the target object of a change of membership.
Called by JGroups to notify the target object of a change of membership.
Notify membership listener that new view was accepted.
Called by JGroups to notify the target object of a change of membership.
Called by JGroups to notify the target object of a change of membership.
Called by JGroups to notify the target object of a change of membership.
Called by JGroups to notify the target object of a change of membership.
Called by JGroups to notify the target object of a change of membership.
Called by JGroups to notify the target object of a change of membership.
Callback for notification about the new view of the group.
Called by JGroups to notify the target object of a change of membership.
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 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.
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.