-
Notifications
You must be signed in to change notification settings - Fork 591
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
refactor(state table): remove commit_no_data_expected
#14864
Conversation
Signed-off-by: Richard Chien <[email protected]>
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.
LGTM!
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.
LGTM once tests pass. Better to incur the branch in StateTable::commit
than in executor IMO.
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.
I believe it was introduced as an optional assertion for developers. According to the changes, however, some developers are taking pains to call it even if not necessary. So +1 for removing that.
Yes. However things get complicated after we introducing state cleaning. Even without data changed, updating state cleaning watermark will also require |
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.
LGTM, the method is used for LookUpJoin and used for the "read-only state table". I think it's original usage is a table-level option. But now, all places needing this have changed to use the BatchTable.
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
To me, the
StateTable::commit_no_data_expected
introduced unnecessary mental burden. Developers have to somehow track whether the state is dirty or not in executors, while this information is clearly known by state table itself.This PR removes the unnecessary method, and uniformly uses
commit
instead. Insidecommit
, the state table will branch according toStateTable::is_dirty
so that the calling cost is not changed.I'm doing benchmark to test the performance impact.
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.