quill-sql 0.2.1

An educational Rust relational database (RDBMS) inspired by CMU 15445
Documentation
<div align="center">
  <img src="assets/rust-db.png" alt="QuillSQL Logo" width="500"/>
</div>

# QuillSQL Internals

Welcome to the technical documentation for QuillSQL.

This book provides a deep dive into the internal architecture and implementation details of the database. It is intended for developers, contributors, and anyone interested in understanding how a relational database is built from the ground up, referencing concepts from classic database courses like CMU 15-445.

---

## Table of Contents

*   [**Overall Architecture**]./architecture.md: A high-level overview of the entire system.

*   **Core Modules**
    *   [**Buffer Manager**]./modules/buffer.md: The in-memory page cache.
        *   [Page & Page Guards]./buffer/page.md
        *   [The Buffer Pool]./buffer/buffer_pool.md
    *   [**Storage Engine**]./modules/storage.md: How data is physically stored.
        *   [Disk I/O]./storage/disk_io.md
        *   [Page & Tuple Layout]./storage/page_layouts.md
        *   [Table Heap & MVCC]./storage/table_heap.md
    *   [**Indexes**]./modules/index.md: The B+Tree implementation.
        *   [B+Tree Details]./index/btree_index.md
    *   [**Recovery Manager (WAL)**]./modules/recovery.md: Crash recovery and the ARIES protocol.
    *   [**Transaction Manager**]./modules/transaction.md: Concurrency control with MVCC and 2PL.
    *   [**Query Plan**]./modules/plan.md: The journey from SQL to an executable plan.
    *   [**Query Optimizer**]./modules/optimizer.md: Rule-based plan transformations.
    *   [**Execution Engine**]./modules/execution.md: The Volcano (iterator) execution model.