You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🪵🪵🪵 Raft is not yet good enough.
This project intends to improve raft as the next-generation consensus protocol for distributed data storage systems (SQL, NoSQL, KV, Streaming, Graph ... or maybe something more exotic).
Currently, openraft is the consensus engine of meta-service cluster in databend.
The features are almost complete for building an application.
Performance: Supports 70,000 writes/sec for single writer, and 1,000,000 writes/sec for 256 writers. See: Performance
Unit test coverage stands at 92%.
The chaos test has not yet been completed, and further testing is needed to ensure the application's robustness and reliability.
API status
Openraft API is not stable yet. Before 1.0.0, an upgrade may contain incompatible changes.
Check our change-log. A commit message starts with a keyword to indicate the modification type of the commit:
DataChange: on-disk data types changes, which may require manual upgrade.
Change: if it introduces incompatible changes.
Feature: if it introduces compatible non-breaking new features.
Fix: if it just fixes a bug.
Versions
Branch main has been under active development.
The main branch is for the release-0.9.
Consider introducing read-quorum and write-quorum,
improve efficiency with a cluster with an even number of nodes.
Performance
The benchmark is focused on the Openraft framework itself and is run on a
minimized store and network. This is NOT a real world application benchmark!!!
Async and Event-Driven: Operates based on Raft events without reliance on periodic ticks, optimizing message batching for high throughput.
Extensible Storage and Networking: Customizable via RaftLogStorage, RaftStateMachine and RaftNetwork traits, allowing flexibility in choosing storage and network solutions.
Unified Raft API: Offers a single Raft type for creating and interacting with Raft tasks, with a straightforward API.
Cluster Formation: Provides strategies for initial cluster setup as detailed in the cluster formation guide.