Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tomarrell/lbadd
LBADD: An experimental, distributed SQL database
https://github.com/tomarrell/lbadd
database distributed golang hacktoberfest sql
Last synced: 19 days ago
JSON representation
LBADD: An experimental, distributed SQL database
- Host: GitHub
- URL: https://github.com/tomarrell/lbadd
- Owner: tomarrell
- License: mit
- Created: 2019-12-09T20:54:02.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-04-04T14:57:09.000Z (over 1 year ago)
- Last Synced: 2024-11-14T03:06:00.325Z (29 days ago)
- Topics: database, distributed, golang, hacktoberfest, sql
- Language: Go
- Homepage:
- Size: 4.6 MB
- Stars: 387
- Watchers: 17
- Forks: 26
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- go-awesome - LBADD - Distributed SQL database implemented in Go (Open source library / Database)
README
LBADD
Let's build a distributed database.
---
LBADD is an experimental distributed SQL database, written in Go.
The goal of this project is to build a database from scratch which is well documented, fully tested, and easy to understand. Implementing as much as possible from the ground up.
It is also currently a work in progress. Feel free to follow along with the development of each component, from parser to pager.
## Architecture
The database is made up of a few separate components. These handle the **SQL parsing**, the **intermediary representation generation**, the **multi-node consensus**, the **execution of the IR**, and the (persistent) **storage**.
For a brief overview of the purpose of each component, have a look at the [overview](./doc/overview.md).
### Prior art
Inspiration has been taken from the brilliantly documented codebase of [SQLite](https://github.com/sqlite/sqlite). However the codebase has been heavily optimized, and is difficult to follow without spending significant time.Work has also already been done to build a distributed version of SQLite called [rqlite](https://github.com/rqlite/rqlite). The project uses [raft](https://github.com/hashicorp/raft) consensus in order to keep nodes consistent across the network.
LBADD aims to replicate these in a single project. LBADD doesn't aim to be nearly as performant as SQLite nor rqlite, and hopefully trades this instead for slightly more clarity and simplicity.
## Contributing
Contributors are more than welcome and much appreciated. Please feel free to open a PR to improve anything you don't like, or would like to add. No PR is too small! Go check out our [contributing guide](./CONTRIBUTING.md) for more detailed info about how to get started with a contribution.## License
This project is licensed under the MIT license.