-
Notifications
You must be signed in to change notification settings - Fork 599
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(meta): support schema change in actor graph builder #7878
Conversation
Signed-off-by: Bugen Zhao <i@bugenzhao.com>
Signed-off-by: Bugen Zhao <i@bugenzhao.com>
Signed-off-by: Bugen Zhao <i@bugenzhao.com>
…-part-1 Signed-off-by: Bugen Zhao <i@bugenzhao.com>
// - For scaling, this is always `None`. | ||
// - For plan change, the upstream fragment will be changed to a new one, and this will be `Some`. | ||
// In this case, all the upstream actors should be removed and replaced by the `new` ones. | ||
optional uint32 new_upstream_fragment_id = 5; |
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.
We may reuse the Update
barrier of scaling for schema change.
@@ -581,18 +587,12 @@ where | |||
|
|||
// 2. Get the env for streaming jobs. | |||
let env = StreamEnvironment::from_protobuf(fragment_graph.get_env().unwrap()); | |||
let default_parallelism = if let Some(Parallelism { parallelism }) = |
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.
We put this into FragmentGraph::new
.
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! It's interesting to think of schema changes and mv on mv as dual problems in some sense. I like this idea.
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.
LSTM!
Signed-off-by: Bugen Zhao i@bugenzhao.com
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
This PR extends the new actor graph builder introduced in #7659 for replacing table plan, and adds the procedure of preparing the
TableFragments
. Note that the RPC with the compute nodes is not implemented so this is not utilized by the frontend yet.Building an actor graph for schema change can be similar and symmetric to the MV on MV.
Materialize
fragments that give the requirements to the distribution of currentChain
. We'll generate new dispatchers for the upstreamMaterialize
in the result.Chain
fragments that give the requirements to the distribution of currentMaterialize
. We'll generate updates for the merger for the downstreamChain
in the result.Related:
Checklist
./risedev check
(or alias,./risedev c
)Documentation
Click here for Documentation
Types of user-facing changes
Please keep the types that apply to your changes, and remove the others.
Release note