[
https://issues.apache.org/jira/browse/FLINK-18235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17689636#comment-17689636
]
Piotr Nowojski commented on FLINK-18235:
----------------------------------------
{quote}
The question here is that it's difficult for the Python Operator (implemented
in Java) to know whether N4 has already been processed.
{quote}
Yep, that's the difficulty that I also see. I think there are ways how to solve
it, but indeed they are not trivial to implement. As I remarked above, the
problem we are discussing here is exactly the same as how to do unaligned
checkpoints for Flink's Java operator "Op1" in the following job graph:
{noformat}
Src ---- network exchange ----> Op1 ---- network exchange ----> Sink
{noformat}
We can think of the data exchange between Flink's Python Operator and Python
process as a different implementation of network exchange.
> Improve the checkpoint strategy for Python UDF execution
> --------------------------------------------------------
>
> Key: FLINK-18235
> URL: https://issues.apache.org/jira/browse/FLINK-18235
> Project: Flink
> Issue Type: Improvement
> Components: API / Python
> Reporter: Dian Fu
> Priority: Not a Priority
> Labels: auto-deprioritized-major, stale-assigned
>
> Currently, when a checkpoint is triggered for the Python operator, all the
> data buffered will be flushed to the Python worker to be processed. This will
> increase the overall checkpoint time in case there are a lot of elements
> buffered and Python UDF is slow. We should improve the checkpoint strategy to
> improve this. One way to implement this is to control the number of data
> buffered in the pipeline between Java/Python processes, similar to what
> [FLIP-183|https://cwiki.apache.org/confluence/display/FLINK/FLIP-183%3A+Dynamic+buffer+size+adjustment]
> does to control the number of data buffered in the network. We can also let
> users to config the checkpoint strategy if needed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)