diff --git a/mini-lsm-book/src/week3-01-ts-key-refactor.md b/mini-lsm-book/src/week3-01-ts-key-refactor.md index a5db85b..c5cf4eb 100644 --- a/mini-lsm-book/src/week3-01-ts-key-refactor.md +++ b/mini-lsm-book/src/week3-01-ts-key-refactor.md @@ -5,6 +5,15 @@ In this chapter, you will: * Refactor your implementation to use key+ts representation. * Make your code compile with the new key representation. +To run test cases, + +``` +cargo x copy-test --week 3 --day 1 +cargo x scheck +``` + +**Note: We do not have full unit tests for this chapter. All you need to do is to make your code compile.** + ## Task 0: Use MVCC Key Encoding You will need to replace the key encoding module to the MVCC one. We have removed some interfaces from the original key module and implemented new comparators for the keys. If you followed the instructions in the previous chapters and did not use `into_inner` on the key, you should pass all test cases on day 3 after all the refactors. Otherwise, you will need to look carefully on the places where you only compare the keys without looking at the timestamps. diff --git a/mini-lsm-book/src/week3-02-snapshot-read-part-1.md b/mini-lsm-book/src/week3-02-snapshot-read-part-1.md index 98c54c6..50d0db0 100644 --- a/mini-lsm-book/src/week3-02-snapshot-read-part-1.md +++ b/mini-lsm-book/src/week3-02-snapshot-read-part-1.md @@ -9,6 +9,15 @@ In this chapter, you will: During the refactor, you might need to change the signature of some functions from `&self` to `self: &Arc` as necessary. +To run test cases, + +``` +cargo x copy-test --week 3 --day 2 +cargo x scheck +``` + +**Note: You will also need to pass everything <= 2.4 after finishing this chapter.** + ## Task 1: MemTable, Write-Ahead Log, and Read Path In this task, you will need to modify: diff --git a/mini-lsm-book/src/week3-03-snapshot-read-part-2.md b/mini-lsm-book/src/week3-03-snapshot-read-part-2.md index 3ade6c3..c818f55 100644 --- a/mini-lsm-book/src/week3-03-snapshot-read-part-2.md +++ b/mini-lsm-book/src/week3-03-snapshot-read-part-2.md @@ -10,6 +10,15 @@ At the end of the day, your engine will be able to give the user a consistent vi During the refactor, you might need to change the signature of some functions from `&self` to `self: &Arc` as necessary. +To run test cases, + +``` +cargo x copy-test --week 3 --day 3 +cargo x scheck +``` + +**Note: You will also need to pass test cases for 2.5 and 2.6 after finishing this chapter.** + ## Task 1: LSM Iterator with Read Timestamp The goal of this chapter is to have something like: diff --git a/mini-lsm-book/src/week3-04-watermark.md b/mini-lsm-book/src/week3-04-watermark.md index dab67da..9c05369 100644 --- a/mini-lsm-book/src/week3-04-watermark.md +++ b/mini-lsm-book/src/week3-04-watermark.md @@ -2,6 +2,13 @@ In this chapter, you will implement necessary structures to track the lowest read timestamp being used by the user, and collect unused versions from SSTs when doing the compaction. +To run test cases, + +``` +cargo x copy-test --week 3 --day 4 +cargo x scheck +``` + ## Task 1: Implement Watermark In this task, you will need to modify: