[Python SDK] Add support for named data streams to provide bundle isolation - #40061
[Python SDK] Add support for named data streams to provide bundle isolation#40061scwhittle wants to merge 3 commits into
Conversation
|
Assigning reviewers: R: @jrmccluskey for label python. Note: If you would like to opt out of this review, comment Available commands:
The PR bot will only process comments in the main thread (not review comments). |
jrmccluskey
left a comment
There was a problem hiding this comment.
Broadly LGTM apart from linting and formatting findings
0ee1c13 to
b19c1eb
Compare
Integration test triage — PR #40061apache/beam @ b19c1eb · 15 failing job(s) · triaged in 20.7s 15 failing test(s) across 15 suite(s) — 3 distinct root cause(s). Warning At least one failure looks like a real defect, not a flake.
1. LIKELY REAL BUG — NamedDataStreamsTest (+12 more)Suite: PreCommit Python Coverage / beam_PreCommit_Python_Coverage (Run Python_Coverage PreCommit 3.10), Python tests / Python Unit Tests (macos-latest, 3.12, py312), Python tests / Python Unit Tests (windows-latest, 3.10, py310), Python tests / Python Unit Tests (macos-latest, 3.14, py314), Python tests / Python Unit Tests (windows-latest, 3.12, py312), Python tests / Python Unit Tests (windows-latest, 3.14, py314), Python tests / Python Unit Tests (macos-latest, 3.11, py311), Python tests / Python Unit Tests (windows-latest, 3.11, py311), Python tests / Python Unit Tests (macos-latest, 3.13, py313), Python tests / Python Unit Tests (windows-latest, 3.13, py313), Python tests / Python Unit Tests (macos-latest, 3.10, py310), PreCommit Python Runners / beam_PreCommit_Python_Runners (Run Python_Runners PreCommit 3.10), PreCommit Python Runners / beam_PreCommit_Python_Runners (Run Python_Runners PreCommit 3.14) Root cause: Why this verdict: a test assertion failed Affected tests:
Log excerpt2. BUILD / LINT — must fix — formattingSuite: PreCommit Python Formatter / beam_PreCommit_PythonFormatter (Run PythonFormatter PreCommit) Root cause: Why this verdict: formatter reported changes — run the formatter and commit Affected tests:
Log excerpt3. unknown — job-level failureSuite: PreCommit Python Lint / Python 3.10 Test Results () Root cause: Why this verdict: published via the Checks API — not a job in this workflow, and the PreCommit Python Lint workflow's own jobs all passed Affected tests:
Log excerptThis tool can make mistakes. It is only meant to surface errors faster, and may not surface all of them accurately. Generated by gha_triage |
This is advertised to the runner via a new NAMED_DATA_STREAMS protocol capability. The runner is then free to assign bundles to named data streams as it chooses to isolate bundle processing from each other. Instead of single data stream from the sdk, the sdk will create a data stream for each name. The benefit of doing so is that the multiplexing currently performed on data stream messages being received allows a slow bundle to fill up buffers and block the shared stream. With separate named streams, bundles on other data streams have separate grpc flow control from the blocked stream and are not affected.
This is related to issue #39001 and similar support was added for the Java sdk in #38863
Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:
addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, commentfixes #<ISSUE NUMBER>instead.CHANGES.mdwith noteworthy changes.See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)
See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.