fix(barrier): broadcast actor info to newly added node #19939
+110
−76
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Root cause of #19536.
Resolve #19884
Previously for newly added node, we won't broadcast the existing actor info to the node. When actors that are spawned later on this node try to get the actor info in other nodes, it will get the
actor id not found
error.In this PR, we fix this by including all the existing actor infos in the initial request for the newly add node.
By the way, we also change the way to broadcast inflight subscription infos in recovery. Previously in recovery, we include the existing subscription infos in the initial request to CN. It works in global recovery, but in per-database recovery, we will not send this initial request, and then the existing subscriptions will be missed in the recovered database. In this PR, we change to broadcast the existing subscription infos in the initial inject barrier request. In this way, we can also broadcast the existing subscriptions in per-database recovery.
Checklist
Documentation
Release note