[jira] [Created] (FLINK-12525) Impose invariant StreamExecutionEnvironment.setBufferTimeout > 0

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-12525) Impose invariant StreamExecutionEnvironment.setBufferTimeout > 0

Shang Yuanchun (Jira)
Robert Stoll created FLINK-12525:
------------------------------------

             Summary: Impose invariant StreamExecutionEnvironment.setBufferTimeout > 0
                 Key: FLINK-12525
                 URL: https://issues.apache.org/jira/browse/FLINK-12525
             Project: Flink
          Issue Type: Improvement
            Reporter: Robert Stoll


The documentation for the [DataStream API|https://github.com/apache/flink/blob/8674b69964eae50cad024f2c5caf92a71bf21a09/docs/dev/datastream_api.md#controlling-latency] states:
{quote}buffer timeout of 0 should be avoided, because it can cause severe performance degradation.
{quote}
I don't know if the documentation is not appropriate and there are valid cases where a timeout of 0 makes sense. But if not, then the invariant should not be
{color:#c586c0}if{color}{color:#d4d4d4} (timeoutMillis {color}{color:#d4d4d4}<{color} {color:#d4d4d4}-{color}{color:#b5cea8}1{color}{color:#d4d4d4}) {{color}
{color:#d4d4d4}    {color}{color:#c586c0}throw{color} {color:#c586c0}new{color} {color:#dcdcaa}IllegalArgumentException{color}{color:#d4d4d4}({color}{color:#ce9178}"Timeout of buffer must be non-negative or -1"{color}{color:#d4d4d4});{color}
{color:#d4d4d4}}{color}
But {{timeoutMillis < 0}} (can also be a second invariant)
IMO it is bad practice to state it only in the documentation. The API should guide the user in this case (in this sense a second invariant stating the quote above would make more sense).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)