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)