Skip to content

AviAvni/database-learning-path

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Database Learning Path

A self-paced, hands-on curriculum for mastering database internals — with a focus on performance, data structures, and algorithms — built around reading world-class codebases, implementing things from scratch in Rust, and benchmarking everything.

Background: author is a core developer of FalkorDB and falkordb-rs-next-gen, so graph internals are familiar ground; the goal is breadth + depth across all database domains.

Read this online

The whole path is published as a browsable book (sidebar navigation, search, rendered diagrams) at https://aviavni.github.io/database-learning-path/ — or download the entire book as a PDF.

To build locally: cargo install mdbook mdbook-mermaid, then mdbook-mermaid install . && mdbook serve from the repo root.

Repo layout

README.md          ← you are here: how this repo works
PLAN.md            ← the full curriculum (32 topics) — the source of truth
PROGRESS.md        ← status tracker: what's done, in progress, next
capstone/          ← falkordb-rs-next-gen rebuilt from scratch, one milestone per topic
topics/            ← created lazily — one dir per topic when the deep dive starts
  NN-topic-name/
    README.md      ← expanded study guide for that topic
    notes.md       ← learnings, insights, surprising things
    experiments/   ← standalone Rust experiments + criterion benchmarks
resources/
  papers.md        ← papers & articles (arXiv, VLDB, SIGMOD, classics)
  codebases.md     ← reference codebases and what each is best for studying
  tools.md         ← profiling, benchmarking, fuzzing, testing tools

Workflow (for me and for Claude next session)

flowchart LR
    A["PROGRESS.md<br/>where are we?"] --> B["PLAN.md<br/>pick next topic"]
    B --> C["topics/NN-name/<br/>expand into study guide"]
    C --> D["study · experiments<br/>· benchmarks · notes.md"]
    D --> E["capstone/<br/>milestone MNN"]
    E --> F["update PROGRESS.md<br/>+ commit"]
    F -.->|next topic| B
Loading
  1. Open PROGRESS.md to see where we are.
  2. Pick the next topic (or any topic — order is a suggestion, not a rule) from PLAN.md.
  3. Create topics/NN-topic-name/ and expand the PLAN.md section into a full study guide: concept explanations with examples, guided code-reading of the reference repos, exercises, and benchmarks.
  4. Study, implement experiments, benchmark, take notes in notes.md.
  5. Implement the topic's capstone milestone in capstone/.
  6. Update PROGRESS.md (status + one-line takeaway) and commit.

Conventions

  • Language: Rust for all implementations and benchmarks (criterion + flamegraph).
  • Every topic ends with a benchmark — numbers over intuition.
  • Code reading is done against pinned clones under ~/repos/ (not vendored here).
  • Notes capture why designs win, trade-offs, and measured results — not summaries.

About

Self-paced database internals curriculum: 32 topics + rebuilding falkordb-rs-next-gen from scratch in Rust

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages