[
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)