You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by se...@apache.org on 2020/09/16 08:05:04 UTC
[flink] 03/04: [hotfix][connectors] Improve JavaDocs for
SingleThreadFetcherManager
This is an automated email from the ASF dual-hosted git repository.
sewen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit 8fcca837c55a9216595ee4c03038b52747098dbb
Author: Stephan Ewen <se...@apache.org>
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) {