Overview of NuRaft features
masterNuRaft is a C++ Raft implementation derived from the cornerstone project. It provides a lightweight implementation with minimum dependencies, enhanced with several real-world features required for production use cases.
Core Raft Capabilities
- Log replication & compaction
- Leader election
- Snapshotting
- Dynamic membership & configuration changes
- Group commit & pipelined write
- User-defined log store & state machine support
Advanced Features
- Pre-vote protocol: Prevents disruptive elections.
- Leadership expiration: Handles leader timeouts.
- Priority-based semi-deterministic leader election: Influences which nodes become leaders.
- Read-only member (learner): Allows nodes to join the cluster without participating in quorums.
- Object-based logical snapshot: For efficient snapshot transmission.
- Custom quorum size: Separate quorum sizes for commit and leader election.
- Asynchronous replication: Improves performance via async operations.
- SSL/TLS support: Secures communication.
- Parallel Log Appending: Optimizes log write performance.
- Custom Commit Policy: Allows fine-grained control over when entries are committed.
- Streaming Mode: Optimized for high-throughput streaming.