I needed to understand how some of SQLite's internals work recently. Fortunately, SQLite has great documentation that makes understanding how it works much easier than it otherwise would be. Here are some of the documents I found most interesting and/or helpful. There is lots of programming and design wisdom sprinkled throughout SQLite's documentation.
- First a question from the Rustaceans, why is SQLite coded in C.
- Async I/O in SQLite.
- Benchmarking SQLite's read and write performance (it is faster than the filesystem).
- Understanding the bytecode engine.
- How the query planner works.
- How SQLite's file locking and concurrency work.
- How write-ahead-logging works.
- SQLite's file format (including information on how the b-tree is stored).
- How atomic commits happen.