Thanks Junrui for creating the FLIP and kicking off this discussion.

Exposing a mutable ExecutionConfig which is even shared by multiple
operators is truly a defect which can result in weird results.

+1

Thanks,
Zhu

Junrui Lee <jrlee....@gmail.com> 于2023年11月15日周三 16:53写道:

> Hi all,
>
> I'd like to start a discussion of FLIP-391: Deprecate
> RuntimeContext#getExecutionConfig[1].
>
> Currently, the FLINK RuntimeContext is important for connecting user
> functions to the underlying runtime details. It provides users with
> necessary runtime information during job execution.
> However, he current implementation of the FLINK RuntimeContext exposes the
> ExecutionConfig to users, resulting in two issues:
> Firstly, the ExecutionConfig contains much unrelated information that can
> confuse users and complicate management.
> Secondly, exposing the ExecutionConfig allows users to modify it during job
> execution, which can cause inconsistencies and problems, especially with
> operator chaining.
>
> Therefore, we propose deprecating the RuntimeContext#getExecutionConfig in
> the FLINK RuntimeContext. In the upcoming FLINK-2.0 version, we plan to
> completely remove the RuntimeContext#getExecutionConfig method. Instead, we
> will introduce alternative getter methods that enable users to access
> specific information without exposing unnecessary runtime details. These
> getter methods will include:
>
> 1. @PublicEvolving <T> TypeSerializer<T>
> createSerializer(TypeInformation<T> typeInformation);
> 2. @PublicEvolving Map<String, String> getGlobalJobParameters();
> 3. @PublicEvolving boolean isObjectReuseEnabled();
>
> Looking forward to your feedback and suggestions, thanks.
>
> [1]
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=278465937
>
> Best regards,
> Junrui
>

Reply via email to