# Tutorial: LevelDB LevelDB is a fast *key-value storage library* written at Google. Think of it like a simple database where you store pieces of data (values) associated with unique names (keys). It's designed to be **very fast** for both writing new data and reading existing data, and it reliably stores everything on **disk**. It uses a *log-structured merge-tree (LSM-tree)* design to achieve high write performance and manages data in sorted files (*SSTables*) across different levels for efficient reads and space management. **Source Repository:** [https://github.com/google/leveldb/tree/main/db](https://github.com/google/leveldb/tree/main/db) ```mermaid flowchart TD A0["DBImpl"] A1["MemTable"] A2["Table / SSTable & TableCache"] A3["Version & VersionSet"] A4["Write-Ahead Log (WAL) & LogWriter/LogReader"] A5["Iterator"] A6["WriteBatch"] A7["Compaction"] A8["InternalKey & DBFormat"] A0 -- "Manages active/immutable" --> A1 A0 -- "Uses Cache for reads" --> A2 A0 -- "Manages DB state" --> A3 A0 -- "Writes to Log" --> A4 A0 -- "Applies Batches" --> A6 A0 -- "Triggers/Runs Compaction" --> A7 A1 -- "Provides Iterator" --> A5 A1 -- "Stores Keys Using" --> A8 A2 -- "Provides Iterator via Cache" --> A5 A3 -- "References SSTables" --> A2 A3 -- "Picks Files For" --> A7 A4 -- "Recovers MemTable From" --> A1 A4 -- "Contains Batch Data" --> A6 A5 -- "Parses/Hides InternalKey" --> A8 A6 -- "Inserts Into" --> A1 A7 -- "Builds SSTables" --> A2 A7 -- "Updates Versions Via Edit" --> A3 A7 -- "Uses Iterator for Merging" --> A5 ``` ## Chapters 1. [Table / SSTable & TableCache](01_table___sstable___tablecache.md) 2. [MemTable](02_memtable.md) 3. [Write-Ahead Log (WAL) & LogWriter/LogReader](03_write_ahead_log__wal____logwriter_logreader.md) 4. [DBImpl](04_dbimpl.md) 5. [WriteBatch](05_writebatch.md) 6. [Version & VersionSet](06_version___versionset.md) 7. [Iterator](07_iterator.md) 8. [Compaction](08_compaction.md) 9. [InternalKey & DBFormat](09_internalkey___dbformat.md) --- Generated by [AI Codebase Knowledge Builder](https://github.com/The-Pocket/Tutorial-Codebase-Knowledge)