Our great sponsors
-
nebula-graph
Discontinued 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
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
goostub
Porting bustub (https://github.com/cmu-db/bustub) in Go for fun (that's why I name it goostub)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
That problem you faced is a reason why Graph databases were created. Take a look at NebulaGraph https://nebula-graph.io/ which has an SQL-like query syntax and already has all the features you mention in your list.
I've written a couple of blogs posts on my experience developing rqlite (and databases in general):
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!
Related posts
- Linux surpasses the Mac among Steam gamers
- rage - a minimalistic load testing tool
- Eli5: Why do companies use the products of Oracle to store information, when they can just use spreadsheets like Excel, or make their own spreadsheet software?
- Simple distributed database.
- NextJS is fullstack, why some people use it only for frontend and how can you use it in fron end ?