I'm building a simple database to get a better understanding of how databases actually work. The goal is to focus on making the code as easy to follow and understand as possible.
This is a learning experience I'll be documenting as I go.
As such, performance and reliability are not top concerns. You should use this for educational purposes only.
I'm an Engineer at Google, and my job revolves around Spanner -- Google's Distributed Database. It's pretty much the coolest thing in the world to me -- literally it's like magic.
I hope to one day understand it.
Reading documentation and books is great, but for me, nothing beats hands on experience, so I thought I would try to build the simpliest possible distributed database to get a better understanding on how Spanner works.
For now, I'm focused on building something much, much simpler than Spanner. I'm building the the most basic version of SQLite I can imagine.
I've chosen Ruby as a starting language because it's one of my strongest languages. Although Ruby syntax can get a bit funky, it's also pretty easy for beginners to pick up and understand. Since the goal is to make databases more accessible to folks, this seems like a good starting point.
After I get a better understanding of how databases actually work, I will likely switch to a different language.
- cstack DB Tutorial - on which this code is based
- Learn You Some Erlang - on which the documentation will be based