This repository contains my notes from reading Database Internals by Alex Petrov, as part of a Book Reading Club organised by Phil Eaton.
- Chapter 1: Introduction and Overview
- Chapter 2: B-Tree Basics
- Chapter 3: File Formats
- Chapter 4: Implementing B-Trees
- Chapter 5: Transaction Processing and Recovery
- Chapter 6: B-Tree Variants
- Chapter 7: Log-Structured Storage
- Chapter 8: Introduction and Overview
- Chapter 9: Failure Detection
- Chapter 10: Leader Election
- Chapter 11: Replication and Consistency
- Chapter 12: Anti-Entropy and Dissemination
- Chapter 13: Distributed Transactions
- Chapter 14: Consensus
- We plan on reading a chapter per week. I will try my best to update this repository with my notes from the chapter every week. ETA: Sunday midnight IST for any given week.
- I will try to keep the notes as concise as possible, while also trying to cover all the important points.
- You can expect to find some additional information that I found interesting, or some side learning that I did while reading the chapter. I'd put them with a ✨ Side learning label. These are not in the book, not in that chapter atleast.
- You can expect to find my most interesting takeaways from the chapter with a 🤯 label.
- You can expect a 1:1 mapping of the chapter with the notes. I will try to keep the notes in the same order as the chapter.
For each chapter notes, you can also expect:
- My unanswered questions from the chapter. I will add a direct
mailto
link to my email address, so that you can answer them if you know the answer. If you are not sure, you can still drop me an email and I'd be happy to discuss it. - As and when I find answers to my unanswered questions, I will update the notes with the answers.
- Some other things to read about, if you are interested in the topic. This is extremely subjective, so you might not find it useful. But I'd still add it, just in case.
- Reading group discussion: I will try to add some interesting points that came up during the reading group discussion. This is also extremely subjective, so you might not find it useful. But I'd still add it, just in case. I aim to add these when I am updating the notes for the next chapter.
This is NOT a replacement for the book. This is just my notes from the book. I'd highly recommend reading the book yourself and use this repository as a supplement / future reference.
No amount of short notes can justify the amount of knowledge that the book contains, so would highly encourage you to read the book yourself.
Well, my motivation is to just learn more about databases. I have been working with databases for a while now, and I have always been curious about how they work under the hood. This book is a great way to learn about that.
Feynman Technique: The more you teach others, the better you learn.
Also, hopefully future Akshat would find this useful, and would be able to refer to these notes.
If you have any feedback on any part of it, please feel free to ping me on Twitter at @AkJn99, or drop me an email at me@akjn.dev.
I eventually plan on creating a website with the same contents when I have some bandwidth, just for easier access. But for now, I'd just be updating this repository.