goostub
rqlite
Our great sponsors
goostub | rqlite | |
---|---|---|
1 | 112 | |
12 | 14,862 | |
- | 1.3% | |
0.0 | 9.9 | |
almost 2 years ago | 5 days ago | |
Go | 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.
goostub
-
Developing a database in Go
One of them is https://github.com/pzhzqt/goostub, the others are just similar to this. The original Bustub project from CMU that is in C++ only provides the main interface and the storage layer of the database (same as the link above in Go). The actual implementations are done by students during the semester. So you have to build the buffer pool, index trees, hash tables etc. Here are the assignments with full details: https://15445.courses.cs.cmu.edu/fall2020/assignments.html. As far as I have seen there are no solutions nor full implementations in Go (not even in C++) because CMU like any other uni has the policy that you will get suspended if you make your solution public or you copy it. Some non complete solutions for the first assignments have leaked, but they contain bugs and it's just better if you solve them from scratch yourself. Hope this helps!
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?
hydradb - A multi-model, scalable database written in Go
dqlite - Embeddable, replicated and fault-tolerant SQL engine.
chai - Modern embedded SQL database
litestream - Streaming replication for SQLite.
nebula-graph - A distributed, fast open-source graph database featuring horizontal scalability and high availability. This is an archived repo for v2.5 only, from 2.6.0 +, NebulaGraph switched back to https://github.com/vesoft-inc/nebula
cockroach - CockroachDB - the open source, cloud-native distributed SQL database.
bolt
etcd - Distributed reliable key-value store for the most critical data of a distributed system [Moved to: https://github.com/etcd-io/etcd]
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
groupcache - groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
budibase - Budibase is an open-source low code platform that helps you build internal tools in minutes π