NicoK commented on a change in pull request #6698: [FLINK-8581][network] Move
flushing remote subpartitions from OutputFlusher to netty
URL: https://github.com/apache/flink/pull/6698#discussion_r223340950
##########
File path:
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/ResultPartition.java
##########
@@ -94,6 +96,19 @@
/** The subpartitions of this partition. At least one. */
private final ResultSubpartition[] subpartitions;
+ /**
+ * Subset of {@code subpartitions} that are definitely local. We can
only determine whether a
+ * subpartition is local or not once it's read view was created.
+ */
+ private final ArrayList<ResultSubpartition> localSubpartitions = new
ArrayList<>();
+
+ /**
+ * Subset of {@code subpartitions} that are definitely remote, however
once we determined that,
+ * we haven't yet known about {@link #flushTimeout}. This has to be
handled during
+ * {@link #setFlushTimeout(long)}.
+ */
+ private final ArrayList<ResultSubpartition>
remoteSubpartitionsMissingPeriodicFlushes = new ArrayList<>();
+
Review comment:
actually, how about the following idea that should make things a bit simpler
/ improve the abstraction:
- only differentiate between self-flushing channels (periodically, after
registration) and channels that require manual flushing (instead of remove vs.
local)
- have `PipelinedSubpartition#registerPeriodicFlush()` return whether
registering for "self-flush" worked or not
- have `PipelinedSubpartition#registerPeriodicFlush()` dealing with the
local vs. non-local nature of the channel
- only have `ResultSubpartition[] subpartitions` and
`ArrayList<ResultSubpartition> manuallyFlushedSubpartitions` members
----------------------------------------------------------------
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:
[email protected]
With regards,
Apache Git Services