Developing a database in Go

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/golang

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • OPS - Build and Run Open Source Unikernels
  • GitHub repo nebula-graph

    A distributed, fast open-source graph database featuring horizontal scalability and high availability

    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.

  • GitHub repo genji

    Document-oriented, embedded SQL database

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • GitHub repo rqlite

    The lightweight, distributed relational database built on SQLite

    I've written a couple of blogs posts on my experience developing rqlite (and databases in general):

  • GitHub repo hydradb

    A multi-model, scalable database written in Go

  • GitHub repo goostub

    Porting bustub (https://github.com/cmu-db/bustub) in Go for fun (that's why I name it goostub)

    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!

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts