From 6649111660aa6d96d37ac223247425e0af0e7a23 Mon Sep 17 00:00:00 2001 From: Alex Chi Z Date: Wed, 17 Jan 2024 16:11:11 +0800 Subject: [PATCH] update v2 toc Signed-off-by: Alex Chi Z --- README.md | 2 +- mini-lsm-book-wip/book.toml | 2 +- mini-lsm-book-wip/src/00-v1.md | 1 + mini-lsm-book-wip/src/01-block.md | 4 +- mini-lsm-book-wip/src/02-sst.md | 4 +- mini-lsm-book-wip/src/03-memtable.md | 4 +- mini-lsm-book-wip/src/04-engine.md | 4 +- mini-lsm-book-wip/src/05-compaction.md | 4 +- .../src/06-compaction-strategy.md | 1 - mini-lsm-book-wip/src/06-recovery.md | 3 ++ mini-lsm-book-wip/src/07-bloom-filter.md | 3 ++ mini-lsm-book-wip/src/08-bloom-filter.md | 1 - mini-lsm-book-wip/src/08-key-compression.md | 3 ++ mini-lsm-book-wip/src/09-key-compression.md | 1 - mini-lsm-book-wip/src/09-whats-next.md | 3 ++ mini-lsm-book-wip/src/10-ts.md | 1 - .../src/11-prefix-bloom-filter.md | 1 - mini-lsm-book-wip/src/12-mvcc-read.md | 1 - mini-lsm-book-wip/src/13-watermark.md | 1 - .../src/14-garbage-collection.md | 1 - mini-lsm-book-wip/src/15-io-optimization.md | 1 - mini-lsm-book-wip/src/16-compression.md | 1 - mini-lsm-book-wip/src/17-async.md | 1 - mini-lsm-book-wip/src/18-serializable.md | 1 - mini-lsm-book-wip/src/19-sql.md | 1 - mini-lsm-book-wip/src/SUMMARY.md | 54 +++++++++++-------- mini-lsm-book-wip/src/week1-01-block.md | 1 + mini-lsm-book-wip/src/week1-02-sst.md | 1 + mini-lsm-book-wip/src/week1-03-memtable.md | 1 + .../src/week1-04-merge-iterator.md | 1 + mini-lsm-book-wip/src/week1-05-read-path.md | 1 + mini-lsm-book-wip/src/week1-06-write-path.md | 1 + mini-lsm-book-wip/src/week1-overview.md | 1 + mini-lsm-book-wip/src/week2-01-compaction.md | 1 + mini-lsm-book-wip/src/week2-02-tiered.md | 1 + mini-lsm-book-wip/src/week2-03-leveled.md | 1 + mini-lsm-book-wip/src/week2-04-manifest.md | 1 + .../src/{07-recovery.md => week2-05-wal.md} | 0 .../src/week2-06-sst-optimizations.md | 1 + mini-lsm-book-wip/src/week2-overview.md | 1 + mini-lsm-book-wip/src/week3-overview.md | 1 + 41 files changed, 75 insertions(+), 43 deletions(-) create mode 100644 mini-lsm-book-wip/src/00-v1.md delete mode 100644 mini-lsm-book-wip/src/06-compaction-strategy.md create mode 100644 mini-lsm-book-wip/src/06-recovery.md create mode 100644 mini-lsm-book-wip/src/07-bloom-filter.md delete mode 100644 mini-lsm-book-wip/src/08-bloom-filter.md create mode 100644 mini-lsm-book-wip/src/08-key-compression.md delete mode 100644 mini-lsm-book-wip/src/09-key-compression.md create mode 100644 mini-lsm-book-wip/src/09-whats-next.md delete mode 100644 mini-lsm-book-wip/src/10-ts.md delete mode 100644 mini-lsm-book-wip/src/11-prefix-bloom-filter.md delete mode 100644 mini-lsm-book-wip/src/12-mvcc-read.md delete mode 100644 mini-lsm-book-wip/src/13-watermark.md delete mode 100644 mini-lsm-book-wip/src/14-garbage-collection.md delete mode 100644 mini-lsm-book-wip/src/15-io-optimization.md delete mode 100644 mini-lsm-book-wip/src/16-compression.md delete mode 100644 mini-lsm-book-wip/src/17-async.md delete mode 100644 mini-lsm-book-wip/src/18-serializable.md delete mode 100644 mini-lsm-book-wip/src/19-sql.md create mode 100644 mini-lsm-book-wip/src/week1-01-block.md create mode 100644 mini-lsm-book-wip/src/week1-02-sst.md create mode 100644 mini-lsm-book-wip/src/week1-03-memtable.md create mode 100644 mini-lsm-book-wip/src/week1-04-merge-iterator.md create mode 100644 mini-lsm-book-wip/src/week1-05-read-path.md create mode 100644 mini-lsm-book-wip/src/week1-06-write-path.md create mode 100644 mini-lsm-book-wip/src/week1-overview.md create mode 100644 mini-lsm-book-wip/src/week2-01-compaction.md create mode 100644 mini-lsm-book-wip/src/week2-02-tiered.md create mode 100644 mini-lsm-book-wip/src/week2-03-leveled.md create mode 100644 mini-lsm-book-wip/src/week2-04-manifest.md rename mini-lsm-book-wip/src/{07-recovery.md => week2-05-wal.md} (100%) create mode 100644 mini-lsm-book-wip/src/week2-06-sst-optimizations.md create mode 100644 mini-lsm-book-wip/src/week2-overview.md create mode 100644 mini-lsm-book-wip/src/week3-overview.md diff --git a/README.md b/README.md index 9bf38c3..8ccfb90 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ We are working on a new version of the mini-lsm tutorial that is split into 3 we | 1.4 | Merge Iterators | ✅ | ✅ | ✅ | | 1.5 | Storage Engine - Read Path | ✅ | ✅ | ✅ | | 1.6 | Storage Engine - Write Path | ✅ | ✅ | ✅ | -| 2.1 | Simple Compaction Strategy | ✅ | 🚧 | 🚧 | +| 2.1 | Compaction - Get Started | ✅ | 🚧 | 🚧 | | 2.2 | Compaction Strategy - Tiered | ✅ | | | | 2.3 | Compaction Strategy - Leveled | 🚧 | | | | 2.4 | Manifest | | | | diff --git a/mini-lsm-book-wip/book.toml b/mini-lsm-book-wip/book.toml index fd33543..07a7670 100644 --- a/mini-lsm-book-wip/book.toml +++ b/mini-lsm-book-wip/book.toml @@ -3,4 +3,4 @@ authors = ["Alex Chi"] language = "en" multilingual = false src = "src" -title = "LSM in 3 Weeks" +title = "LSM in a Week" diff --git a/mini-lsm-book-wip/src/00-v1.md b/mini-lsm-book-wip/src/00-v1.md new file mode 100644 index 0000000..938b235 --- /dev/null +++ b/mini-lsm-book-wip/src/00-v1.md @@ -0,0 +1 @@ +# Mini-LSM v1 diff --git a/mini-lsm-book-wip/src/01-block.md b/mini-lsm-book-wip/src/01-block.md index 54e0a5f..ab54542 100644 --- a/mini-lsm-book-wip/src/01-block.md +++ b/mini-lsm-book-wip/src/01-block.md @@ -1 +1,3 @@ -# Blocks +# Store key-value pairs in little blocks + + diff --git a/mini-lsm-book-wip/src/02-sst.md b/mini-lsm-book-wip/src/02-sst.md index 0794bfd..ae692a7 100644 --- a/mini-lsm-book-wip/src/02-sst.md +++ b/mini-lsm-book-wip/src/02-sst.md @@ -1 +1,3 @@ -# Sorted String Table (SST) +# And make them into an SST + + \ No newline at end of file diff --git a/mini-lsm-book-wip/src/03-memtable.md b/mini-lsm-book-wip/src/03-memtable.md index 43e07b1..f05503a 100644 --- a/mini-lsm-book-wip/src/03-memtable.md +++ b/mini-lsm-book-wip/src/03-memtable.md @@ -1 +1,3 @@ -# Merge Iterators +# Now it's time to merge everything + + \ No newline at end of file diff --git a/mini-lsm-book-wip/src/04-engine.md b/mini-lsm-book-wip/src/04-engine.md index 3ef1f26..15732c3 100644 --- a/mini-lsm-book-wip/src/04-engine.md +++ b/mini-lsm-book-wip/src/04-engine.md @@ -1 +1,3 @@ -# Storage Engine +# The engine is on fire + + \ No newline at end of file diff --git a/mini-lsm-book-wip/src/05-compaction.md b/mini-lsm-book-wip/src/05-compaction.md index 0e037b4..3832c60 100644 --- a/mini-lsm-book-wip/src/05-compaction.md +++ b/mini-lsm-book-wip/src/05-compaction.md @@ -1 +1,3 @@ -# Compaction Task +# Let's do something in the background + + \ No newline at end of file diff --git a/mini-lsm-book-wip/src/06-compaction-strategy.md b/mini-lsm-book-wip/src/06-compaction-strategy.md deleted file mode 100644 index e5ad6bd..0000000 --- a/mini-lsm-book-wip/src/06-compaction-strategy.md +++ /dev/null @@ -1 +0,0 @@ -# Compaction Strategy diff --git a/mini-lsm-book-wip/src/06-recovery.md b/mini-lsm-book-wip/src/06-recovery.md new file mode 100644 index 0000000..bce3a2b --- /dev/null +++ b/mini-lsm-book-wip/src/06-recovery.md @@ -0,0 +1,3 @@ +# Be careful when the system crashes + + \ No newline at end of file diff --git a/mini-lsm-book-wip/src/07-bloom-filter.md b/mini-lsm-book-wip/src/07-bloom-filter.md new file mode 100644 index 0000000..5e4f6e2 --- /dev/null +++ b/mini-lsm-book-wip/src/07-bloom-filter.md @@ -0,0 +1,3 @@ +# A good bloom filter makes life easier + + \ No newline at end of file diff --git a/mini-lsm-book-wip/src/08-bloom-filter.md b/mini-lsm-book-wip/src/08-bloom-filter.md deleted file mode 100644 index 4fe566b..0000000 --- a/mini-lsm-book-wip/src/08-bloom-filter.md +++ /dev/null @@ -1 +0,0 @@ -# Bloom Filter diff --git a/mini-lsm-book-wip/src/08-key-compression.md b/mini-lsm-book-wip/src/08-key-compression.md new file mode 100644 index 0000000..a282c22 --- /dev/null +++ b/mini-lsm-book-wip/src/08-key-compression.md @@ -0,0 +1,3 @@ +# Save some space, hopefully + + \ No newline at end of file diff --git a/mini-lsm-book-wip/src/09-key-compression.md b/mini-lsm-book-wip/src/09-key-compression.md deleted file mode 100644 index 65b3f02..0000000 --- a/mini-lsm-book-wip/src/09-key-compression.md +++ /dev/null @@ -1 +0,0 @@ -# Key Compression diff --git a/mini-lsm-book-wip/src/09-whats-next.md b/mini-lsm-book-wip/src/09-whats-next.md new file mode 100644 index 0000000..4a10510 --- /dev/null +++ b/mini-lsm-book-wip/src/09-whats-next.md @@ -0,0 +1,3 @@ +# What's next + + \ No newline at end of file diff --git a/mini-lsm-book-wip/src/10-ts.md b/mini-lsm-book-wip/src/10-ts.md deleted file mode 100644 index 8ebe418..0000000 --- a/mini-lsm-book-wip/src/10-ts.md +++ /dev/null @@ -1 +0,0 @@ -# Encode the Timestamp diff --git a/mini-lsm-book-wip/src/11-prefix-bloom-filter.md b/mini-lsm-book-wip/src/11-prefix-bloom-filter.md deleted file mode 100644 index b4adb69..0000000 --- a/mini-lsm-book-wip/src/11-prefix-bloom-filter.md +++ /dev/null @@ -1 +0,0 @@ -# Prefix Bloom Filter diff --git a/mini-lsm-book-wip/src/12-mvcc-read.md b/mini-lsm-book-wip/src/12-mvcc-read.md deleted file mode 100644 index 9163a15..0000000 --- a/mini-lsm-book-wip/src/12-mvcc-read.md +++ /dev/null @@ -1 +0,0 @@ -# Read with Timestamp diff --git a/mini-lsm-book-wip/src/13-watermark.md b/mini-lsm-book-wip/src/13-watermark.md deleted file mode 100644 index 2125cf8..0000000 --- a/mini-lsm-book-wip/src/13-watermark.md +++ /dev/null @@ -1 +0,0 @@ -# Snapshots and Watermark diff --git a/mini-lsm-book-wip/src/14-garbage-collection.md b/mini-lsm-book-wip/src/14-garbage-collection.md deleted file mode 100644 index 2fdd036..0000000 --- a/mini-lsm-book-wip/src/14-garbage-collection.md +++ /dev/null @@ -1 +0,0 @@ -# Garbage Collection diff --git a/mini-lsm-book-wip/src/15-io-optimization.md b/mini-lsm-book-wip/src/15-io-optimization.md deleted file mode 100644 index 1f4ea5a..0000000 --- a/mini-lsm-book-wip/src/15-io-optimization.md +++ /dev/null @@ -1 +0,0 @@ -# I/O Optimization diff --git a/mini-lsm-book-wip/src/16-compression.md b/mini-lsm-book-wip/src/16-compression.md deleted file mode 100644 index 16c294b..0000000 --- a/mini-lsm-book-wip/src/16-compression.md +++ /dev/null @@ -1 +0,0 @@ -# Block Compression diff --git a/mini-lsm-book-wip/src/17-async.md b/mini-lsm-book-wip/src/17-async.md deleted file mode 100644 index fafcb56..0000000 --- a/mini-lsm-book-wip/src/17-async.md +++ /dev/null @@ -1 +0,0 @@ -# Async Engine diff --git a/mini-lsm-book-wip/src/18-serializable.md b/mini-lsm-book-wip/src/18-serializable.md deleted file mode 100644 index ac2a4cb..0000000 --- a/mini-lsm-book-wip/src/18-serializable.md +++ /dev/null @@ -1 +0,0 @@ -# Serializable Snapshot Isolation diff --git a/mini-lsm-book-wip/src/19-sql.md b/mini-lsm-book-wip/src/19-sql.md deleted file mode 100644 index 220de22..0000000 --- a/mini-lsm-book-wip/src/19-sql.md +++ /dev/null @@ -1 +0,0 @@ -# SQL over Mini LSM diff --git a/mini-lsm-book-wip/src/SUMMARY.md b/mini-lsm-book-wip/src/SUMMARY.md index 0e24647..0662d2f 100644 --- a/mini-lsm-book-wip/src/SUMMARY.md +++ b/mini-lsm-book-wip/src/SUMMARY.md @@ -3,35 +3,43 @@ [Overview](./00-overview.md) [Get Started](./00-get-started.md) ---- +# Week 1: Mini-LSM -# Week 1: Storage Format - -- [Blocks](./01-block.md) -- [Sorted String Table (SST)](./02-sst.md) -- [Merge Iterators](./03-memtable.md) -- [Storage Engine](./04-engine.md) +- [Overview](./week1-overview.md) + - [Blocks](./week1-01-block.md) + - [Sorted String Table (SST)](./week1-02-sst.md) + - [Memtables](./week1-03-memtable.md) + - [Merge Iterators](./week1-04-merge-iterator.md) + - [Read Path](./week1-05-read-path.md) + - [Write Path](./week1-06-write-path.md) # Week 2: Compaction and Persistence -- [Compaction Task](./05-compaction.md) -- [Compaction Strategy](./06-compaction-strategy.md) -- [Write-Ahead Log (WAL) and Manifest](./07-recovery.md) -- [Bloom Filter](./08-bloom-filter.md) -- [Key Compression](./09-key-compression.md) +- [Overview](./week2-overview.md) + - [Simple Compaction](./week2-01-compaction.md) + - [Tiered Compaction](./week2-02-tiered.md) + - [Leveled Compaction](./week2-03-leveled.md) + - [Manifest](./week2-04-manifest.md) + - [Write-Ahead Log (WAL)](./week2-05-wal.md) + - [SST Optimizations](./week2-06-sst-optimizations.md) # Week 3: MVCC -- [Encode the Timestamp](./10-ts.md) -- [Prefix Bloom Filter](./11-prefix-bloom-filter.md) -- [Read with Timestamp](./12-mvcc-read.md) -- [Snapshots and Watermark](./13-watermark.md) -- [Garbage Collection](./14-garbage-collection.md) +- [Overview](./week3-overview.md) -# The Rest of Your Life +# The Rest of Your Life (TBD) -- [I/O Optimization](./15-io-optimization.md) -- [Block Compression](./16-compression.md) -- [Async Engine](./17-async.md) -- [Serializable Snapshot Isolation](./18-serializable.md) -- [SQL over Mini LSM](./19-sql.md) +--- + +# Mini-LSM v1 + +- [Overview](./00-v1.md) + - [Store key-value pairs in little blocks](./01-block.md) + - [And make them into an SST](./02-sst.md) + - [Now it's time to merge everything](./03-memtable.md) + - [The engine is on fire](./04-engine.md) + - [Let's do something in the background](./05-compaction.md) + - [Be careful when the system crashes](./06-recovery.md) + - [A good bloom filter makes life easier](./07-bloom-filter.md) + - [Save some space, hopefully](./08-key-compression.md) + - [What's next](./09-whats-next.md) diff --git a/mini-lsm-book-wip/src/week1-01-block.md b/mini-lsm-book-wip/src/week1-01-block.md new file mode 100644 index 0000000..54e0a5f --- /dev/null +++ b/mini-lsm-book-wip/src/week1-01-block.md @@ -0,0 +1 @@ +# Blocks diff --git a/mini-lsm-book-wip/src/week1-02-sst.md b/mini-lsm-book-wip/src/week1-02-sst.md new file mode 100644 index 0000000..0794bfd --- /dev/null +++ b/mini-lsm-book-wip/src/week1-02-sst.md @@ -0,0 +1 @@ +# Sorted String Table (SST) diff --git a/mini-lsm-book-wip/src/week1-03-memtable.md b/mini-lsm-book-wip/src/week1-03-memtable.md new file mode 100644 index 0000000..3abae24 --- /dev/null +++ b/mini-lsm-book-wip/src/week1-03-memtable.md @@ -0,0 +1 @@ +# Memtables diff --git a/mini-lsm-book-wip/src/week1-04-merge-iterator.md b/mini-lsm-book-wip/src/week1-04-merge-iterator.md new file mode 100644 index 0000000..43e07b1 --- /dev/null +++ b/mini-lsm-book-wip/src/week1-04-merge-iterator.md @@ -0,0 +1 @@ +# Merge Iterators diff --git a/mini-lsm-book-wip/src/week1-05-read-path.md b/mini-lsm-book-wip/src/week1-05-read-path.md new file mode 100644 index 0000000..3c3129c --- /dev/null +++ b/mini-lsm-book-wip/src/week1-05-read-path.md @@ -0,0 +1 @@ +# Read Path diff --git a/mini-lsm-book-wip/src/week1-06-write-path.md b/mini-lsm-book-wip/src/week1-06-write-path.md new file mode 100644 index 0000000..a35123e --- /dev/null +++ b/mini-lsm-book-wip/src/week1-06-write-path.md @@ -0,0 +1 @@ +# Write Path diff --git a/mini-lsm-book-wip/src/week1-overview.md b/mini-lsm-book-wip/src/week1-overview.md new file mode 100644 index 0000000..08b7ff5 --- /dev/null +++ b/mini-lsm-book-wip/src/week1-overview.md @@ -0,0 +1 @@ +# Storage Format and Simple Engine diff --git a/mini-lsm-book-wip/src/week2-01-compaction.md b/mini-lsm-book-wip/src/week2-01-compaction.md new file mode 100644 index 0000000..134827b --- /dev/null +++ b/mini-lsm-book-wip/src/week2-01-compaction.md @@ -0,0 +1 @@ +# Simple Compaction diff --git a/mini-lsm-book-wip/src/week2-02-tiered.md b/mini-lsm-book-wip/src/week2-02-tiered.md new file mode 100644 index 0000000..9833b69 --- /dev/null +++ b/mini-lsm-book-wip/src/week2-02-tiered.md @@ -0,0 +1 @@ +# Tiered Compaction diff --git a/mini-lsm-book-wip/src/week2-03-leveled.md b/mini-lsm-book-wip/src/week2-03-leveled.md new file mode 100644 index 0000000..6e6892f --- /dev/null +++ b/mini-lsm-book-wip/src/week2-03-leveled.md @@ -0,0 +1 @@ +# Leveled Compaction diff --git a/mini-lsm-book-wip/src/week2-04-manifest.md b/mini-lsm-book-wip/src/week2-04-manifest.md new file mode 100644 index 0000000..243e07a --- /dev/null +++ b/mini-lsm-book-wip/src/week2-04-manifest.md @@ -0,0 +1 @@ +# Manifest diff --git a/mini-lsm-book-wip/src/07-recovery.md b/mini-lsm-book-wip/src/week2-05-wal.md similarity index 100% rename from mini-lsm-book-wip/src/07-recovery.md rename to mini-lsm-book-wip/src/week2-05-wal.md diff --git a/mini-lsm-book-wip/src/week2-06-sst-optimizations.md b/mini-lsm-book-wip/src/week2-06-sst-optimizations.md new file mode 100644 index 0000000..0e2d420 --- /dev/null +++ b/mini-lsm-book-wip/src/week2-06-sst-optimizations.md @@ -0,0 +1 @@ +# SST Optimizations diff --git a/mini-lsm-book-wip/src/week2-overview.md b/mini-lsm-book-wip/src/week2-overview.md new file mode 100644 index 0000000..c343e4e --- /dev/null +++ b/mini-lsm-book-wip/src/week2-overview.md @@ -0,0 +1 @@ +# Compaction and Persistence diff --git a/mini-lsm-book-wip/src/week3-overview.md b/mini-lsm-book-wip/src/week3-overview.md new file mode 100644 index 0000000..07dd0c5 --- /dev/null +++ b/mini-lsm-book-wip/src/week3-overview.md @@ -0,0 +1 @@ +# Overview