You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Yuepeng Pan (Jira)" <ji...@apache.org> on 2026/09/07 01:34:00 UTC
[jira] [Commented] (FLINK-39839) FLIP-580:AsyncTableFunction supports user-defined timeout handling logic
[ https://issues.apache.org/jira/browse/FLINK-39839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18112126#comment-18112126 ]
Yuepeng Pan commented on FLINK-39839:
-------------------------------------
Hi, [~catyee]
Flink 2.4 will go into code freeze in mid-October. If this FLIP is planned to be included in the 2.4 release, please help get it registered on the [1] page. Thanks.
[1] https://cwiki.apache.org/confluence/spaces/FLINK/pages/449286596/2.4+Release
> FLIP-580:AsyncTableFunction supports user-defined timeout handling logic
> ------------------------------------------------------------------------
>
> Key: FLINK-39839
> URL: https://issues.apache.org/jira/browse/FLINK-39839
> Project: Flink
> Issue Type: New Feature
> Components: Table SQL / Planner
> Affects Versions: 2.4.0
> Reporter: Yuan Kui
> Assignee: Yuan Kui
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.4.0
>
>
> An increasing number of users are leveraging `{{{}AsyncTableFunction`{}}} to invoke remote inference clusters. Such invocations are essentially remote inference requests, which are far more prone to timeouts than regular I/O operations. Users expect to be able to define custom handling logic when a timeout occurs — for example, falling back to default data or accumulating failure statistics — rather than having a `{{{}TimeoutException`{}}} thrown directly and causing the entire job to fail.
> In the current codebase, `{{{}AsyncTableFunction`{}}} is ultimately invoked by `{{{}AsyncWaitOperator`{}}}, which already defines its own timeout handling logic. The goal of this proposal is therefore to connect the timeout call chain from `{{{}AsyncWaitOperator`{}}} all the way down to `{{{}AsyncTableFunction`{}}}. {color:#222233}The configured timeout(`{color}table.exec.async-lookup.timeout{color:#222233}`) is the total budget measured from the first asyncInvoke. When the async-lookup timer expires, any pending delayed retry is cancelled and timeout(...) is invoked exactly once. {color}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)