mirror of
https://github.com/aljazceru/Tutorial-Codebase-Knowledge.git
synced 2025-12-19 15:34:23 +01:00
58 lines
2.2 KiB
Markdown
58 lines
2.2 KiB
Markdown
# 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)
|