Thanks Junrui for driving this proposal!

Overall looks good to me! I have a question:
How do the flink users to getGlobalJobParameters if
RuntimeContext#getExecutionConfig is removed?
Is there any alternative api? Or is this feature removed?

Maybe this is a noob question and I may have missed
some information.

Best,
Rui

On Thu, Nov 16, 2023 at 11:05 AM Zhu Zhu <reed...@gmail.com> wrote:

> 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