raft
rqlite
Our great sponsors
raft | rqlite | |
---|---|---|
2 | 112 | |
8 | 14,862 | |
- | 1.3% | |
0.0 | 9.9 | |
over 1 year ago | 2 days ago | |
Python | Go | |
MIT License | MIT License |
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.
raft
-
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/
-
Rqlite: The lightweight, distributed relational database built on SQLite
https://github.com/adsharma/raft
Bug reports welcome
rqlite
- The lightweight, easy-to-use, distributed relational database built on SQLite
-
CursusDB – A new scalable distributed document oriented database
Seems like you could do the same with rqlite [1], since SQLite supports JSON.
[1]: https://rqlite.io
-
Rqlite 8.0
rqlite[1] creator here, happy to answer any questions about rqlite, this latest release, and how it works.
[1] https://rqlite.io
-
Adding new database engine support
I found simple distributed RQlite https://github.com/rqlite/rqlite based on raft and sqlite. How hard is to add it?
- I'm All-In on Server-Side SQLite
-
So, you want to deploy on the edge?
rqlite[1] creator here, happy to answer any questions. rqlite also supports read-only nodes, which can also help with reads at the "edge". It probably wouldn't scale to 100s of nodes, it is an option.
"rqlite supports adding read-only nodes. You can use this feature to add read scalability to the cluster if you need a high volume of reads, or want to distribute copies of the data nearer to clients – but don’t want those nodes counted towards the quorum. These types of nodes are also known as non-voting nodes."
[1] https://rqlite.io/
[2] https://rqlite.io/docs/clustering/read-only-nodes/
- LiteFS Cloud: Distributed SQLite with Managed Backups
- Show HN: Rqlite, distributed DB built on SQLite, now runs on MIPS, RISC, PowerPC
- rqlite v7.19.0: the lightweight distributed relational database built on Go, Raft, and SQLite -- now runs on MIPS, PowerPC, and RISC
- rqlite v7.18: the lightweight distributed database built on Go, Raft, and SQLite -- now with new Unified HTTP endpoint for easy reads and writes
What are some alternatives?
paxi - Paxos protocol framework
dqlite - Embeddable, replicated and fault-tolerant SQL engine.
k3s - Lightweight Kubernetes
litestream - Streaming replication for SQLite.
stateright - A model checker for implementing distributed systems.
cockroach - CockroachDB - the open source, cloud-native distributed SQL database.
raft.tla - TLA+ specification for the Raft consensus algorithm
bolt
zre_raft - Peer-to-peer encrypted chat using ZRE and double ratchet.
etcd - Distributed reliable key-value store for the most critical data of a distributed system [Moved to: https://github.com/etcd-io/etcd]
py2many - Transpiler of Python to many other languages
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.