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

Piotr Nowojski commented on FLINK-18235:
----------------------------------------

[~dianfu], may I ask if you have considered implementing a snapshot strategy 
similar to one in the {{AsyncWaitOperator}}? Namely, 
# After serializing incoming records, keep them buffered in the Flink's 
operator memory (not on the state yet!)
# If record has been successfully processed, remove it from the buffer.
# If checkpoint happens ({{snapshotState}} call), just copy in-flight records 
from the buffer, to a {{ListState}} - no need to flush or wait for the 
in-flight records to finish processing. 
# During recovery, re process the records from the recovered {{ListState}}. 

> 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
>            Assignee: Dian Fu
>            Priority: Major
>              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)

Reply via email to