Nice. I also wanted to know the details behind database engine and ACID compliance. So, decided to follow Database Design and Implementation by Edward Sciore, and re-implemented the database in Python: <a href="https://github.com/quazi-irfan/pySimpleDB">https://github.com/quazi-irfan/pySimpleDB</a><p>This db treats file as raw disk and reads and writes in blocks. In the book, your step 3 and 4 will be a start of a transaction that uses recovery manager to log changes introduced by the query, and buffer manager to page in and out file blocks in memory. This book uses serializable isolation, so if buffer pool is full and can't page in new block or if another transactions are writing to that same block - the newer transaction will be rolled back after a brief wait.