flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-10656) Refactor org.apache.flink.runtime.io.network.api.reader.ReaderBase
Date Thu, 25 Oct 2018 02:58:00 GMT

    [ https://issues.apache.org/jira/browse/FLINK-10656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16663127#comment-16663127

ASF GitHub Bot commented on FLINK-10656:

zhijiangW commented on a change in pull request #6911: [FLINK-10656] Refactor org.apache.flink.runtime.io.network.api.reader…
URL: https://github.com/apache/flink/pull/6911#discussion_r228020917

 File path: flink-runtime/src/main/java/org/apache/flink/runtime/io/network/api/reader/IterationReader.java
 @@ -21,34 +21,21 @@
 import org.apache.flink.runtime.event.TaskEvent;
 import org.apache.flink.runtime.util.event.EventListener;
-import java.io.IOException;
- * The basic API for every reader.
+ * Reader for iteration.
-public interface ReaderBase {
-	/**
-	 * Returns whether the reader has consumed the input.
-	 */
-	boolean isFinished();
-	// ------------------------------------------------------------------------
-	// Task events
-	// ------------------------------------------------------------------------
-	void sendTaskEvent(TaskEvent event) throws IOException;
-	void registerTaskEventListener(EventListener<TaskEvent> listener, Class<? extends
TaskEvent> eventType);
-	// ------------------------------------------------------------------------
-	// Iterations
-	// ------------------------------------------------------------------------
+public interface IterationReader {
 	void setIterativeReader();
 	void startNextSuperstep();
 	boolean hasReachedEndOfSuperstep();
+	/**
+	 * Returns whether the reader has consumed the input.
+	 */
+	boolean isFinished();
 Review comment:
   Yes, I just confirmed it is actually only used in iteration, so all the current methods
in `ReaderBase` are for iteration. If we change it to `IterationReaderBase`, the corresponding
`AbstractReader` should also be changed to `AbstractIterationReader`, because the current
`AbstractReader` is also only for iteration.
   But I think it still seems a little strange to let `IterationReaderBase` in the upper layer,
because the current `Reader` interface which is used for common read extends the `IterationReaderBase`.
This relationship seems not make sense.
   If we have two independent reader base interfaces, and one is for iteration, the other
is for common case. Then the specific record reader can implement both of interfaces for iteration
scenario or only implement common reader interface for non-iteration scenario.
   So it may need reorganize the current relationships if we want to change this part. Easily
change the name to `IterationReaderBase` may bring literal confusing.

This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:

> Refactor org.apache.flink.runtime.io.network.api.reader.ReaderBase
> ------------------------------------------------------------------
>                 Key: FLINK-10656
>                 URL: https://issues.apache.org/jira/browse/FLINK-10656
>             Project: Flink
>          Issue Type: Improvement
>          Components: Distributed Coordination
>            Reporter: JIN SUN
>            Assignee: JIN SUN
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.8.0
> The interface of org.apache.flink.runtime.io.network.api.reader.ReaderBase is not very
clean, the API in it are called only by iteration and handle event. which is not related the
name ReaderBase. And the functionality is independent, so propose to change the name and split
the interface to two isolated interface. 
> More details please look at the PR.

This message was sent by Atlassian JIRA

View raw message