This is a yearly release of the mini-lsm course. The 2025 release includes various bug fixes and typo fixes. I would like to thank everyone who helped with this course.
Join the Discord server: https://skyzh.dev/join/discord
Start learning: https://skyzh.github.io/mini-lsm/
Week 1+2 reference solution: https://github.com/skyzh/mini-lsm/tree/main/mini-lsm
Week 3 reference solution: https://github.com/skyzh/mini-lsm/tree/main/mini-lsm-mvcc
Solution checkpoint (still the v202401 version): https://github.com/skyzh/mini-lsm-solution-checkpoint
Your feedback is greatly appreciated -- feel free to discuss and leave your comments in the Discord Server or on GitHub!
What's Changed
- feat: refine the CLI tool by @leiysky in #33
- fix: readme typo by @PinelliaC in #34
- chore: add license link by @caicancai in #36
- docs: correct doc error in week1_day1_task2 by @xiaguan in #38
- docs: add the unknown link in week1_day1_task1's docs by @Zeng1998 in #39
- docs: fix a typo by @Zeng1998 in #40
- refactor: error handling by @PinelliaC in #41
- chore: typos by @ben1009 in #42
- Fix paths to lsm_{iterator,storage}.rs in Week 1 Day 2 by @lacop in #44
- test: improve week1_day2::test_task2_merge_error by @xxchan in #43
- simplify the implementation of scan by @letterbeezps in #45
- add hint for week2 day5&day6 by @HuSharp in #46
- fix: typo by @PinelliaC in #50
- Update week1-07-sst-optimizations.md by @redixhumayun in #49
- Fix W1D6 test by @yyin-dev in #48
- Improve readability and clarity by @yyin-dev in #52
- doc: week2-03-tiered.md by @YangchenYe323 in #57
- docs: week2-02-simple.md by @YangchenYe323 in #54
- fix capacity of level ssts by @letterbeezps in #55
- Fix path name for concat iterator by @zxch3n in #58
- test: test scan exclusive start on a sstable by @zxch3n in #56
- fix: typo by @Yongxin-Hu in #61
- fix: typo in md (iter->tier) by @cypppper in #64
- fix: call lsm::close when closing the cli by @dimbtp in #60
- chore: typos & refine comments by @ben1009 in #65
- Fix typos in W3D5 writeup and code by @yyin-dev in #67
- Fix minor mistake in W3D6 writeup by @yyin-dev in #69
- chore: typo in week2-05-manifest.md by @ben1009 in #73
- [fix]: Fix typo in w1d6 by @Gleiphir2769 in #75
- Add A simple solution to solutions list by @slowpz in #77
- [test]: Modify test_sst_build_all() to add checks for first_key and last_key of SST by @Gleiphir2769 in #76
- Update week3-06-serializable.md by @redixhumayun in #79
- Fix some clippy lint. by @Foreverhighness in #80
- bump dependencies by @skyzh in #81
- fix: ensure WAL is atomic for each write batch by @skyzh in #84
- fix: Avoid leveled compaction crash when recovering from manifest by @YangchenYe323 in #63
- docs: add recovery mode for leveled compaction by @skyzh in #86
- book: more questions on multi-tenant systems by @skyzh in #87
- Add fh solution. by @Foreverhighness in #89
- fix: universal compaction condition by @skyzh in #97
- fix(docs): update universal compaction instructions by @skyzh in #101
- Update week1-05-read-path.md, fix typo by @billonahill in #104
- chore: bump compiler version and clippy fixes by @skyzh in #105
- fix: update pebblesdb link by @nautaa in #110
- Fix typo in week2-01-compaction.md by @elliottyoon in #103
- Clarify more about the binary heap by @billonahill in #102
- fix(compaction): correct level0_file_num_compaction_trigger in simple leveled compaction by @zztaki in #112
- fix(book): typo w2d3 and week3 overview by @dqkqd in #117
- relicense mini-lsm-book to CC BY-NC-SA 4.0 by @skyzh in #118
New Contributors
- @leiysky made their first contribution in #33
- @PinelliaC made their first contribution in #34
- @caicancai made their first contribution in #36
- @xiaguan made their first contribution in #38
- @Zeng1998 made their first contribution in #39
- @ben1009 made their first contribution in #42
- @lacop made their first contribution in #44
- @xxchan made their first contribution in #43
- @letterbeezps made their first contribution in #45
- @HuSharp made their first contribution in #46
- @redixhumayun made their first contribution in #49
- @yyin-dev made their first contribution in #48
- @YangchenYe323 made their first contribution in #57
- @zxch3n made their first contribution in #58
- @Yongxin-Hu made their first contribution in #61
- @cypppper made their first contribution in #64
- @dimbtp made their first contribution in #60
- @Gleiphir2769 made their first contribution in #75
- @slowpz made their first contribution in #77
- @Foreverhighness made their first contribution in #80
- @billonahill made their first contribution in #104
- @nautaa made their first contribution in #110
- @elliottyoon made their first contribution in #103
- @zztaki made their first contribution in #112
- @dqkqd made their first contribution in #117
Full Changelog: v202401...v202501