Today I finally got some time to work on my toyDB. I've been reading about database internals, and was fascinated by different solutions people have come up with.

This project started because recently I learned about MVCC from an OpenAI blog. MVCC enables us to access a row even while it's being updated. You'd expect reading to be blocked while a row is being updated, but MVCC avoids that by creating a new immutable version on each write.

Here I've implemented some methods to allocate 4096 byte size pages in a file and write and read to those pages. The hexdump output made me celebrate like a kid. Implementing slotted pages is the next step.

The end goal with this project is to implement a simplified version of MVCC while also learning about B-Trees, Slotted Pages, LSM trees, etc.