From 00ca505d954411765a3562a11d6e4a2bd9d325cd Mon Sep 17 00:00:00 2001 From: Alex Chi Date: Wed, 10 Jan 2024 19:27:27 +0800 Subject: [PATCH] docs: ridiculous chapters... unlikely to finish Signed-off-by: Alex Chi --- README.md | 48 ++++++++++++--------- 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 | 16 +++++-- 7 files changed, 45 insertions(+), 24 deletions(-) create mode 100644 mini-lsm-book-wip/src/15-io-optimization.md create mode 100644 mini-lsm-book-wip/src/16-compression.md create mode 100644 mini-lsm-book-wip/src/17-async.md create mode 100644 mini-lsm-book-wip/src/18-serializable.md create mode 100644 mini-lsm-book-wip/src/19-sql.md diff --git a/README.md b/README.md index 0cc4463..6508897 100644 --- a/README.md +++ b/README.md @@ -27,24 +27,32 @@ We are working on a new version of the mini-lsm tutorial that is split into 3 we * Week 1: Storage Format + Engine Skeleton * Week 2: Compaction and Persistence * Week 3: Multi-Version Concurrency Control +* The Extra Week / Rest of Your Life: Optimizations (unlikely to be available in 2024...) -| Week + Chapter | Topic | Solution | Starter Code | Writeup | -| ---- | ------------------ | --------------- | ----------------- | --------- | -| 1.1 | Block Format | ✅ | ✅ | ✅ | -| 1.2 | Table Format | ✅ | ✅ | ✅ | | -| 1.3 | Memtables | ✅ | ✅ | ✅ | | -| 1.4 | Merge Iterators | ✅ | ✅ | ✅ | -| 1.5 | Storage Engine - Read Path | ✅ | ✅ | ✅ | -| 1.6 | Storage Engine - Write Path | ✅ | ✅ | ✅ | -| 2.1 | Compaction Framework | ✅ | 🚧 | 🚧 | -| 2.2 | Compaction Strategy | 🚧 | | | -| 2.3 | Manifest | | | | -| 2.4 | Write-Ahead Log | | | | -| 2.5 | Bloom Filter and Key Compression | | | | -| 2.6 | Benchmarking | | | | -| 3.1 | Timestamp Encoding + Prefix Bloom Filter | | | | -| 3.2 | Snapshot Read | | | | -| 3.3 | Watermark and Garbage Collection | | | | -| 3.4 | Transactions | | | | -| 3.5 | Serializable Snapshot Isolation | | | | -| 3.6 | What's Next... | | | | +| Week + Chapter | Topic | Solution | Starter Code | Writeup | +| -------------- | ---------------------------------------- | -------- | ------------ | ------- | +| 1.1 | Block Format | ✅ | ✅ | ✅ | +| 1.2 | Table Format | ✅ | ✅ | ✅ | +| 1.3 | Memtables | ✅ | ✅ | ✅ | +| 1.4 | Merge Iterators | ✅ | ✅ | ✅ | +| 1.5 | Storage Engine - Read Path | ✅ | ✅ | ✅ | +| 1.6 | Storage Engine - Write Path | ✅ | ✅ | ✅ | +| 2.1 | Compaction Framework | ✅ | 🚧 | 🚧 | +| 2.2 | Compaction Strategy | 🚧 | | | +| 2.3 | Manifest | | | | +| 2.4 | Write-Ahead Log | | | | +| 2.5 | Bloom Filter and Key Compression | | | | +| 2.6 | Benchmarking | | | | +| 3.1 | Timestamp Encoding + Prefix Bloom Filter | | | | +| 3.2 | Snapshot Read | | | | +| 3.3 | Watermark and Garbage Collection | | | | +| 3.4 | Transactions | | | | +| 3.5 | Serializable Snapshot Isolation | | | | +| 3.6 | What's Next... | | | | +| 4.1 | Block Compression | | | | +| 4.2 | Rate Limiter and I/O Optimizations | | | | +| 4.3 | Build Your Own Block Cache | | | | +| 4.4 | Async Engine | | | | +| 4.5 | Key-Value Separation | | | | +| 4.6 | Column Families | | | | +| 4.7 | SQL over Mini-LSM | | | | diff --git a/mini-lsm-book-wip/src/15-io-optimization.md b/mini-lsm-book-wip/src/15-io-optimization.md new file mode 100644 index 0000000..1f4ea5a --- /dev/null +++ b/mini-lsm-book-wip/src/15-io-optimization.md @@ -0,0 +1 @@ +# I/O Optimization diff --git a/mini-lsm-book-wip/src/16-compression.md b/mini-lsm-book-wip/src/16-compression.md new file mode 100644 index 0000000..16c294b --- /dev/null +++ b/mini-lsm-book-wip/src/16-compression.md @@ -0,0 +1 @@ +# Block Compression diff --git a/mini-lsm-book-wip/src/17-async.md b/mini-lsm-book-wip/src/17-async.md new file mode 100644 index 0000000..fafcb56 --- /dev/null +++ b/mini-lsm-book-wip/src/17-async.md @@ -0,0 +1 @@ +# Async Engine diff --git a/mini-lsm-book-wip/src/18-serializable.md b/mini-lsm-book-wip/src/18-serializable.md new file mode 100644 index 0000000..ac2a4cb --- /dev/null +++ b/mini-lsm-book-wip/src/18-serializable.md @@ -0,0 +1 @@ +# Serializable Snapshot Isolation diff --git a/mini-lsm-book-wip/src/19-sql.md b/mini-lsm-book-wip/src/19-sql.md new file mode 100644 index 0000000..220de22 --- /dev/null +++ b/mini-lsm-book-wip/src/19-sql.md @@ -0,0 +1 @@ +# SQL over Mini LSM diff --git a/mini-lsm-book-wip/src/SUMMARY.md b/mini-lsm-book-wip/src/SUMMARY.md index 95ef465..0e24647 100644 --- a/mini-lsm-book-wip/src/SUMMARY.md +++ b/mini-lsm-book-wip/src/SUMMARY.md @@ -5,25 +5,33 @@ --- -# Week 1 -- Storage Format +# 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) -# Week 2 -- Compaction and Persistence +# Week 2: Compaction and Persistence - [Compaction Task](./05-compaction.md) - [Compaction Strategy](./06-compaction-strategy.md) -- [Write-Ahead Log (WAL)](./07-recovery.md) +- [Write-Ahead Log (WAL) and Manifest](./07-recovery.md) - [Bloom Filter](./08-bloom-filter.md) - [Key Compression](./09-key-compression.md) -# Week 3 -- Multi-Version Concurrency Control +# 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) + +# The Rest of Your Life + +- [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)