rkhachatryan commented on a change in pull request #11534:
[FLINK-16537][network] Implement ResultPartition state recovery for unaligned
checkpoint
URL: https://github.com/apache/flink/pull/11534#discussion_r400782576
##########
File path:
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/PipelinedSubpartition.java
##########
@@ -89,6 +91,25 @@
super(index, parent);
}
+ @Override
+ public void initializeState() throws IOException, InterruptedException {
+ ReadResult readResult = ReadResult.HAS_MORE_DATA;
+ while (readResult == ReadResult.HAS_MORE_DATA) {
+ BufferBuilder bufferBuilder =
parent.getBufferPool().requestBufferBuilderBlocking();
+ BufferConsumer bufferConsumer =
bufferBuilder.createBufferConsumer();
+ readResult =
parent.getChannelStateReader().readOutputData(subpartitionInfo, bufferBuilder);
+
+ // check whether there are some states data filled in
this time
+ bufferConsumer.update();
Review comment:
I actually meant the committed writer position by value. Bad wording, sorry.
I see, we shouldn't change the creation order.
But can we use `BufferConsumer.isDataAvailable` instead of `update() +
getWrittenBytes()`?
```
public boolean isDataAvailable() {
return currentReaderPosition < writerPosition.getLatest();
}
```
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services