Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
akiradeveloper committed Oct 19, 2024
1 parent e67671f commit a76cadf
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,20 @@

A Multi-Raft implementation in Rust language.

[Documentation](https://akiradeveloper.github.io/sorock/)
[Documentation (mdbook)](https://akiradeveloper.github.io/sorock/)

## Features

![](doc/src/images/multi-raft.png)

- Implements all core [Raft](https://raft.github.io/) features for production use.
- Supports Multi-Raft. Mutliple Raft processes can coexist in a single OS process so they can share resources efficiently.
- Tested with 1000 shards.
- Batched heartbeat optimization is implemented.
- Tested with 1000 shards per node.
- Heartbeats in shards are batched to reduce the network overhead.
- Based on [Tonic](https://github.com/hyperium/tonic) and efficient gRPC streaming is exploited in log replication and snapshot.
- Phi Accrual Failure Detector is used for leader failure detection. The adaptive algorithm allows you to not choose a fixed timeout number before deployment and makes it possible to deploy Raft node in even geo-distributed environment where the latency between nodes isn't identical.
- Efficient default backend implementation using [redb](https://github.com/cberner/redb).
- Writes in shards are batched in one transaction.
- Phi Accrual Failure Detector is used for leader failure detection.
- The adaptive algorithm allows you to not choose a fixed timeout number before deployment and to deploy Raft node in even geo-distributed environment where the latency between nodes isn't identical.

## Related Projects

Expand Down

0 comments on commit a76cadf

Please sign in to comment.