This is an automated email from the ASF dual-hosted git repository. sewen pushed a commit to branch release-1.11 in repository https://gitbox.apache.org/repos/asf/flink.git
commit 5b437075a835e1a51bb2c657ae5bdf75733737de Author: Stephan Ewen <[email protected]> AuthorDate: Tue Sep 15 21:29:41 2020 +0200 [hotfix][connectors] Improve JavaDocs for SingleThreadFetcherManager --- .../reader/fetcher/SingleThreadFetcherManager.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/source/reader/fetcher/SingleThreadFetcherManager.java b/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/source/reader/fetcher/SingleThreadFetcherManager.java index 339c533..de50e6a 100644 --- a/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/source/reader/fetcher/SingleThreadFetcherManager.java +++ b/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/source/reader/fetcher/SingleThreadFetcherManager.java @@ -20,6 +20,7 @@ package org.apache.flink.connector.base.source.reader.fetcher; import org.apache.flink.api.connector.source.SourceSplit; import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds; +import org.apache.flink.connector.base.source.reader.SourceReaderBase; import org.apache.flink.connector.base.source.reader.splitreader.SplitReader; import org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue; @@ -27,11 +28,24 @@ import java.util.List; import java.util.function.Supplier; /** - * A Fetcher manager with a single fetcher and assign all the splits to it. + * A Fetcher Manager with a single fetching thread (I/O thread) that handles all splits concurrently. + * + * <p>This pattern is, for example, useful for connectors like File Readers, Apache Kafka Readers, etc. + * In the example of Kafka, there is a single thread that reads all splits (topic partitions) via the + * same client. In the example of the file source, there is a single thread that reads the files + * after another. */ public class SingleThreadFetcherManager<E, SplitT extends SourceSplit> extends SplitFetcherManager<E, SplitT> { + /** + * Creates a new SplitFetcherManager with a single I/O threads. + * + * @param elementsQueue The queue that is used to hand over data from the I/O thread (the fetchers) + * to the reader (which emits the records and book-keeps the state. + * This must be the same queue instance that is also passed to the {@link SourceReaderBase}. + * @param splitReaderSupplier The factory for the split reader that connects to the source system. + */ public SingleThreadFetcherManager( FutureCompletingBlockingQueue<RecordsWithSplitIds<E>> elementsQueue, Supplier<SplitReader<E, SplitT>> splitReaderSupplier) {
