From bcaab6f706cb33ebaea6a1f00c444f84d924f309 Mon Sep 17 00:00:00 2001 From: Yue Yin <41224888+yyin-dev@users.noreply.github.com> Date: Sun, 24 Mar 2024 15:24:38 -0400 Subject: [PATCH] Fix minor mistake in W3D6 writeup (#69) --- mini-lsm-book/src/week3-06-serializable.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mini-lsm-book/src/week3-06-serializable.md b/mini-lsm-book/src/week3-06-serializable.md index 2326423..17e0965 100644 --- a/mini-lsm-book/src/week3-06-serializable.md +++ b/mini-lsm-book/src/week3-06-serializable.md @@ -80,7 +80,7 @@ If the database starts with an initial state of `a=1,b=2`, we should get either txn1: len(scan(..)) = 2 txn2: len(scan(..)) = 2 txn1: put key1 = 2, commit, read set = {a, b}, write set = {key1} -txn2: put key2 = 2, commit, read set = {a, b}, write set = {key1} +txn2: put key2 = 2, commit, read set = {a, b}, write set = {key2} ``` This passes our serializable validation and does not correspond to any serial order of execution! Therefore, a fully-working serializable validation will need to track key ranges, and using key hashes can accelerate the serializable check if only `get` is called. Please refer to the bonus tasks on how you can implement serializable checks correctly.