gaoyunhaii commented on pull request #14820: URL: https://github.com/apache/flink/pull/14820#issuecomment-861368486
Hi @dawidwys, I updated the PR according the above discussion. Some points are met during the discussion that might need consideration: 1. For `MultipleInputStreamTask`, if there is no chained source, it would behave like ordinary `StreamTask`. But if there are sources chained, the task would always get triggered since it is also a kind of source, and we would always only trigger the chained sources to initiate the checkpoint on the task side. Then if the checkpoint is triggered between the upstream tasks are finished and `MultipleInputStreamTask` received the `EndOfPartitionEvent`, we could not subsume the pending checkpoints like the other `StreamTask` do. But since in this case the only possible records are `EndOfPartitionEvent` and `CheckpointBarrier`, logically they would not be delayed too long, and it only have affect in a short of period, I think it might be acceptable. Thus do you think this would be a problem ? 2. Regarding how to acquire the unfinished channels from `IndexInputGate`, returning an `Iterable<InputChannelInfo>` or pass a `Consumer<InputChannelInfo>` could avoid allocating additional memory, but they all not work well in considering that we need to access `channelsWithEndOfPartitionEvents` in the lock scope. Thus I think we might still need to return a copied list of unfinished input channels. Very thanks for the review! -- 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]
