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

[WIP] Use B+ tree for manifest structure. #113

Open
wants to merge 14 commits into
base: develop
Choose a base branch
from

Conversation

Little-Wallace
Copy link

Problem

part of #110
Now every read thread will acquire read lock for LevelControl for creating sst iterator. And if we update the files in one level, we need sort all files while holding a write lock and it will block all read thread. I hope I can propose a new structure so that we can update the sst file quickly so that it will not block other read thread too long.

Design

I use a four-level B+ Tree. If a compact job want to add or remove some files in one level (mostly the update files are continuously), it will copy every page it updates (for a four-level B+ Tree, it will copy and replace three pages). There are only tens record of every page, so that the update operation can be very fast.

Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
@Little-Wallace Little-Wallace changed the title Use B+ tree for manifest structure. [WIP] Use B+ tree for manifest structure. Oct 11, 2021
@skyzh
Copy link
Member

skyzh commented Oct 11, 2021

Looks like a good idea! As I'm busy with exams this month, I'll take a look at this at the end of October.

Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
Signed-off-by: Little-Wallace <bupt2013211450@gmail.com>
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

Successfully merging this pull request may close these issues.

2 participants