API Diff between 3.2.1 and 5.0.0
161 Additions
145 Removals
DotNext.Diagnostics
DotNext.Net
DotNext.Net.Cluster
DotNext.Net.Cluster.Consensus
DotNext.Net.Cluster.Consensus.Raft
-
public struct BinaryLogEntry : IBinaryLogEntry, IRaftLogEntry, ILogEntry, IDataTransferObject
-
public struct BinaryLogEntry<T> : IBinaryLogEntry, IRaftLogEntry, ILogEntry, IDataTransferObject where T : IBinaryFormattable<T>
-
public struct BufferedLogEntry : IRaftLogEntry, ILogEntry, IDataTransferObject, IDisposable
-
public struct BufferedLogEntryList : IDisposable, IReadOnlyList<BufferedLogEntry>, IEnumerable<BufferedLogEntry>, IEnumerable, IReadOnlyCollection<BufferedLogEntry>
-
public struct BufferedRaftLogEntry : IRaftLogEntry, ILogEntry, IDataTransferObject, IDisposable
-
public struct BufferedRaftLogEntryList : IDisposable, IReadOnlyList<BufferedRaftLogEntry>, IEnumerable<BufferedRaftLogEntry>, IEnumerable, IReadOnlyCollection<BufferedRaftLogEntry>
-
public sealed class ConsensusOnlyState : Disposable, IPersistentState, IAuditTrail<IRaftLogEntry>, IAuditTrail
- public long LastCommittedEntryIndex { get; }
- public long LastEntryIndex { get; }
- public long Term { get; }
- public ValueTask<TResult> ReadAsync<TResult>(ILogEntryConsumer<IRaftLogEntry, TResult> reader, long startIndex, long endIndex, CancellationToken token)
- public ValueTask<TResult> ReadAsync<TResult>(ILogEntryConsumer<IRaftLogEntry, TResult> reader, long startIndex, CancellationToken token)
- public long GetLastIndex(bool committed)
- public ValueTask<TResult> ReadAsync<TResult>(LogEntryConsumer<IRaftLogEntry, TResult> reader, long startIndex, long endIndex, CancellationToken token)
- public ValueTask<TResult> ReadAsync<TResult>(LogEntryConsumer<IRaftLogEntry, TResult> reader, long startIndex, CancellationToken token)
-
public abstract class DiskBasedStateMachine : PersistentState
-
public struct ElectionTimeout
-
public static class ElectionTimeoutExtensions
-
public struct EmptyLogEntry : IRaftLogEntry, ILogEntry, IDataTransferObject
-
public enum HeartbeatResult
-
public interface IClusterMemberConfiguration
-
public interface IPersistentState : IAuditTrail<IRaftLogEntry>, IAuditTrail
-
public interface IRaftCluster : IReplicationCluster<IRaftLogEntry>, IReplicationCluster, ICluster
-
public interface IRaftClusterMember : IClusterMember
- protected const string MessageTypeAttributeName = "dotnext.raft.client.message"
- protected const string RemoteAddressMeterAttributeName = "dotnext.raft.client.address"
- Task<Result<HeartbeatResult>> AppendEntriesAsync<TEntry, TList>(long term, TList entries, long prevLogIndex, long prevLogTerm, long commitIndex, IClusterConfiguration config, bool applyConfig, CancellationToken token) where TEntry : IRaftLogEntry where TList : IReadOnlyList<TEntry>
- ref long NextIndex { get; }
- Task<Result<bool>> AppendEntriesAsync<TEntry, TList>(long term, TList entries, long prevLogIndex, long prevLogTerm, long commitIndex, CancellationToken token) where TEntry : IRaftLogEntry where TList : IReadOnlyList<TEntry>
- Task<Result<HeartbeatResult>> InstallSnapshotAsync(long term, IRaftLogEntry snapshot, long snapshotIndex, CancellationToken token)
- Task<Result<PreVoteResult>> PreVoteAsync(long term, long lastLogIndex, long lastLogTerm, CancellationToken token)
- Task<long?> SynchronizeAsync(long commitIndex, CancellationToken token)
- Task<Result<bool>> InstallSnapshotAsync(long term, IRaftLogEntry snapshot, long snapshotIndex, CancellationToken token)
- Task<Result<bool>> PreVoteAsync(long term, long lastLogIndex, long lastLogTerm, CancellationToken token)
-
public struct JsonLogEntry<T> : IRaftLogEntry, ILogEntry, IDataTransferObject
-
public class LogEntriesBufferingOptions : LogEntryBufferingOptions
-
public class LogEntryBufferingOptions
-
public abstract class MemoryBasedStateMachine : PersistentState
-
public class MetricsCollector : ILeaderStateMetrics, IFollowerStateMetrics
-
public class PersistentState : Disposable, IPersistentState, IAuditTrail<IRaftLogEntry>, IAuditTrail, IAsyncDisposable
- public sealed class InternalStateBrokenException : IntegrityException
- public enum CompactionMode
- public enum LogEntryCacheEvictionPolicy
- public enum WriteMode
- public long LastCommittedEntryIndex { get; }
- public long LastEntryIndex { get; }
- protected DirectoryInfo Location { get; }
- protected abstract class SnapshotBuilder : Disposable, IRaftLogEntry, ILogEntry, IDataTransferObject
- public struct WriteLockToken : IDisposable
- protected Memory<byte> Buffer { get; }
- public long CompactionCount { get; }
- public bool IsBackgroundCompaction { get; }
- public PersistentState(DirectoryInfo path, int recordsPerPartition, Options configuration = null)
- public PersistentState(string path, int recordsPerPartition, Options configuration = null)
- public Task<WriteLockToken> AcquireWriteLockAsync(TimeSpan timeout, CancellationToken token = default)
- public Task<WriteLockToken> AcquireWriteLockAsync(CancellationToken token)
- public Task<bool> AppendAndEnsureCommitAsync<TEntry>(TEntry entry, TimeSpan timeout, bool addToCache = false, CancellationToken token = default) where TEntry : IRaftLogEntry
- public ValueTask AppendAsync<TEntry>(ref WriteLockToken writeLock, TEntry entry, long startIndex) where TEntry : IRaftLogEntry
- public ValueTask<long> AppendAsync<TEntry>(ref WriteLockToken writeLock, TEntry entry, bool flush = true, CancellationToken token = default) where TEntry : IRaftLogEntry
- protected virtual Task ClearAsync(CancellationToken token = default)
- protected virtual ValueTask ApplyAsync(LogEntry entry)
- public BinaryLogEntry CreateBinaryLogEntry(ReadOnlyMemory<byte> content)
- public BinaryLogEntry<T> CreateBinaryLogEntry<T>(T content) where T : IBinaryFormattable<T>
- public JsonLogEntry<T> CreateJsonLogEntry<T>(T content) where T : IJsonSerializable<T>
- public void DbgChangeLastIndex(long index)
- public JsonLogEntry<T> CreateJsonLogEntry<T>(T content, string typeId = null, JsonSerializerOptions options = null)
- protected virtual SnapshotBuilder CreateSnapshotBuilder()
- public ValueTask DisposeAsync()
- public Task EnsureConsistencyAsync(TimeSpan timeout, CancellationToken token)
- protected virtual ValueTask FlushAsync()
- public ValueTask ForceCompactionAsync(long count, CancellationToken token)
- public long GetLastIndex(bool committed)
- public ValueTask<TResult> ReadAsync<TResult>(ILogEntryConsumer<IRaftLogEntry, TResult> reader, long startIndex, long endIndex, CancellationToken token = default)
- public ValueTask<TResult> ReadAsync<TResult>(ILogEntryConsumer<IRaftLogEntry, TResult> reader, long startIndex, CancellationToken token = default)
- public ValueTask WaitForCommitAsync(CancellationToken token = default)
- public ValueTask WaitForCommitAsync(long index, CancellationToken token = default)
- public ValueTask<TResult> ReadAsync<TResult>(LogEntryConsumer<IRaftLogEntry, TResult> reader, long startIndex, long endIndex, CancellationToken token = default)
- public ValueTask<TResult> ReadAsync<TResult>(LogEntryConsumer<IRaftLogEntry, TResult> reader, long startIndex, CancellationToken token = default)
- public Task ReplayAsync(CancellationToken token = default)
- public bool Validate(ref WriteLockToken token)
- public Task<bool> WaitForCommitAsync(TimeSpan timeout, CancellationToken token)
- public Task<bool> WaitForCommitAsync(long index, TimeSpan timeout, CancellationToken token)
-
public enum PreVoteResult
-
public class RaftCluster : RaftCluster<RaftClusterMember>, ILocalMember
-
public abstract class RaftCluster<TMember> : Disposable, IRaftCluster, IReplicationCluster<IRaftLogEntry>, IReplicationCluster, ICluster, IRaftStateMachine, IAsyncDisposable where TMember : IRaftClusterMember, IDisposable
- public sealed class ConcurrentMembershipModificationException<TMember> : RaftProtocolException where TMember : IRaftClusterMember, IDisposable
- protected struct MemberCollectionBuilder<TMember> where TMember : IRaftClusterMember, IDisposable
- protected sealed delegate MemberCollectionMutator<TMember> : MulticastDelegate where TMember : IRaftClusterMember, IDisposable
- protected sealed delegate MemberCollectionMutator<TMember, T> : MulticastDelegate where TMember : IRaftClusterMember, IDisposable
- protected struct MemberHolder<TMember> where TMember : IRaftClusterMember, IDisposable
- protected abstract IClusterConfigurationStorage ConfigurationStorage { get; }
- protected IEqualityComparer<EndPoint> EndPointComparer { get; }
- public Func<TimeSpan, TMember, IFailureDetector> FailureDetectorFactory { get; set; }
- protected bool IsLeaderLocal { get; }
- public CancellationToken LeadershipToken { get; }
- protected CancellationToken LifecycleToken { get; }
- public Task Readiness { get; }
- public bool Standby { get; }
- protected MetricsCollector Metrics { get; set; }
- public event Action<RaftCluster<TMember>, TMember> LeaderChanged
- public event Action<RaftCluster<TMember>, RaftClusterMemberEventArgs<TMember>> MemberAdded
- public event Action<RaftCluster<TMember>, RaftClusterMemberEventArgs<TMember>> MemberRemoved
- public event Action<RaftCluster<TMember>, TMember> ReplicationCompleted
- protected RaftCluster(IClusterMemberConfiguration config)
- protected RaftCluster(IClusterMemberConfiguration config, ref TagList measurementTags)
- public ValueTask<bool> AddMemberAsync(TMember member, CancellationToken token)
- protected Task<bool> AddMemberAsync<TAddress>(TMember member, int rounds, IClusterConfigurationStorage<TAddress> configurationStorage, Func<TMember, TAddress> addressProvider, CancellationToken token = default)
- protected ValueTask<Result<HeartbeatResult>> AppendEntriesAsync<TEntry>(ClusterMemberId sender, long senderTerm, ILogEntryProducer<TEntry> entries, long prevLogIndex, long prevLogTerm, long commitIndex, IClusterConfiguration config, bool applyConfig, CancellationToken token) where TEntry : IRaftLogEntry
- public ValueTask ApplyReadBarrierAsync(CancellationToken token = default)
- protected abstract ValueTask<bool> DetectLocalMemberAsync(TMember candidate, CancellationToken token)
- protected CancellationToken Token { get; }
- public event ClusterLeaderChangedEventHandler LeaderChanged
- public event ReplicationCompletedEventHandler ReplicationCompleted
- protected RaftCluster(IClusterMemberConfiguration config, out MemberCollectionBuilder members)
- protected Task ChangeMembersAsync<T>(MemberCollectionMutator<TMember, T> mutator, T arg, CancellationToken token)
- protected Task ChangeMembersAsync(MemberCollectionMutator<TMember> mutator, CancellationToken token)
- protected Task ChangeMembersAsync(MemberCollectionMutator<TMember> mutator)
- public ValueTask<bool> EnableStandbyModeAsync(CancellationToken token = default)
- public ValueTask ForceReplicationAsync(CancellationToken token = default)
- protected ValueTask<Result<HeartbeatResult>> InstallSnapshotAsync<TSnapshot>(ClusterMemberId sender, long senderTerm, TSnapshot snapshot, long snapshotIndex, CancellationToken token) where TSnapshot : IRaftLogEntry
- protected ValueTask<Result<PreVoteResult>> PreVoteAsync(ClusterMemberId sender, long nextTerm, long lastLogIndex, long lastLogTerm, CancellationToken token)
- public ValueTask<TMember> RemoveMemberAsync(ClusterMemberId id, CancellationToken token)
- protected Task<bool> RemoveMemberAsync<TAddress>(ClusterMemberId id, IClusterConfigurationStorage<TAddress> configurationStorage, Func<TMember, TAddress> addressProvider, CancellationToken token = default)
- public ValueTask<bool> ReplicateAsync<TEntry>(TEntry entry, CancellationToken token) where TEntry : IRaftLogEntry
- protected ValueTask<bool> ResignAsync(CancellationToken token)
- public ValueTask<bool> RevertToNormalModeAsync(CancellationToken token = default)
- protected TMember FindMember(Predicate<TMember> criteria)
- protected TMember FindMember<TArg>(Func<TMember, TArg, bool> criteria, TArg arg)
- protected ValueTask<TMember> FindMemberAsync(Func<TMember, CancellationToken, ValueTask<bool>> criteria, CancellationToken token)
- public Task<bool> ForceReplicationAsync(TimeSpan timeout, CancellationToken token = default)
- protected Task<Result<bool>> ReceiveEntriesAsync<TEntry>(TMember sender, long senderTerm, ILogEntryProducer<TEntry> entries, long prevLogIndex, long prevLogTerm, long commitIndex, CancellationToken token) where TEntry : IRaftLogEntry
- protected Task<Result<bool>> ReceivePreVoteAsync(long nextTerm, long lastLogIndex, long lastLogTerm, CancellationToken token)
- protected Task<bool> ReceiveResignAsync(CancellationToken token)
- protected Task<Result<bool>> ReceiveSnapshotAsync<TSnapshot>(TMember sender, long senderTerm, TSnapshot snapshot, long snapshotIndex, CancellationToken token) where TSnapshot : IRaftLogEntry
- protected Task<Result<bool>> ReceiveVoteAsync(TMember sender, long senderTerm, long lastLogIndex, long lastLogTerm, CancellationToken token)
- protected void StartFollowing()
- protected ValueTask<long?> SynchronizeAsync(long commitIndex, CancellationToken token)
- public bool TryGetLeaseToken(out CancellationToken token)
- protected TMember TryGetMember(ClusterMemberId id)
- protected virtual ValueTask UnavailableMemberDetected(TMember member, CancellationToken token)
- protected ValueTask<Result<bool>> VoteAsync(ClusterMemberId sender, long senderTerm, long lastLogIndex, long lastLogTerm, CancellationToken token)
- public Task<TMember> WaitForLeaderAsync(TimeSpan timeout, CancellationToken token = default)
- public ValueTask TurnIntoRegularNodeAsync(CancellationToken token)
-
public abstract class RaftClusterMember : Disposable, IRaftClusterMember, IClusterMember
-
public class RaftClusterMemberEventArgs<TMember> : ClusterMemberEventArgs where TMember : IRaftClusterMember
-
public class RaftLogEntriesBufferingOptions : RaftLogEntryBufferingOptions
-
public class RaftLogEntryBufferingOptions
-
public class RaftProtocolException : ConsensusProtocolException
-
public struct Result<T>
- public long Term { get; set; }
- public T Value { get; set; }
- public readonly long Term
- public readonly T Value
- public Result(long term, T value)
DotNext.Net.Cluster.Consensus.Raft.Commands
DotNext.Net.Cluster.Consensus.Raft.Extensions
-
public interface IStandbyModeSupport : IRaftCluster, IReplicationCluster<IRaftLogEntry>, IReplicationCluster, ICluster, IPeerMesh<IClusterMember>, IPeerMesh, IPeerMesh<IRaftClusterMember>
-
public interface IUnresponsiveClusterMemberRemovalSupport : IRaftCluster, IReplicationCluster<IRaftLogEntry>, IReplicationCluster, ICluster, IPeerMesh<IClusterMember>, IPeerMesh, IPeerMesh<IRaftClusterMember>
DotNext.Net.Cluster.Consensus.Raft.Membership
DotNext.Net.Cluster.Consensus.Raft.Metrics
DotNext.Net.Cluster.Discovery
DotNext.Net.Cluster.Discovery.HyParView
DotNext.Net.Cluster.Messaging
DotNext.Net.Cluster.Messaging.Gossip
DotNext.Net.Cluster.Replication
DotNext.Net.ConsistentHash
DotNext.Net.Security
DotNext.Runtime.Serialization