[ 
https://issues.apache.org/jira/browse/BEAM-7785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16894114#comment-16894114
 ] 

Jan Lukavský commented on BEAM-7785:
------------------------------------

Yes, sure. If we can cache watermarks before bundle starts processing and GC it 
after, that would be perfectly fine. The issue I'm having is that input 
watermark might move while timers of a bundle are being processed. Given that - 
there is actually no reliable way to tell, what the current "timer watermark" 
is, and fired timer cannot be sure, if another timer is already being processed 
or not (speaking mostly about state GC timer, which can then randomly clear 
state, while another timer might still need it).

> DirectRunner: watermarks are updated asynchronously from bundle processing
> --------------------------------------------------------------------------
>
>                 Key: BEAM-7785
>                 URL: https://issues.apache.org/jira/browse/BEAM-7785
>             Project: Beam
>          Issue Type: Bug
>          Components: runner-direct
>    Affects Versions: 2.13.0
>            Reporter: Jan Lukavský
>            Assignee: Jan Lukavský
>            Priority: Major
>          Time Spent: 4h
>  Remaining Estimate: 0h
>
> Watermarks are updated in QuiescenceDriver (by calling fireTimers, which 
> calls forceRefresh()) on WatermarkManager. This results in creating timer 
> bundles, that are then processed asynchronously as DirectTransformExecutor. 
> Because of that, watermarks (input watermarks mostly) might be updated while 
> bundle is being processed. That violates assumption, that bundle processing 
> should be atomical (with identical external conditions during processing of 
> whole bundle).



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to