-
Notifications
You must be signed in to change notification settings - Fork 597
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
feat: store vnode bitmap in local state store #15183
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rest LGTM!
@@ -434,6 +436,7 @@ pub struct MemtableLocalStateStore<S: StateStoreWrite + StateStoreRead> { | |||
table_id: TableId, | |||
op_consistency_level: OpConsistencyLevel, | |||
table_option: TableOption, | |||
vnodes: Option<Arc<Bitmap>>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For simplicity I think it's unnecessary to store the vnode in this trivial local state store.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we don't store vnodes in this local state store, I think the assertion in state table to check whether the state table and state store vnode bitmap matches will fail.
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
This PR lets local state store aware of the vnodes it is responsible for by storing vnode bitmap in read version. The vnode bitmap will be initialized during state store init and updated on state table
update_vnode_bitmap
. This PR also adds an extra assertion on read version to ensure there is no staging uncommitted data onupdate_vnode_bitmap
.#15099
Checklist
./risedev check
(or alias,./risedev c
)Documentation
Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.