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]


Reply via email to