Stephan Ewen created FLINK-19223: ------------------------------------ Summary: Simplify Availability Future Model in Base Connector Key: FLINK-19223 URL: https://issues.apache.org/jira/browse/FLINK-19223 Project: Flink Issue Type: Improvement Components: Connectors / Common Reporter: Stephan Ewen Assignee: Stephan Ewen Fix For: 1.12.0
The current model implemented by the {{FutureNotifier}} and the {{SourceReaderBase}} has a shortcoming: - It does not support availability notifications where the notification comes before the check. IN that case the notification is lost. - One can see the added complexity created by this model also in the {{SourceReaderBase#isAvailable()}} where the returned future needs to be "post-processed" and eagerly completed if the reader is in fact available. This is based on queue size, which makes it hard to have other conditions. I think we can do something that is both easier and a bit more efficient by following a similar model as the {{org.apache.flink.runtime.io.AvailabilityProvider.AvailabilityHelper}}. Furthermore, I believe we can win more efficiency by integrating this better with the {{FutureCompletingBlockingQueue}}. I suggest to do a similar implementation as the {{AvailabilityHelper}} directly in the {{FutureCompletingBlockingQueue}}. -- This message was sent by Atlassian Jira (v8.3.4#803005)