Yuan Kui created FLINK-39839:
--------------------------------
Summary: 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
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)