How to start building your own DBMS (based on PostgreSQL)? I'd like to learn how to make a DBMS (relational), based on PostgreSQL specifically. Not for production purposes to make a commercial product but to learn.

I plan on using C++ but, it's not exactly easy to find information out there on how to build your own (or at least where to start).

I know there are people in this community who are even contributors to the PostgreSQL source code (such as Laurenz Albe) so it made sense to ask this question here.

I've been following this course https://www.youtube.com/playlist?list=PLSE8ODhjZXjbohkNBWQs_otTrBTrjyohi to understand the ins and outs of a DBMS. But as most of it simply explains the theoretical, I don't have a chance to see the practical or how to actually do it.
My advice is to get involved with an open source database project. I would go with PostgreSQL, but there are of course alternatives.

If you go with PostgreSQL:


Use the software. It is impossible to learn about databases without actually using them.
Build PostgreSQL from source.
Subscribe to the mailing lists and read them. There you can read what knowledgeable people have to say, and one can learn a lot from that.
Whenever you run into a problem or don't understand the workings of something, dig into the source. If you get stuck, ask for help.
Read this article.
Tune in on the pgsql-hackers mailing list.
Start reviewing patches and contributing.


Keep your eyes open for the different ways that other databases do it. After a few years, you will have gained some understanding. Then you may be in a position to come up with your own ideas on architecture.