diff --git a/mini-lsm-book-wip/.gitignore b/mini-lsm-book-wip/.gitignore new file mode 100644 index 0000000..7585238 --- /dev/null +++ b/mini-lsm-book-wip/.gitignore @@ -0,0 +1 @@ +book diff --git a/mini-lsm-book-wip/book.toml b/mini-lsm-book-wip/book.toml new file mode 100644 index 0000000..fd33543 --- /dev/null +++ b/mini-lsm-book-wip/book.toml @@ -0,0 +1,6 @@ +[book] +authors = ["Alex Chi"] +language = "en" +multilingual = false +src = "src" +title = "LSM in 3 Weeks" diff --git a/mini-lsm-book-wip/src/00-get-started.md b/mini-lsm-book-wip/src/00-get-started.md new file mode 100644 index 0000000..7e0bdca --- /dev/null +++ b/mini-lsm-book-wip/src/00-get-started.md @@ -0,0 +1 @@ +# Get Started diff --git a/mini-lsm-book-wip/src/00-overview.md b/mini-lsm-book-wip/src/00-overview.md new file mode 100644 index 0000000..07dd0c5 --- /dev/null +++ b/mini-lsm-book-wip/src/00-overview.md @@ -0,0 +1 @@ +# Overview diff --git a/mini-lsm-book-wip/src/01-block.md b/mini-lsm-book-wip/src/01-block.md new file mode 100644 index 0000000..54e0a5f --- /dev/null +++ b/mini-lsm-book-wip/src/01-block.md @@ -0,0 +1 @@ +# Blocks diff --git a/mini-lsm-book-wip/src/02-sst.md b/mini-lsm-book-wip/src/02-sst.md new file mode 100644 index 0000000..0794bfd --- /dev/null +++ b/mini-lsm-book-wip/src/02-sst.md @@ -0,0 +1 @@ +# Sorted String Table (SST) diff --git a/mini-lsm-book-wip/src/03-memtable.md b/mini-lsm-book-wip/src/03-memtable.md new file mode 100644 index 0000000..43e07b1 --- /dev/null +++ b/mini-lsm-book-wip/src/03-memtable.md @@ -0,0 +1 @@ +# Merge Iterators diff --git a/mini-lsm-book-wip/src/04-engine.md b/mini-lsm-book-wip/src/04-engine.md new file mode 100644 index 0000000..3ef1f26 --- /dev/null +++ b/mini-lsm-book-wip/src/04-engine.md @@ -0,0 +1 @@ +# Storage Engine diff --git a/mini-lsm-book-wip/src/05-compaction.md b/mini-lsm-book-wip/src/05-compaction.md new file mode 100644 index 0000000..0e037b4 --- /dev/null +++ b/mini-lsm-book-wip/src/05-compaction.md @@ -0,0 +1 @@ +# Compaction Task diff --git a/mini-lsm-book-wip/src/06-compaction-strategy.md b/mini-lsm-book-wip/src/06-compaction-strategy.md new file mode 100644 index 0000000..e5ad6bd --- /dev/null +++ b/mini-lsm-book-wip/src/06-compaction-strategy.md @@ -0,0 +1 @@ +# Compaction Strategy diff --git a/mini-lsm-book-wip/src/07-recovery.md b/mini-lsm-book-wip/src/07-recovery.md new file mode 100644 index 0000000..9e743f4 --- /dev/null +++ b/mini-lsm-book-wip/src/07-recovery.md @@ -0,0 +1 @@ +# Write-Ahead Log (WAL) diff --git a/mini-lsm-book-wip/src/08-bloom-filter.md b/mini-lsm-book-wip/src/08-bloom-filter.md new file mode 100644 index 0000000..4fe566b --- /dev/null +++ b/mini-lsm-book-wip/src/08-bloom-filter.md @@ -0,0 +1 @@ +# Bloom Filter diff --git a/mini-lsm-book-wip/src/09-key-compression.md b/mini-lsm-book-wip/src/09-key-compression.md new file mode 100644 index 0000000..65b3f02 --- /dev/null +++ b/mini-lsm-book-wip/src/09-key-compression.md @@ -0,0 +1 @@ +# Key Compression diff --git a/mini-lsm-book-wip/src/10-ts.md b/mini-lsm-book-wip/src/10-ts.md new file mode 100644 index 0000000..8ebe418 --- /dev/null +++ b/mini-lsm-book-wip/src/10-ts.md @@ -0,0 +1 @@ +# 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 new file mode 100644 index 0000000..b4adb69 --- /dev/null +++ b/mini-lsm-book-wip/src/11-prefix-bloom-filter.md @@ -0,0 +1 @@ +# 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 new file mode 100644 index 0000000..9163a15 --- /dev/null +++ b/mini-lsm-book-wip/src/12-mvcc-read.md @@ -0,0 +1 @@ +# Read with Timestamp diff --git a/mini-lsm-book-wip/src/13-watermark.md b/mini-lsm-book-wip/src/13-watermark.md new file mode 100644 index 0000000..2125cf8 --- /dev/null +++ b/mini-lsm-book-wip/src/13-watermark.md @@ -0,0 +1 @@ +# 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 new file mode 100644 index 0000000..2fdd036 --- /dev/null +++ b/mini-lsm-book-wip/src/14-garbage-collection.md @@ -0,0 +1 @@ +# Garbage Collection diff --git a/mini-lsm-book-wip/src/SUMMARY.md b/mini-lsm-book-wip/src/SUMMARY.md new file mode 100644 index 0000000..95ef465 --- /dev/null +++ b/mini-lsm-book-wip/src/SUMMARY.md @@ -0,0 +1,29 @@ +# LSM in a Week + +[Overview](./00-overview.md) +[Get Started](./00-get-started.md) + +--- + +# 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 + +- [Compaction Task](./05-compaction.md) +- [Compaction Strategy](./06-compaction-strategy.md) +- [Write-Ahead Log (WAL)](./07-recovery.md) +- [Bloom Filter](./08-bloom-filter.md) +- [Key Compression](./09-key-compression.md) + +# Week 3 -- Multi-Version Concurrency Control + +- [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)