Build Your Own Database (byod): Distributed SQL Database Engine in C

Build Your Own Database (byod): Distributed SQL Database Engine in C

in

About the Project

Implementing a rudimentary database to instill the idea of the inner working of a database. We try to answer what are Low level functions of a system, how data is stored, retrieved, how sql works and a lot more.

  1. Build a Strong Foundation: Cover essential database internals, including C programming, file systems, B-Trees, and process management.
  2. Develop a rudimentary database with indexing, storage, and basic ACID properties while exploring SQL parsing and query execution.

Resources

Week 0

Session 1

  1. Git- Learn git branching It is recommended to do till Level 2 of “Moving work” round in Main And till level 5 of “To Origin and Beyond” in Remote
  2. File I/O- File I/O in C - A pretty nice tutorial for file I/O in C, Mentors are recommended to follow through with the examples and then proceed with the problem statement given below to practice.
  3. Problem link- https://hackmd.io/@dOr-w0B8QXCdXE2gmetHYQ/Skxg7N8Wgg

Session 2

  1. Computer Systems- Computer Systems A Programmer’s Perspective (Good reading material to be followed throughout the project)

Session 3

  1. Storage and Disk - Reading material for Understanding the underlying storage in you computer systems
  2. Acid Property in Databases - https://blogs.bmc.com/acid-atomic-consistent-isolated-durable/?print-posts=pdf
  3. What Scaling is and Scaling Databases for handling Enormous amounts of data - Blog 1 Blog 2
  4. Understanding RAMs - https://lwn.net/Articles/250967/

Week 1

Session 1

  1. B Trees- https://planetscale.com/blog/btrees-and-database-indexes This website has an interactive interface for insertion and deletion in B-Trees. Pretty helpful for visualisation. Some more reading material- Supplementary Stuff
  2. Assignment For the week with additional resources - https://hackmd.io/@dOr-w0B8QXCdXE2gmetHYQ/Hk9efk7Mgx