I’ve been dreaming about implementing my database management system since the beginning of my software engineer career.
My first DBMS, as far as I can call it so, was a simple client-server java application. It could store tables definition and data in an
XML file and execute simple
Few years passed in pursuit of career achievements but the dream hasn’t left my mind. When I heard about
Rust and played with it after the
1.0 release - the idea of DBMS again spun in my head. I have had a few attempts to write
SQL engines that are buried in the repo rust-sql-engine.
The dream started growing again after a short chat with Alex Petrov on research groups around DBMS. Shortly, I created a private git repo on
GitHub and started writing code. Then, suddenly for me, different concepts started popping up in my head. While I was writing code for a storage engine I realized that I have a lot of ideas that I would like to implement in my project. These are some of them:
PostgreSQLwire protocol and integrate it with
- Go full non-blocking and reactive in a client-server communication,
- Write on-disk storage using
BPFfor Linux OS,
- Write storage engine using
SQLqueries into binary using
- Go distributed - implement effective conflict resolution algorithms, replication, CRDT.
There is a bunch of work that I couldn’t possibly do alone and fun that I would love to share with database community enthusiasts. Today, I am making my
GitHub repo public with the initial work that I’ve done. Here it is: alex-dukhno/database. If you are interested in contributing please don’t hesitate and reach me out.