Uses of Interface
org.jgroups.Lifecycle
Packages that use Lifecycle
Package
Description
Provides building blocks that are layered on top of channels.
Provides implementations of transport protocols which are
responsible for sending and receiving messages to/from the network.
Support for managing protocol stacks.
Provides useful functionality which cannot be assigned to any particular other package.
-
Uses of Lifecycle in org.jgroups.admin
Classes in org.jgroups.admin that implement LifecycleModifier and TypeClassDescriptionclassClass to manage JGroups-internal cluster wide requests and responses (https://redhat.atlassian.net/browse/JGRP-3043). -
Uses of Lifecycle in org.jgroups.blocks
Classes in org.jgroups.blocks that implement Lifecycle -
Uses of Lifecycle in org.jgroups.fork
Classes in org.jgroups.fork that implement LifecycleModifier and TypeClassDescriptionclassActs as bottom protocol of a fork-stack.classProtocol stack which maintains the mapping between fork-channel IDs and ForkChannels -
Uses of Lifecycle in org.jgroups.protocols
Classes in org.jgroups.protocols that implement LifecycleModifier and TypeClassDescriptionclassEncrypts and decrypts communication in JGroups by using a secret key distributed to all cluster members by the key server (coordinator) using asymmetric (public/private key) encryption.
The secret key is identical for all cluster members and is used to encrypt messages when sending and decrypt them when receiving messages.classThe AUTH protocol adds a layer of authentication to JGroups.classAll messages up the stack have to go through a barrier (read lock, RL).classShared base class for TCP protocolsclassBatches messages near the top of the stack.classBroadcast PING.classProtocol which clears a set of flags in the down or up direction for all messagesclassCompresses the payload of a message.classProtocol which is used byCounterServiceto provide a distributed atomic counterclassImplementation of daisy chaining.classDelays incoming/outgoing messages by a random number of milliseconds (range between 0 and n where n is determined by the user) and nanoseconds (constant amount).classKey exchange based on Diffie-Hellman-Merkle (https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange).
Diffie-Hellman is used between a member and a key server (the coordinator) to obtain a session key (only known to the key server and the joiner) which is used by the key server to encrypt the shared secret symmetric (group) key and by the requester to decrypt the group key it gets in the response of the key server.classDiscards 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.classDiscards a message whose sequence number (in the payload, as a Long) matches seqno 2 times, before passing it down.classThe Discovery protocol retrieves the initial membership (used by GMS and MERGE3) by sending discovery requests.classProtocol which drops up or down messages according to user-defined filtersclassDuplicates outgoing or incoming messages by copying themclassEncrypt<E extends KeyStore.Entry>Super class of symmetric (SYM_ENCRYPT) and asymmetric (ASYM_ENCRYPT) encryption protocols.classExample of a protocol layer.classBase class for all failure detection protocolsclassFailure detection based on simple heartbeat protocol.classFailure detection based on simple heartbeat protocol.classFailure detection based on simple heartbeat protocol.classFailure detection protocol which detects the crash or hanging of entire hosts and suspects all cluster members on those hosts.classFailure detection protocol based on sockets.classFailure detection protocol based on TCP connections, successor toFD_SOCK.classSimple discovery protocol which uses a file on shared storage such as an SMB share, NFS mount or S3.classSimple flow control protocol based on a credit system.classThe FORK protocol; multiplexes messages to different forks in a stack (https://issues.redhat.com/browse/JGRP-1613).classFragmentation layer.classFragmentation layer.classFragmentation protocol which uses less memory to store fragments thanFRAG2.
When a message is fragmented, all fragments carry the size of the original message, their offset and length with respect to the original message and a fragment ID (to identify the fragment).
When the first fragment is received, the full message is created and each fragment copies its data into the full message at its offset and length.classFragmentation layer.classBase class for all fragmentation protocols.classPrints the headers of all sent or received messagesclassSimple protocol to inject an arbitrary view on one or more cluster nodes.classDiscovery protocol using a JDBC connection to a shared database.classNew version ofJDBC_PING.classBase class for protocols implementing key exchange: a secret key to be used for encryption is exchanged between 2 parties (usually the key server and a new cluster member) securely; ie.classDiscovery protocol for finding members in the local process only.classIntercepts individual up messages and creates batches from them, passing the batches up.classProtocol to discover subgroups; e.g., existing due to a network partition (that healed).classSimple flow control protocol based on a credit system.classUses its own IP multicast socket to send and receive discovery requests/responses.classNegative AcKnowledgement layer (NAKs).classNew multicast protocol based on fixed-size xmit windows and message ACKs
Details: https://issues.redhat.com/browse/JGRP-2780classDetects sends during processing of incoming messages and sets flagMessage.TransientFlag.DONT_BLOCKto prevent blocking the incoming thread on a send.
JIRA: https://issues.redhat.com/browse/JGRP-2772classPersistent Discovery Cache.classProtocol measuring latency between stacks.classThe PING protocol retrieves the initial membership by mcasting a discovery request (via the multicast capable transport) to all current cluster membersclassDiscovery protocol based on Rackspace Cloud Files storage solutionclassMeasures incoming and outgoing rates: messages/sec, bytes/sec.classProtocol which sends at most max_bytes in time_period milliseconds.classRate limiter based credits (max_bytes).classDeprecated, for removal: This API element is subject to removal in a future version.Functionality replaced by PerDestinationBundler, see https://redhat.atlassian.net/browse/JGRP-3027classBase class for reliable multicast protocolsclassBase class for reliable unicast protocolsclassReverses the next N messages that are received.classclassProtocol which implements synchronous messages (https://issues.redhat.com/browse/JGRP-1389).classImplementation of total order protocol using a sequencer.classImplementation of total order protocol using a sequencer_uum.classSerializes the entire message (including payload, headers, flags and destination and src) into the payload of another message that's then sent.classLoopback transport shared by all channels within the same VM.classDiscovery protocol running overSHARED_LOOPBACKonly.classReorders messages by buffering them and shuffling the result after TIMEOUT ms.classProtocol which lists how many messages have been received by size: https://issues.redhat.com/browse/JGRP-2893
Don't use this layer in a production stack since the costs are high; only use for debugging/diagnosis.classRecords number of messages sent/received based on sizeclassProtocol trying to print message payloads as stringsclassPeriodically fetches some attributes and writes them to a file (https://issues.redhat.com/browse/JGRP-2402)classKey exchange based on SSL sockets.classProvides various statsclassProtocol which provides STOMP (https://stomp.github.io/) support.classDiscovery protocol based on Openstack Swift (object storage).classEncrypts and decrypts communication in JGroups by using a secret key shared by all cluster members.classTCP based protocol.classProtocol using TCP/IP to send and receive messages.classThe TCPGOSSIP protocol layer retrieves the initial membership (used by GMS when started by sending event FIND_INITIAL_MBRS down the stack).classThe TCPPING protocol defines a static cluster membership.classMaintains averages of up- and down-threadsclassProtocol measuring delivery times.classGeneric transport - specific implementations should extend this class.classBase class forTPwhich captures fields and accessors.classclassReplacement for UDP.classIP multicast transport based on UDP.classSimple flow control protocol based on a credit system.classInterceptsProtocol.up(MessageBatch)and passes up each message of a message batch as a single message.classUnbatches OOB batches when enabled and virtual threads are available.
https://issues.redhat.com/browse/JGRP-2888classReliable unicast protocol using a combination of positive and negative acks.classNew unicast protocol based on fixed-size xmit windows and message ACKs
Details: https://issues.redhat.com/browse/JGRP-2843classCatches SUSPECT events traveling up the stack.classDouble-checks that a suspected member is really dead.
Details: https://issues.redhat.com/browse/JGRP-2558
Design: https://github.com/belaban/JGroups/blob/master/doc/design/VERIFY_SUSPECT2.txtclassMaintains a version number and adds it to all outbound messages. -
Uses of Lifecycle in org.jgroups.protocols.dns
Classes in org.jgroups.protocols.dns that implement Lifecycle -
Uses of Lifecycle in org.jgroups.protocols.pbcast
Classes in org.jgroups.protocols.pbcast that implement LifecycleModifier and TypeClassDescriptionclassGroup membership protocol.classNegative AcKnowledgement layer (NAKs).classComputes the broadcast messages that are stable; i.e., have been delivered by all members.classSTATE streams the state (written to an OutputStream) to the state requester in chunks (defined by chunk_size).classSTATE_SOCKhas the state provider create a server socket to which the state requester connects and from which the latter reads the state.classSTATE_TRANSFER protocol based on byte array transfer.classBase class for state transfer protocols which use streaming (or chunking) to transfer state between two members. -
Uses of Lifecycle in org.jgroups.protocols.relay
Classes in org.jgroups.protocols.relay that implement LifecycleModifier and TypeClassDescriptionclassclassDesign: ./doc/design/RELAY2.txt and at https://github.com/belaban/JGroups/blob/master/doc/design/RELAY2.txt.classProvides relaying of messages between autonomous sites.
Design: ./doc/design/RELAY2.txt and at https://github.com/belaban/JGroups/blob/master/doc/design/RELAY2.txt.
JIRA: https://issues.redhat.com/browse/JGRP-1433 -
Uses of Lifecycle in org.jgroups.stack
Subinterfaces of Lifecycle in org.jgroups.stackModifier and TypeInterfaceDescriptioninterfacePolicy which decides how to process a received message or message batch.Classes in org.jgroups.stack that implement LifecycleModifier and TypeClassDescriptionclassThe Protocol class provides a set of common services for protocol layers.classA ProtocolStack manages a number of protocols layered above each other. -
Uses of Lifecycle in org.jgroups.util
Classes in org.jgroups.util that implement LifecycleModifier and TypeClassDescriptionclassUsed to execute asynchronous tasks, e.g.classMessageProcessingPolicywhich processes regular messages and message batches by assigning a max of 1 thread per message from the same sender.classA dummy implementation ofTPclassMessageProcessingPolicywhich passes all messages and message batches up directly (on the same thread).classMessageProcessingPolicywhich passes regular messages and message batches up directly (on the same thread), but passes OOB messages to the thread pool.classDefault message processing policy.classThread pool based onThreadPoolExecutorclassclassSame asMaxOneThreadPerSender, but for OOB message batches, every message of the batch is passed to the thread pool separately (https://issues.redhat.com/browse/JGRP-2800).