Show / Hide Table of Contents

Interface IRaftCluster

Represents cluster of nodes coordinated using Raft consensus protocol.

Inherited Members
IReplicationCluster<IRaftLogEntry>.ReplicateAsync<TEntryImpl>(TEntryImpl, CancellationToken)
IReplicationCluster.ForceReplicationAsync(CancellationToken)
IReplicationCluster.ReplicationCompleted
ICluster.Leader
ICluster.WaitForLeaderAsync(TimeSpan, CancellationToken)
ICluster.LeaderChanged
ICluster.ResignAsync(CancellationToken)
IPeerMesh<IClusterMember>.TryGetPeer(EndPoint)
IPeerMesh.Peers
IPeerMesh.PeerDiscovered
IPeerMesh.PeerGone
Namespace: DotNext.Net.Cluster.Consensus.Raft
Assembly: DotNext.Net.Cluster.dll
Syntax
public interface IRaftCluster : IReplicationCluster<IRaftLogEntry>, IReplicationCluster, ICluster, IPeerMesh<IClusterMember>, IPeerMesh<IRaftClusterMember>, IPeerMesh

Fields

| Edit this page View Source

LocalAddressMeterAttributeName

Represents metrics attribute containing the address of the local node.

Declaration
protected const string LocalAddressMeterAttributeName = "dotnext.raft.server.address"
Field Value
Type Description
string

Properties

| Edit this page View Source

AuditTrail

Defines persistent state for the Raft-based cluster.

Declaration
IPersistentState AuditTrail { get; set; }
Property Value
Type Description
IPersistentState
| Edit this page View Source

ConsensusToken

Gets a token that remains non-canceled while the local node is a part of the majority of the cluster and has communication with the leader.

Declaration
CancellationToken ConsensusToken { get; }
Property Value
Type Description
CancellationToken
Remarks

The token moves to canceled state if the current node upgrades to the candidate state or loses connection with the leader.

| Edit this page View Source

ElectionTimeout

Gets election timeout used by local cluster member.

Declaration
TimeSpan ElectionTimeout { get; }
Property Value
Type Description
TimeSpan
| Edit this page View Source

LeadershipToken

Gets the token that can be used to track leader state.

Declaration
CancellationToken LeadershipToken { get; }
Property Value
Type Description
CancellationToken
Remarks

The token moves to canceled state if the current node downgrades to the follower state.

| Edit this page View Source

Members

Gets a set of visible cluster members.

Declaration
IReadOnlyCollection<IRaftClusterMember> Members { get; }
Property Value
Type Description
IReadOnlyCollection<IRaftClusterMember>
| Edit this page View Source

Readiness

Represents a task indicating that the current node is ready to serve requests.

Declaration
Task Readiness { get; }
Property Value
Type Description
Task
| Edit this page View Source

Term

Gets term number used by Raft algorithm to check the consistency of the cluster.

Declaration
long Term { get; }
Property Value
Type Description
long

Methods

| Edit this page View Source

ApplyReadBarrierAsync(CancellationToken)

Ensures linearizable read from underlying state machine.

Declaration
ValueTask ApplyReadBarrierAsync(CancellationToken token = default)
Parameters
Type Name Description
CancellationToken token

The token that can be used to cancel the operation.

Returns
Type Description
ValueTask

The task representing asynchronous result.

Exceptions
Type Condition
OperationCanceledException

The operation has been canceled.

| Edit this page View Source

TryGetLeaseToken(out CancellationToken)

Tries to get the lease that can be used to perform the read with linearizability guarantees.

Declaration
bool TryGetLeaseToken(out CancellationToken token)
Parameters
Type Name Description
CancellationToken token

The token representing lease.

Returns
Type Description
bool

true if the current node is leader; otherwise, false.

| Edit this page View Source

WaitForLeadershipAsync(TimeSpan, CancellationToken)

Waits until the local node is elected as the leader.

Declaration
ValueTask<CancellationToken> WaitForLeadershipAsync(TimeSpan timeout, CancellationToken token = default)
Parameters
Type Name Description
TimeSpan timeout

The time to wait; or InfiniteTimeSpan.

CancellationToken token

The token that can be used to cancel the operation.

Returns
Type Description
ValueTask<CancellationToken>

The leadership token.

Exceptions
Type Condition
TimeoutException

The operation is timed out.

OperationCanceledException

The operation has been canceled.

ObjectDisposedException

The local node is disposed.

See Also
LeadershipToken

Extension Methods

BasicExtensions.As<T>(T)
BasicExtensions.GetUserData<T>(T)
BasicExtensions.IsBetween<T, TLowerBound, TUpperBound>(T, TLowerBound, TUpperBound)
BasicExtensions.IsOneOf<T>(T, ReadOnlySpan<T>)
ExpressionBuilder.Const<T>(T)
RaftClusterExtensions.ReplicateAsync(IRaftCluster, ReadOnlyMemory<byte>, object?, CancellationToken)
RaftClusterExtensions.ReplicateAsync<T>(IRaftCluster, T, object?, CancellationToken)
RaftClusterExtensions.ReplicateJsonAsync<T>(IRaftCluster, T, object?, CancellationToken)
AsyncLockAcquisition.AcquireLockAsync<T>(T, CancellationToken)
AsyncLockAcquisition.AcquireLockAsync<T>(T, TimeSpan, CancellationToken)
AsyncLockAcquisition.AcquireReadLockAsync<T>(T, CancellationToken)
AsyncLockAcquisition.AcquireReadLockAsync<T>(T, TimeSpan, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, bool, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, bool, TimeSpan, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, TimeSpan, CancellationToken)
LockAcquisition.AcquireReadLock<T>(T)
LockAcquisition.AcquireReadLock<T>(T, TimeSpan)
LockAcquisition.AcquireUpgradeableReadLock<T>(T)
LockAcquisition.AcquireUpgradeableReadLock<T>(T, TimeSpan)
LockAcquisition.AcquireWriteLock<T>(T)
LockAcquisition.AcquireWriteLock<T>(T, TimeSpan)
  • Edit this page
  • View Source
☀
☾
In this article
Back to top
Supported by the .NET Foundation
☀
☾