Skip to content

Executable Labs

The repository is the finished reference project, so each lab is an executable test rather than a teaching chapter.

Mechanism Experiment
SeqScan vs IndexScan tests/unit/planner/test_scan_choice.py
NestedLoop vs HashJoin tests/unit/planner/test_join_choice.py
buffer pins and Clock eviction tests/unit/storage/test_buffer_pool.py
Read Committed vs Repeatable Read tests/concurrency/test_read_phenomena.py
writer conflicts and deadlocks tests/concurrency/test_write_conflicts.py, tests/concurrency/test_deadlock.py
WAL before data tests/reliability/test_wal_before_data.py
commit/checkpoint crash positions tests/crash/test_commit_matrix.py, tests/crash/test_checkpoint_matrix.py
REDO and index rebuild tests/reliability/test_engine_recovery.py, tests/reliability/test_index_rebuild.py
long snapshot blocks Vacuum tests/integration/test_vacuum_reuse.py
HOT keeps the index root tests/integration/test_hot_update.py
phase closure tests/acceptance/

Run all experiments with uv run pytest -q.