Liu created FLINK-32023:
---------------------------
Summary: execution.buffer-timeout cannot be set to -1 ms
Key: FLINK-32023
URL: https://issues.apache.org/jira/browse/FLINK-32023
Project: Flink
Issue Type: Improvement
Components: API / DataStream
Reporter: Liu
The desc for execution.buffer-timeout is as following:
{code:java}
public static final ConfigOption<Duration> BUFFER_TIMEOUT =
ConfigOptions.key("execution.buffer-timeout")
.durationType()
.defaultValue(Duration.ofMillis(100))
.withDescription(
Description.builder()
.text(
"The maximum time frequency
(milliseconds) for the flushing of the output buffers. By default "
+ "the output buffers flush
frequently to provide low latency and to aid smooth developer "
+ "experience. Setting the
parameter can result in three logical modes:")
.list(
text(
"A positive value triggers
flushing periodically by that interval"),
text(
FLUSH_AFTER_EVERY_RECORD
+ " triggers flushing
after every record thus minimizing latency"),
text(
DISABLED_NETWORK_BUFFER_TIMEOUT
+ " ms triggers
flushing only when the output buffer is full thus maximizing "
+ "throughput"))
.build()); {code}
When we set execution.buffer-timeout to -1 ms, the following error is reported:
{code:java}
Caused by: java.lang.IllegalArgumentException: Could not parse value '-1 ms'
for key 'execution.buffer-timeout'.
at
org.apache.flink.configuration.Configuration.getOptional(Configuration.java:856)
at
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.configure(StreamExecutionEnvironment.java:822)
at
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.<init>(StreamExecutionEnvironment.java:224)
at
org.apache.flink.streaming.api.environment.StreamContextEnvironment.<init>(StreamContextEnvironment.java:51)
at
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.createStreamExecutionEnvironment(StreamExecutionEnvironment.java:1996)
at java.util.Optional.orElseGet(Optional.java:267)
at
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getExecutionEnvironment(StreamExecutionEnvironment.java:1986)
at com.kuaishou.flink.examples.api.WordCount.main(WordCount.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:327)
... 11 more
Caused by: java.lang.NumberFormatException: text does not start with a number
at org.apache.flink.util.TimeUtils.parseDuration(TimeUtils.java:78)
at
org.apache.flink.configuration.Configuration.convertToDuration(Configuration.java:1058)
at
org.apache.flink.configuration.Configuration.convertValue(Configuration.java:996)
at
org.apache.flink.configuration.Configuration.lambda$getOptional$2(Configuration.java:853)
at java.util.Optional.map(Optional.java:215)
at
org.apache.flink.configuration.Configuration.getOptional(Configuration.java:853)
... 23 more {code}
The reason is that the value for Duration can not be negative. We should change
the behavior or support to trigger flushing only when the output buffer is full.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)