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-7547][build] AsyncFunction.scala extends Function, serialized #4614

Closed
wants to merge 1 commit into from

Conversation

yew1eb
Copy link
Contributor

@yew1eb yew1eb commented Aug 29, 2017

fix #issue FLINK-7547
details:
org.apache.flink.streaming.api.scala.async.AsyncFunction is not declared Serializable, whereas org.apache.flink.streaming.api.functions.async.AsyncFunction is. This leads to the job not starting as the as async function can't be serialized during initialization.

What is the purpose of the change

(For example: This pull request makes task deployment go through the blob server, rather than through RPC. That way we avoid re-transferring them on each deployment (during recovery).)

Brief change log

(for example:)

  • The TaskInfo is stored in the blob store on job creation time as a persistent artifact
  • Deployments RPC transmits only the blob storage reference
  • TaskManagers retrieve the TaskInfo from the blob cache

Verifying this change

(Please pick either of the following options)

This change is a trivial rework / code cleanup without any test coverage.

(or)

This change is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(example:)

  • Added integration tests for end-to-end deployment with large payloads (100MB)
  • Extended integration test for recovery after master (JobManager) failure
  • Added test that validates that TaskInfo is transferred only once across recoveries
  • Manually verified the change by running a 4 node cluser with 2 JobManagers and 4 TaskManagers, a stateful streaming program, and killing one JobManager and two TaskManagers during the execution, verifying that recovery happens correctly.

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

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

Documentation

  • Does this pull request introduce a new feature? (yes / no)
  • If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@eliaslevy
Copy link
Contributor

👍

@yew1eb
Copy link
Contributor Author

yew1eb commented Aug 31, 2017

Hi @twalthr @zentol,
Please helps to review, Thank you very much. 🍻

@yew1eb
Copy link
Contributor Author

yew1eb commented Sep 1, 2017

CC @aljoscha 😆

@yew1eb
Copy link
Contributor Author

yew1eb commented Sep 6, 2017

CC @zentol

@yew1eb yew1eb changed the title [FLINK-7547] AsyncFunction.scala extends Function, serialized [FLINK-7547][streamming] AsyncFunction.scala extends Function, serialized Sep 20, 2017
@yew1eb yew1eb changed the title [FLINK-7547][streamming] AsyncFunction.scala extends Function, serialized [FLINK-7547][build] AsyncFunction.scala extends Function, serialized Sep 25, 2017
@yew1eb
Copy link
Contributor Author

yew1eb commented Sep 25, 2017

@zentol Let me know what you think about this PR now :)

@yew1eb
Copy link
Contributor Author

yew1eb commented Sep 26, 2017

can someone review this please? :)

@aljoscha
Copy link
Contributor

Thanks a lot @yew1eb for fixing this! I merged. 😃

Could you please close this PR if it doesn't close automatically?

@yew1eb
Copy link
Contributor Author

yew1eb commented Sep 28, 2017

👌

@yew1eb yew1eb closed this Sep 28, 2017
@yew1eb yew1eb deleted the FLINK-7547 branch January 25, 2018 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants