Skip to content

[Dataflow Streaming] Remove rolled out Windmill isolated channels flag#37844

Merged
scwhittle merged 1 commit intoapache:masterfrom
arunpandianp:removeIsolatedFlag
Mar 13, 2026
Merged

[Dataflow Streaming] Remove rolled out Windmill isolated channels flag#37844
scwhittle merged 1 commit intoapache:masterfrom
arunpandianp:removeIsolatedFlag

Conversation

@arunpandianp
Copy link
Copy Markdown
Contributor

The flag is true since beam 2.61.0. Removing the backend overrides.

@arunpandianp
Copy link
Copy Markdown
Contributor Author

R: @scwhittle

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request streamlines the Dataflow streaming worker by removing the Windmill isolated channels feature flag and its associated logic. Since this feature has been fully rolled out and is now the default behavior in Beam 2.61.0 and later, the explicit flag and conditional code paths are no longer necessary. This change simplifies the codebase, reduces maintenance overhead, and ensures that all Dataflow streaming jobs consistently utilize the optimized isolated channel mechanism.

Highlights

  • Flag Removal: The useWindmillIsolatedChannels flag in DataflowStreamingPipelineOptions has been deprecated and marked as unused, as the feature is now universally enabled.
  • Code Simplification: All code paths related to dynamically enabling or disabling Windmill isolated channels based on job settings or pipeline options have been removed, simplifying the GrpcDispatcherClient and related stub factories.
  • Test Cleanup: A dedicated test file (GrpcDispatcherClientTest.java) that specifically tested the logic for the isolated channels flag has been removed, as its functionality is no longer relevant.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/options/DataflowStreamingPipelineOptions.java
    • Deprecated the getUseWindmillIsolatedChannels method and updated its description to reflect it's an unused flag.
  • runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/StreamingDataflowWorker.java
    • Updated GrpcDispatcherClient creation calls to remove the DataflowWorkerHarnessOptions parameter, aligning with the flag's removal.
  • runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/windmill/client/grpc/GrpcDispatcherClient.java
    • Removed DataflowWorkerHarnessOptions import and fields related to useIsolatedChannels.
    • Refactored constructors and create/forTesting methods to no longer accept DataflowWorkerHarnessOptions.
    • Eliminated logic for dynamic stub recreation based on the useWindmillIsolatedChannels flag in onJobConfig and consumeWindmillDispatcherEndpoints.
  • runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/windmill/client/grpc/GrpcWindmillServer.java
    • Modified GrpcWindmillServer to remove the DataflowWorkerHarnessOptions parameter from GrpcDispatcherClient creation calls.
  • runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/windmill/client/grpc/stubs/WindmillStubFactoryFactory.java
    • Updated the WindmillStubFactoryFactory interface to remove the useIsolatedChannels parameter from makeWindmillStubFactory.
  • runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/windmill/client/grpc/stubs/WindmillStubFactoryFactoryImpl.java
    • Modified WindmillStubFactoryFactoryImpl to remove the useIsolatedChannels parameter and always create an IsolationChannel, reflecting the default behavior.
  • runners/google-cloud-dataflow-java/worker/src/test/java/org/apache/beam/runners/dataflow/worker/streaming/harness/FanOutStreamingEngineWorkerHarnessTest.java
    • Removed unused imports for DataflowWorkerHarnessOptions and PipelineOptionsFactory.
    • Updated GrpcDispatcherClient.forTesting calls to align with the removal of the DataflowWorkerHarnessOptions parameter.
  • runners/google-cloud-dataflow-java/worker/src/test/java/org/apache/beam/runners/dataflow/worker/windmill/client/grpc/GrpcDispatcherClientTest.java
    • Removed the GrpcDispatcherClientTest file, as its tests were specific to the useWindmillIsolatedChannels flag logic.
  • runners/google-cloud-dataflow-java/worker/src/test/java/org/apache/beam/runners/dataflow/worker/windmill/testing/FakeWindmillStubFactoryFactory.java
    • Updated FakeWindmillStubFactoryFactory to remove the useIsolatedChannels parameter from makeWindmillStubFactory.
Activity
  • No specific activity has been recorded for this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link
Copy Markdown
Contributor

Stopping reviewer notifications for this pull request: review requested by someone other than the bot, ceding control. If you'd like to restart, comment assign set of reviewers

@arunpandianp arunpandianp force-pushed the removeIsolatedFlag branch 4 times, most recently from 2e04222 to 62320cf Compare March 13, 2026 03:22
@scwhittle scwhittle merged commit 02d8f56 into apache:master Mar 13, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants