[ 
https://issues.apache.org/jira/browse/BEAM-10691?focusedWorklogId=470128&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-470128
 ]

ASF GitHub Bot logged work on BEAM-10691:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 13/Aug/20 08:03
            Start Date: 13/Aug/20 08:03
    Worklog Time Spent: 10m 
      Work Description: mxm commented on a change in pull request #12551:
URL: https://github.com/apache/beam/pull/12551#discussion_r469769025



##########
File path: 
runners/flink/src/main/java/org/apache/beam/runners/flink/translation/wrappers/streaming/DoFnOperator.java
##########
@@ -1277,7 +1280,13 @@ private void onNewEventTimer(TimerData newTimer) {
           "Timer with id %s is not an event time timer!",
           newTimer.getTimerId());
       if (timerUsesOutputTimestamp(newTimer)) {
-        outputTimestampQueue.add(newTimer.getOutputTimestamp().getMillis());
+        outputTimestamps.compute(
+            newTimer.getOutputTimestamp().getMillis(),
+            (k, v) -> {
+              Set<String> timerIds = v == null ? new HashSet<>() : v;
+              timerIds.add(getContextTimerId(newTimer.getTimerId(), 
newTimer.getNamespace()));

Review comment:
       IMHO there is no need to store the timer id here.

##########
File path: 
runners/flink/src/main/java/org/apache/beam/runners/flink/translation/wrappers/streaming/DoFnOperator.java
##########
@@ -1226,7 +1230,7 @@ public TimerInternals timerInternals() {
      * fire time of the timer. Used for calculating the output watermark hold. 
This avoids fetching
      * timer data from the state backend which is expensive if done for each 
timer.
      */
-    private final PriorityQueue<Long> outputTimestampQueue;
+    private final SortedMap<Long, Set<String>> outputTimestamps = new 
TreeMap<>();

Review comment:
       This is very expensive in terms of memory.




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


Issue Time Tracking
-------------------

    Worklog Id:     (was: 470128)
    Time Spent: 50m  (was: 40m)

> FlinkRunner: pipeline might get stuck due to timer watermark hold not being 
> released
> ------------------------------------------------------------------------------------
>
>                 Key: BEAM-10691
>                 URL: https://issues.apache.org/jira/browse/BEAM-10691
>             Project: Beam
>          Issue Type: Bug
>          Components: runner-flink
>    Affects Versions: 2.23.0, 2.24.0
>            Reporter: Jan Lukavský
>            Assignee: Jan Lukavský
>            Priority: P1
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> Pipeline might stop progressing watermark in certain cases due to timer 
> output timestamp not being released from 
> FlinkTimerInternals#outputTimestampQueue. The pipeline has to be restarted 
> from checkpoint to reload the cache and free watermark hold.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to