Roman Khachatryan created FLINK-18990: -----------------------------------------
Summary: Optimize reading ResultSubpartition state Key: FLINK-18990 URL: https://issues.apache.org/jira/browse/FLINK-18990 Project: Flink Issue Type: Improvement Components: Runtime / Task Reporter: Roman Khachatryan Assignee: Roman Khachatryan Fix For: 1.12.0 Curently, channel state is read not sequentially. Inverting control would make it more efficient. Current call chain: {code:java} StreamTask.readRecoveredChannelState ResultPartition.readRecoveredState - loop through subpartitions PipelinedSubpartition.readRecoveredState - loop while have data; bufferBuilder = parent.getBufferPool().requestBufferBuilderBlocking(subpartitionInfo.getSubPartitionIdx()); ChannelStateReader.readOutputData {code} Proposed call chain: {code:java} StreamTask.readRecoveredChannelState ChannelStateReader.readOutputData loop through state handles ordererd by handle, offset request buffer in the same way: BufferBuilder bufferBuilder = resPart.getBufferPool().requestBufferBuilderBlocking(subpartitionInfo.getSubPartitionIdx()); pass to resPart.getSubpartition(idx).add(BufferConsumer, boolean, boolean) {code} Depends on FLINK-18989 -- This message was sent by Atlassian Jira (v8.3.4#803005)