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

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

                Author: ASF GitHub Bot
            Created on: 13/Mar/19 15:10
            Start Date: 13/Mar/19 15:10
    Worklog Time Spent: 10m 
      Work Description: mxm commented on pull request #7991: [BEAM-6751] Add 
KafkaIO EOS support to Flink via @RequiresStableInput
URL: https://github.com/apache/beam/pull/7991#discussion_r265177674
 
 

 ##########
 File path: 
runners/flink/src/main/java/org/apache/beam/runners/flink/translation/wrappers/streaming/DoFnOperator.java
 ##########
 @@ -683,18 +721,25 @@ protected final void invokeFinishBundle() {
   }
 
   @Override
-  public void snapshotState(StateSnapshotContext context) throws Exception {
-
-    // Forced finish a bundle in checkpoint barrier otherwise may lose data.
-    // Careful, it use OperatorState or KeyGroupState to store outputs, So it
-    // must be called before their snapshot.
+  public final void snapshotState(StateSnapshotContext context) throws 
Exception {
+    // We can't output here anymore because the checkpoint barrier has already 
been
+    // sent downstream. This is going to change with 1.6/1.7's 
prepareSnapshotBarrier.
     outputManager.openBuffer();
     invokeFinishBundle();
     outputManager.closeBuffer();
 
     super.snapshotState(context);
   }
 
+  @Override
+  public final void notifyCheckpointComplete(long checkpointId) throws 
Exception {
+    super.notifyCheckpointComplete(checkpointId);
+    // We have to release all buffered data collected during checkpointing
 
 Review comment:
   I think that is as much misleading as the current version. Perhaps "We can 
now release all buffered data which was held back for @RequiresStableInput 
guarantees."
   
   We do not allow more than one checkpoint at a time. Consequently, this will 
be called before the next checkpoint completes.
 
----------------------------------------------------------------
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: 212435)
    Time Spent: 5h 50m  (was: 5h 40m)

> KafkaIO's EOS mode does not work with FlinkRunner
> -------------------------------------------------
>
>                 Key: BEAM-6751
>                 URL: https://issues.apache.org/jira/browse/BEAM-6751
>             Project: Beam
>          Issue Type: Bug
>          Components: io-java-kafka, runner-flink
>            Reporter: Maximilian Michels
>            Assignee: Maximilian Michels
>            Priority: Major
>             Fix For: 2.12.0
>
>          Time Spent: 5h 50m
>  Remaining Estimate: 0h
>
> KafkaIO has a validation check which whitelists certain runners capable of 
> provide exactly-once semantics:
> {noformat}
>         if ("org.apache.beam.runners.direct.DirectRunner".equals(runner)
>             || runner.startsWith("org.apache.beam.runners.dataflow.")
>             || runner.startsWith("org.apache.beam.runners.spark.") {
> ...
> {noformat}
> The Flink supports exactly-once checkpointing but the Flink Runner can't 
> utilize it in the way KafkaIO intends it.
> I think we should remove the check in favor of checking for translation of 
> {{@RequiresStableInput}}. Changes to KafkaIO might have to be made to support 
> EOS efficiently with the Flink Runner.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to