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)