All Classes and Interfaces
Class
Description
Used to send AppendEntries messages to cluster members.
The result of an AppendEntries request
It's a growable ring buffer that allows to move tail/head sequences, clear, append, set/replace at specific positions.
RAFT Implementation of
AsyncCounter.Abstract leader election algorithm functionalities.
Blocks while handling a message.
Client which accesses the
CLIENT protocol through a socket.Protocol listening on a socket for client requests.
Client stub which accesses a remote server via the
CLIENT protocol through a socket.Keeps track of next_index and match_index for each cluster member (excluding this leader).
Provides a consensus based distributed counter (similar to AtomicLong) which can be atomically updated across a cluster.
Demo of CounterService.
Sample state machine accepting additions and subtractions
Defines the contract to add and remove servers (RAFT.members).
The default leader election algorithm.
A leader election protocol.
A
Log implementation stored in a file.A mapping between the RAFT log index and where the log entry is stored in a file.
Creates
FileChannel.Base class to store data in a file.
Implements the behavior of a RAFT follower
An in-memory
Log implementation without any persistence.Internal command to be added to the log, e.g. adding or removing a server
Implements the behavior of a RAFT leader
Sent by the freshly elected leader to all members (-self)
Implements the behavior of a learner node.
Deprecated, for removal: This API element is subject to removal in a future version.
The interface for a persistent log.
Bounded caching
Log facade.List of
LogEntry elements, provides efficient serialization.An element in a log.
Stores the
LogEntry into a file.Stores the RAFT log metadata in a file.
Base class for the cluster implementations in the test framework.
Intercepts JOIN and MERGE requests on the coordinator and rejects members whose addition would lead to members
with duplicate raft-ids in the view.
Options to pass to
Settable.setAsync(byte[], int, int) callManipulate the cluster during tests.
Responsible for a node's internal state.
This class is here solely for the purpose of encapsulating the
PmemUtil class so we do not load it unless
necessary, allowing this to be an optional dependency.Utilized during the pre-voting phase to ask nodes information about their leader.
Utilized during the pre-voting phase to return information about the current seen leader.
Demos
ReplicatedStateMachine.Iterates over all concrete Protocol classes and creates tables with Protocol's properties.
Implementation of the RAFT consensus protocol in JGroups
Generated by
Settable.setAsync(byte[], int, int)Received by up(Message) or up(MessageBatch)
TODO!
Orchestrates a number of
RaftNode objects, to be used in a unit test, for example a leader and a follower.TODO!
Main interaction point for applications with jgroups-raft.
Base class for the different roles a RAFT node can have (follower, candidate, leader)
Keep track of part of the algorithm state.
TODO!
Utilities for developing tests with Raft.
Repository for read-only operations.
Protocol that redirects RAFT commands from clients to the actual RAFT leader.
A key-value store replicating its contents with RAFT via consensus
Client connecting to a remote
ReplicatedStateMachineDemo.Demos
ReplicatedStateMachineDummy replicated hashmap state machine
Keeps track of
AppendEntriesRequest messages and responses.Interface to make changes to the Raft state machine.
Interface of a state machine which stores data in memory.
FileBasedLog.