fix(meta): limit pending barriers in partial graphs - #26467
Merged
Merged
Conversation
hzxa21
self-requested a review
July 29, 2026 03:30
Contributor
|
❌ Cherry-pick failed for one or more branches. Please check the workflow run logs and consider retrying or manually cherry-picking. |
wenym1
added a commit
that referenced
this pull request
Jul 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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?
The global barrier worker previously applied
streaming.in_flight_barrier_numsonly to barriers still in flight in the database partial graph. Collected but uncommitted barriers did not count toward the limit, and snapshot-backfill partial graphs were not bounded by their total pending count.This PR:
in_flight_barrier_numsto the full database partial-graph pending count: in-flight, collected but not committed, and currently completing barriers;in_flight_barrier_nums * snapshot_backfill_barrier_amplification_factor;1and sets it to10in every CI configuration that explicitly setsin_flight_barrier_numsto10, giving those CI snapshot-backfill graphs a pending limit of 100 while database graphs remain limited to 10;Release investigation found that #26423 was not cherry-picked into either
release-2.8orrelease-3.0. Both release branches still have the underlying inflight-only/unbounded-catch-up behavior, but neither has the amplification configuration. Backports of this PR therefore need to account for the missing configuration.Checklist
Documentation
The generated example configuration and configuration reference document the pending-barrier semantics of
in_flight_barrier_numsand the new multiplier semantics and default ofsnapshot_backfill_barrier_amplification_factor.Release note
Barrier injection now limits the total number of pending barriers per database partial graph, including barriers that have been collected but not yet committed. Snapshot-backfill partial graphs use the same base limit multiplied by
streaming.snapshot_backfill_barrier_amplification_factor, which defaults to 1.Tests
./risedev generate-example-configcargo test -p risingwave_meta pending_barrier --libcargo check -p risingwave_meta_nodecargo fmt --allcargo clippy --all-targets --all-featuresbash -n ci/scripts/run-backfill-tests.shgit diff --check./risedev slt -p 4566 -d dev './e2e_test/streaming/bug_fixes/stack_overflow_17342.slt'./risedev slt -p 4566 -d dev './e2e_test/streaming/unaligned-join.slt'The latest CI-configuration-only update was checked with
git diff --checkand an audit confirming that everyci*.tomlwithin_flight_barrier_nums = 10also hassnapshot_backfill_barrier_amplification_factor = 10. Per request, Clippy and local e2e tests were not rerun for that update.