[ https://issues.apache.org/jira/browse/FLINK-12525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Stoll updated FLINK-12525: --------------------------------- Description: 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 {code} if (timeoutMillis < -1) { throw new IllegalArgumentException("Timeout of buffer must be non-negative or -1"); } {code} 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). was: 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). > 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 > Priority: Major > > 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 > {code} > if (timeoutMillis < -1) { > throw new IllegalArgumentException("Timeout of buffer must be non-negative > or -1"); > } > {code} > 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)