Skip to content

[FLINK-38216][checkpoint][refactor] Split EndOfChannelStateEvent into EndOfInputChannelStateEvent and EndOfOutputChannelStateEvent #26900

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

1996fanrui
Copy link
Member

What is the purpose of the change

Both of input buffers and out buffers use the same EndOfChannelStateEvent, but it is used in different way.

For EndOfChannelStateEvent of input buffer (downstream task side):

  • It is emitted by the downstream after emitting the last recovered input buffer for a channel
  • This triggers that input channel conversion to a “normal channel”

For EndOfChannelStateEvent of output buffer (upstream task side):

  • it is emitted by the upstream after sending the last recovered output buffer
  • this eventually triggers task input conversion in the downstream to a “normal input”

The code would be more clearer if this event is separated into 2 events, like:

  • EndOfInputChannelStateEvent and EndOfOutputChannelStateEvent

Brief change log

[FLINK-38216][checkpoint][refactor] Split EndOfChannelStateEvent into EndOfInputChannelStateEvent and EndOfOutputChannelStateEvent

Verifying this change

  • Test EndOfInputChannelStateEvent and EndOfOutputChannelStateEvent in EventSerializerTest

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): no
  • The public API, i.e., is any changed class annotated with @Public(Evolving): no
  • The serializers: no
  • The runtime per-record code paths (performance sensitive): no
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
  • The S3 file system connector: no

Documentation

  • Does this pull request introduce a new feature? no

@flinkbot
Copy link
Collaborator

flinkbot commented Aug 13, 2025

CI report:

Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

… EndOfInputChannelStateEvent and EndOfOutputChannelStateEvent
@1996fanrui 1996fanrui force-pushed the 38216/split-end-channel-state-event branch from ea8a403 to 3821c19 Compare August 13, 2025 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants