-
Notifications
You must be signed in to change notification settings - Fork 594
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(streaming): source executor use table_id for keyspace prefix #3010
Conversation
Good job! We can finally remove |
Codecov Report
@@ Coverage Diff @@
## main #3010 +/- ##
=======================================
Coverage 73.11% 73.11%
=======================================
Files 724 724
Lines 97174 97174
=======================================
Hits 71049 71049
Misses 26125 26125
Flags with carried forward coverage won't be shown. Click here to find out more.
📣 Codecov can now indicate which changes are the most critical in Pull Requests. Learn more |
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.
Need to hold this PR for a while. Previously, each source has its own keyspace. But now, we make them share one keyspace, which would cause problems.
The correct implementation should be like
let keyspace = Keyspace::table_root(store, &source_id).append(&executor_id.to_le_bytes());
Why would it cause problems? I thought each source split of the same MV should use different user keys to store their state. |
Did we ensure that explicitly? Previously source executor is using |
@tabVersion can confirm. I skim through the current implementation and it seems that the split implementations of the supported source already ensure that: SplitImpl will put split id or partition id in the return value of |
That's cool. So we can use |
thanks for fixing the misuse of executor_id. source split's assignment mechanism guarantees one split can only be assigned to one executor so the prefix is unique in parallel. |
What's changed and what's your intention?
source executor use table_id for keyspace prefix
Checklist
Refer to a related PR or issue link (optional)