dragonboat-example
dragonboat
dragonboat-example | dragonboat | |
---|---|---|
1 | 2 | |
171 | 4,944 | |
- | - | |
2.1 | 6.4 | |
8 months ago | 4 months ago | |
Go | Go | |
Apache License 2.0 | 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.
dragonboat-example
-
Is it possible to have more than 1 master available for writes in a raft system?
Yes, "joint consensus" took me a while to comprehend. If you check dragonboat examples there is one ( https://github.com/lni/dragonboat-example/tree/master/ondisk ) which shows how to perform migrations between nodes simply by copying snapshots. There are few open questions (eg. how does it scale up? does it always need to copy everything to target node first or could it be reimplemented with option for streaming?) but it looks quite promising.
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?
hashring - Consistent hashing "hashring" implementation in golang (using the same algorithm as libketama)
raft - Golang implementation of the Raft consensus protocol
raft - raft is a golang library that provides a simple, clean, and idiomatic implementation of the Raft consensus protocol
doublejump - A revamped Google's jump consistent hash
mit-6.824-distributed-systems - Template repository to work on the labs from MIT 6.824 Distributed Systems course.
resgate - A Realtime API Gateway used with NATS to build REST, real time, and RPC APIs, where all your clients are synchronized seamlessly.
memberlist - Golang package for gossip based membership and failure detection
DHT - BitTorrent DHT Protocol && DHT Spider.
torrent - Full-featured BitTorrent client package and utilities
etcd - Distributed reliable key-value store for the most critical data of a distributed system
serf - Service orchestration and management tool.
tendermint - ⟁ Tendermint Core (BFT Consensus) in Go