Skip to content
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

[FLINK-34986][Runtime/State] Basic framework of async execution for state #24614

Merged
merged 3 commits into from
Apr 11, 2024

Conversation

Zakelly
Copy link
Contributor

@Zakelly Zakelly commented Apr 3, 2024

What is the purpose of the change

This PR ship the core part of FLIP-425, including the basic execution logic of AsyncExecutionController.

Brief change log

  • AsyncExecutionController and other components around it.
  • RecordContext and reference counting mechanism.
  • Basic implementation of KeyAccountingUnit.

Verifying this change

  • Added unit tests under org.apache.flink.runtime.asyncprocessing

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): yes (introduce new)
  • 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? yes
  • If yes, how is the feature documented? not documented

@Zakelly Zakelly changed the title F34986 [FLINK-34986][Runtime/State] Basic framework of async execution for state Apr 3, 2024
@flinkbot
Copy link
Collaborator

flinkbot commented Apr 4, 2024

CI report:

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

@Zakelly
Copy link
Contributor Author

Zakelly commented Apr 7, 2024

Rebased and pushed again.

@Zakelly
Copy link
Contributor Author

Zakelly commented Apr 7, 2024

@fredia @masteryhx would you please take a look?

Copy link
Contributor

@fredia fredia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Zakelly Thanks for the PR, I left some comments first. And I haven't completely reviewed the test, some follow-up questions may be raised.

@Zakelly
Copy link
Contributor Author

Zakelly commented Apr 7, 2024

@fredia thank for your suggestions!

Copy link
Contributor

@fredia fredia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Zakelly Thanks for the update, overall LGTM.

Copy link
Contributor

@masteryhx masteryhx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR.
PTAL my comments.

@Zakelly Zakelly force-pushed the f34986 branch 2 times, most recently from 88f2e33 to 595a10c Compare April 8, 2024 06:09
@Zakelly
Copy link
Contributor Author

Zakelly commented Apr 8, 2024

@masteryhx Thanks for your comments! Applied some suggestions, PTAL thanks.

@Zakelly Zakelly force-pushed the f34986 branch 2 times, most recently from 42609e2 to db14529 Compare April 9, 2024 05:44
@Zakelly
Copy link
Contributor Author

Zakelly commented Apr 9, 2024

Rebased master. Extracting StateRequestType with more detailed enum entry definition.

@Zakelly Zakelly force-pushed the f34986 branch 3 times, most recently from 3bdab34 to ab070bd Compare April 10, 2024 07:06
Copy link
Contributor

@yunfengzhou-hub yunfengzhou-hub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR. Left some comments as below.

* @return the state future.
*/
public <IN, OUT> InternalStateFuture<OUT> handleRequest(
@Nullable State state, StateRequestType type, @Nullable IN payload) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please remind me of the cases when a null state would be passed to AEC?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some description in javadoc. This is for the strict order of 'processElement' for same-key records.

@Zakelly
Copy link
Contributor Author

Zakelly commented Apr 10, 2024

@flinkbot run azure

Copy link
Contributor

@yunfengzhou-hub yunfengzhou-hub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update! LGTM.

@fredia fredia merged commit ec2a140 into apache:master Apr 11, 2024
@Zakelly Zakelly deleted the f34986 branch April 11, 2024 02:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
7 participants