Github user NicoK commented on a diff in the pull request: https://github.com/apache/flink/pull/4559#discussion_r157544794 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/ResultSubpartition.java --- @@ -99,6 +82,23 @@ protected Throwable getFailureCause() { abstract public boolean isReleased(); + /** + * Gets the number of non-event buffers in this subpartition. + */ + abstract public int getBuffersInBacklog(); + + /** + * Decreases the number of non-event buffers by one after fetching a non-event + * buffer from this subpartition. + */ + abstract public void decreaseBuffersInBacklog(Buffer buffer); + + /** + * Increases the number of non-event buffers by one after adding a non-event + * buffer into this subpartition. + */ + abstract public void increaseBuffersInBacklog(Buffer buffer); --- End diff -- I'm not quite sure the latter two methods should be in `ResultSubpartition` now since they are quite internal. `increaseBuffersInBacklog()` is only called by `PipelinedSubpartition` and `SpillableSubpartition`. `decreaseBuffersInBacklog()` is (additionally) only by spilled/spillable subpartition views and therefore could be package-private in `SpillableSubpartition` only.
---