Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Personal view about 3.6 Partial SSI #95

Open
Beauuu-0826 opened this issue Aug 27, 2024 · 1 comment
Open

Personal view about 3.6 Partial SSI #95

Beauuu-0826 opened this issue Aug 27, 2024 · 1 comment

Comments

@Beauuu-0826
Copy link

In my view, task 2 https://skyzh.github.io/mini-lsm/week3-06-serializable.html#task-2-track-read-set-in-scan here isn't able to implement(it might be wrong), cause I can't iterate all keys given a RangeBound, thus the testcase of task2 can't be cover also.
And I've noticed that the bonus task mention about predicate lock, and this might need to change the data structure used to track read set and write set to avoid the write skew phantom, like track read-op as share mode, write-op as exclusive mode and do some conflict detections

And when I implement 3.6, I think it's better we can move the transaction layer up into MiniLsm instead of LsmStorageInner, then we can keep the LsmStorageInner implementation unchanged, and since we gain the commit lock to enforce only one transaction can enter the commit phase at a time, the commit_ts can simply be mvcc.latest_commit_ts().

@skyzh
Copy link
Owner

skyzh commented Aug 27, 2024

thanks for the feedbacks :) noted and will fix them in the next revision

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants