SmirAlex commented on PR #23521:
URL: https://github.com/apache/flink/pull/23521#issuecomment-1814413557

   Thanks for the response, @Sxnan. I got your points. BTW, the reason why 
delivery guarantees of `RecordAttributes` elements to downstream operators was 
important to me is that I was testing the possibility to use them in order to 
properly implement Processing Time Temporal Join. I 
[described](https://lists.apache.org/thread/b3doy1gqchv45g2vjxcblv10two9gvsv) 
my thoughts about this in 
[FLIP-326](https://cwiki.apache.org/confluence/display/FLINK/FLIP-326%3A+Enhance+Watermark+to+Support+Processing-Time+Temporal+Join)
 discussion thread. Thus, if eventually it will be decided to reuse 
`RecordAttributes` logic in order to solve 
[FLINK-19830](https://issues.apache.org/jira/browse/FLINK-19830), the problem I 
described will arise one way or another.
   
   Also, I should mention that there is another workaround that guarantees 
delivery of `RecordAttributes(isBacklog=false)` (but not isBacklog=true), but 
at the same time prevents considering some non-backlog records as backlog 
records. Pseudocode may be like this:
   ```
   if (lastOutputAttributes == null && nonBacklogChannelsCnt == 
numInputChannels) {
       nonBacklogChannelsCnt = 0;
       output.emitRecordAttributes(RecordAttributes(isBacklog=false));
   }
   ```
   The downside is that it is possible to have 
`RecordAttributes(isBacklog=false)` without `RecordAttributes(isBacklog=true)` 
previously, but probably, it's ok. In other respects, this approach worked fine 
for me.


-- 
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.

To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to