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) {