[jira] [Created] (FLINK-19223) Simplify Availability Future Model in Base Connector

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

[jira] [Created] (FLINK-19223) Simplify Availability Future Model in Base Connector

Shang Yuanchun (Jira)
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)