diff --git a/mini-lsm-book/src/00-get-started.md b/mini-lsm-book/src/00-get-started.md index fa8e271..4d32f0a 100644 --- a/mini-lsm-book/src/00-get-started.md +++ b/mini-lsm-book/src/00-get-started.md @@ -31,3 +31,5 @@ cargo x install-tools cargo x copy-test day1 cargo x scheck ``` + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/00-overview.md b/mini-lsm-book/src/00-overview.md index 4d9386d..602cc20 100644 --- a/mini-lsm-book/src/00-overview.md +++ b/mini-lsm-book/src/00-overview.md @@ -155,3 +155,5 @@ should have a separate preface (before you start) chapter? and what's new with v ## What will you get after taking this course... --> + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/00-v1.md b/mini-lsm-book/src/00-v1.md index d337137..b0ce7e6 100644 --- a/mini-lsm-book/src/00-v1.md +++ b/mini-lsm-book/src/00-v1.md @@ -26,3 +26,5 @@ simple. We recommend you to think carefully about your implementation and write * You can use `cargo x scheck` to run all test cases and do style check in your codebase. * You can use `cargo x copy-test dayX` to copy test cases to the starter code. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/01-block.md b/mini-lsm-book/src/01-block.md index 909cb27..884db23 100644 --- a/mini-lsm-book/src/01-block.md +++ b/mini-lsm-book/src/01-block.md @@ -112,3 +112,5 @@ Here is a list of extra tasks you can do to make the block encoding more robust * Implement block checksum. Verify checksum when decoding the block. * Compress / Decompress block. Compress on `build` and decompress on decoding. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/02-sst.md b/mini-lsm-book/src/02-sst.md index 703b7f1..0e89f39 100644 --- a/mini-lsm-book/src/02-sst.md +++ b/mini-lsm-book/src/02-sst.md @@ -97,3 +97,5 @@ Here is a list of extra tasks you can do to make the block encoding more robust * Implement index checksum. Verify checksum when decoding. * Explore different SST encoding and layout. For example, in the [Lethe](https://disc-projects.bu.edu/lethe/) paper, the author adds secondary key support to SST. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/03-memtable.md b/mini-lsm-book/src/03-memtable.md index fd493f3..6daf16b 100644 --- a/mini-lsm-book/src/03-memtable.md +++ b/mini-lsm-book/src/03-memtable.md @@ -151,3 +151,5 @@ common optimization in LSM storage engines. will stay in the memory even if it has been flushed to disk. To solve this, we can provide a `ForegroundIterator` / `LongIterator` to our user. The iterator will periodically create new underlying storage iterator so as to allow garbage collection of the resources. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/04-engine.md b/mini-lsm-book/src/04-engine.md index e947afa..495f111 100644 --- a/mini-lsm-book/src/04-engine.md +++ b/mini-lsm-book/src/04-engine.md @@ -89,3 +89,5 @@ Remember to change `SsTableIterator` to use the block cache. do some work. One possible optimization is to implement `WriteBatch`. We don't need to immediately write users' requests into mem-table + WAL. We can allow users to do a batch of writes. * Align blocks to 4K and use direct I/O. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/05-compaction.md b/mini-lsm-book/src/05-compaction.md index 23609ae..9d0e019 100644 --- a/mini-lsm-book/src/05-compaction.md +++ b/mini-lsm-book/src/05-compaction.md @@ -14,3 +14,5 @@ and this chapter is now part of: We did not finish this chapter as part of Mini-LSM v1. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/06-recovery.md b/mini-lsm-book/src/06-recovery.md index 57fb4d2..0bb1f43 100644 --- a/mini-lsm-book/src/06-recovery.md +++ b/mini-lsm-book/src/06-recovery.md @@ -11,3 +11,5 @@ and this chapter is now part of: We did not finish this chapter as part of Mini-LSM v1. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/07-bloom-filter.md b/mini-lsm-book/src/07-bloom-filter.md index 3607f5e..8d74239 100644 --- a/mini-lsm-book/src/07-bloom-filter.md +++ b/mini-lsm-book/src/07-bloom-filter.md @@ -9,3 +9,5 @@ and this chapter is now part of [Mini LSM Week 1 Day 7: SST Optimizations](./wee We did not finish this chapter as part of Mini-LSM v1. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/08-key-compression.md b/mini-lsm-book/src/08-key-compression.md index d3f28f8..9e3226e 100644 --- a/mini-lsm-book/src/08-key-compression.md +++ b/mini-lsm-book/src/08-key-compression.md @@ -8,3 +8,5 @@ and this chapter is now part of [Mini LSM Week 1 Day 7: SST Optimizations](./wee We did not finish this chapter as part of Mini-LSM v1. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/09-whats-next.md b/mini-lsm-book/src/09-whats-next.md index 4ce2706..64424de 100644 --- a/mini-lsm-book/src/09-whats-next.md +++ b/mini-lsm-book/src/09-whats-next.md @@ -1,3 +1,5 @@ # What's Next We did not finish this chapter as part of Mini-LSM v1. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/copyright.md b/mini-lsm-book/src/copyright.md new file mode 100644 index 0000000..794a83b --- /dev/null +++ b/mini-lsm-book/src/copyright.md @@ -0,0 +1 @@ +

Copyright © 2022 - 2024 Alex Chi Z. All Rights Reserved.

diff --git a/mini-lsm-book/src/week1-01-memtable.md b/mini-lsm-book/src/week1-01-memtable.md index 7948825..be1c96c 100644 --- a/mini-lsm-book/src/week1-01-memtable.md +++ b/mini-lsm-book/src/week1-01-memtable.md @@ -13,3 +13,5 @@ In this chapter, you will: ## Task 2: Write Path - Freezing a Memtable ## Task 3: Read Path - Get + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week1-02-merge-iterator.md b/mini-lsm-book/src/week1-02-merge-iterator.md index 4480616..d005107 100644 --- a/mini-lsm-book/src/week1-02-merge-iterator.md +++ b/mini-lsm-book/src/week1-02-merge-iterator.md @@ -13,3 +13,5 @@ In this chapter, you will: ## Task 2: Merge Iterator ## Task 3: Read Path - Scan + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week1-03-block.md b/mini-lsm-book/src/week1-03-block.md index 14c67d4..f7e0948 100644 --- a/mini-lsm-book/src/week1-03-block.md +++ b/mini-lsm-book/src/week1-03-block.md @@ -10,3 +10,5 @@ In this chapter, you will: ## Task 1: Block Builder ## Task 2: Block Iterator + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week1-04-sst.md b/mini-lsm-book/src/week1-04-sst.md index d2126e5..21a16e1 100644 --- a/mini-lsm-book/src/week1-04-sst.md +++ b/mini-lsm-book/src/week1-04-sst.md @@ -10,3 +10,5 @@ In this chapter, you will: ## Task 1: SST Builder ## Task 2: SST Iterator + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week1-05-read-path.md b/mini-lsm-book/src/week1-05-read-path.md index 05e4751..454792c 100644 --- a/mini-lsm-book/src/week1-05-read-path.md +++ b/mini-lsm-book/src/week1-05-read-path.md @@ -13,3 +13,5 @@ In this chapter, you will: ## Task 2: Read Path - Get ## Task 3: Read Path - Scan + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week1-06-write-path.md b/mini-lsm-book/src/week1-06-write-path.md index 579b22d..0ef17b6 100644 --- a/mini-lsm-book/src/week1-06-write-path.md +++ b/mini-lsm-book/src/week1-06-write-path.md @@ -10,3 +10,5 @@ In this chapter, you will: ## Task 1: Flush Memtable to SST ## Task 2: Update the LSM State + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week1-07-sst-optimizations.md b/mini-lsm-book/src/week1-07-sst-optimizations.md index 30e5e64..da55e47 100644 --- a/mini-lsm-book/src/week1-07-sst-optimizations.md +++ b/mini-lsm-book/src/week1-07-sst-optimizations.md @@ -8,3 +8,5 @@ In this chapter, you will: * Implement bloom filter on SSTs and integrate into the LSM read path `get`. * Implement key compression in SST block format. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week1-overview.md b/mini-lsm-book/src/week1-overview.md index be636f6..7418ae8 100644 --- a/mini-lsm-book/src/week1-overview.md +++ b/mini-lsm-book/src/week1-overview.md @@ -4,3 +4,4 @@ key functionalities index +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week2-01-compaction.md b/mini-lsm-book/src/week2-01-compaction.md index dffce33..27171aa 100644 --- a/mini-lsm-book/src/week2-01-compaction.md +++ b/mini-lsm-book/src/week2-01-compaction.md @@ -7,3 +7,5 @@ In this chapter, you will: * Implement the compaction logic that combines some files and produces new files. * Implement the logic to update the LSM states and manage SST files on the filesystem. * Update LSM read path to incorporate the LSM levels. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week2-02-simple.md b/mini-lsm-book/src/week2-02-simple.md index 4ec43b4..18c353d 100644 --- a/mini-lsm-book/src/week2-02-simple.md +++ b/mini-lsm-book/src/week2-02-simple.md @@ -6,3 +6,5 @@ In this chapter, you will: * Implement a simple leveled compaction strategy and simulate it on the compaction simulator. * Start compaction as a background task and implement a compaction trigger in the system. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week2-03-tiered.md b/mini-lsm-book/src/week2-03-tiered.md index c9c7fdc..08ea412 100644 --- a/mini-lsm-book/src/week2-03-tiered.md +++ b/mini-lsm-book/src/week2-03-tiered.md @@ -6,3 +6,5 @@ In this chapter, you will: * Implement a tiered compaction strategy and simulate it on the compaction simulator. * Incorporate tiered compaction strategy into the system. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week2-04-leveled.md b/mini-lsm-book/src/week2-04-leveled.md index 9e03292..99cf115 100644 --- a/mini-lsm-book/src/week2-04-leveled.md +++ b/mini-lsm-book/src/week2-04-leveled.md @@ -6,3 +6,5 @@ In this chapter, you will: * Implement a leveled compaction strategy and simulate it on the compaction simulator. * Incorporate leveled compaction strategy into the system. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week2-05-manifest.md b/mini-lsm-book/src/week2-05-manifest.md index 821b86a..84274ad 100644 --- a/mini-lsm-book/src/week2-05-manifest.md +++ b/mini-lsm-book/src/week2-05-manifest.md @@ -6,3 +6,5 @@ In this chapter, you will: * Implement encoding and decoding of the manifest file. * Recover from the manifest when the system restarts. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week2-06-wal.md b/mini-lsm-book/src/week2-06-wal.md index 05306b9..8660c22 100644 --- a/mini-lsm-book/src/week2-06-wal.md +++ b/mini-lsm-book/src/week2-06-wal.md @@ -6,3 +6,5 @@ In this chapter, you will: * Implement encoding and decoding of the write-ahead log file. * Recover memtables from the WALs when the system restarts. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week2-07-snacks.md b/mini-lsm-book/src/week2-07-snacks.md index 4353940..07b76c0 100644 --- a/mini-lsm-book/src/week2-07-snacks.md +++ b/mini-lsm-book/src/week2-07-snacks.md @@ -8,3 +8,5 @@ In this chapter, you will: * Implement the batch write interface. * Add checksums to the blocks, SST metadata, manifest, and WALs. + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week2-overview.md b/mini-lsm-book/src/week2-overview.md index d488fa5..b281fab 100644 --- a/mini-lsm-book/src/week2-overview.md +++ b/mini-lsm-book/src/week2-overview.md @@ -9,3 +9,5 @@ ask 2 what if questions LSM is about tradeoffs learning path: feel free to skip compactions? + +{{#include copyright.md}} diff --git a/mini-lsm-book/src/week3-overview.md b/mini-lsm-book/src/week3-overview.md index 07dd0c5..2069f2b 100644 --- a/mini-lsm-book/src/week3-overview.md +++ b/mini-lsm-book/src/week3-overview.md @@ -1 +1,3 @@ # Overview + +{{#include copyright.md}}