paxi
dragonboat
paxi | dragonboat | |
---|---|---|
1 | 2 | |
542 | 4,944 | |
- | - | |
3.0 | 6.4 | |
4 months ago | 4 months ago | |
Go | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
paxi
-
Paxos vs Raft: Have We Reached Consensus on Distributed Consensus?
Author seems to be using https://github.com/ailidani/paxi for actual implementation and proof.
I'm more of a python/rust guy. There have been some attempts to make model checkers in rust: https://github.com/stateright/stateright
The issue is that rust is a very large language and it's hard to get it right.
I have a python implementation of raft over here:
https://github.com/adsharma/raft/tree/master/raft/states
That's small enough to be self contained and perhaps run through a model checker some day and transpiled to many statically typed languages.
The issue with TLA+ proofs such as:
https://github.com/fpaxos/raft.tla
is that it's hard to tell if a particular C++ or Rust implementation conforms to the spec.
So how do we check and transpile?
* https://www.philipzucker.com/Modelling_TLA_in_z3py/
dragonboat
-
Pebble - as a key/value db
Pebble is the default log storage engine for a multi-raft library named Dragonboat. It was chosen to replace RocksDB and it seems to work well. https://github.com/lni/dragonboat
-
Is it possible to have more than 1 master available for writes in a raft system?
This is the best open source implementation I've seen that does what you're asking about: https://github.com/lni/dragonboat
What are some alternatives?
stateright - A model checker for implementing distributed systems.
raft - Golang implementation of the Raft consensus protocol
raft
doublejump - A revamped Google's jump consistent hash
py2many - Transpiler of Python to many other languages
resgate - A Realtime API Gateway used with NATS to build REST, real time, and RPC APIs, where all your clients are synchronized seamlessly.
raft.tla - TLA+ specification for the Raft consensus algorithm
DHT - BitTorrent DHT Protocol && DHT Spider.
raft.tla - TLA+ specification for the Raft consensus algorithm
torrent - Full-featured BitTorrent client package and utilities
sx - :vulcan_salute: Fast, modern, easy-to-use network scanner
etcd - Distributed reliable key-value store for the most critical data of a distributed system