xintongsong commented on code in PR #19927:
URL: https://github.com/apache/flink/pull/19927#discussion_r895290172
##########
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/ResultPartitionType.java:
##########
@@ -81,7 +81,19 @@ public enum ResultPartitionType {
* in that {@link #PIPELINED_APPROXIMATE} partition can be reconnected
after down stream task
* fails.
*/
- PIPELINED_APPROXIMATE(true, false, ConsumingConstraint.CAN_BE_PIPELINED,
ReleaseBy.UPSTREAM);
+ PIPELINED_APPROXIMATE(true, false, ConsumingConstraint.CAN_BE_PIPELINED,
ReleaseBy.UPSTREAM),
+
+ /**
+ * Hybrid partitions with a bounded (local) buffer pool to support
downstream task to
+ * simultaneous reading and writing shuffle data.
+ *
+ * <p>Hybrid result has the following two characteristics:
+ *
+ * <p>Intermediate data can be consumed any time, whether fully produced
or not.
+ *
+ * <p>Intermediate data can be consumed directly from memory as much as
possible.
+ */
+ HYBRID(true, false, ConsumingConstraint.CAN_BE_PIPELINED,
ReleaseBy.SCHEDULER);
Review Comment:
This will not be included in `isBlockingOrBlockingPersistentResultPartition`
or `isPipelinedOrPipelinedBoundedResultPartition`.
The two methods here are exactly, as you said, checking for the specific
types of the interface implementations. This is obviously not a good design,
because you should not assume working with a specific implementation of the
interface. However, this was not newly introduced. FLINK-27902 only explicitly
separates use cases that rely on specific implementations from those that
properly rely on the interfaces. Fixing of them probably requires more careful
redesign in the problematic use cases, and we do not want to block this feature
on that.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]