You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/05/05 00:26:00 UTC

[jira] [Commented] (FLINK-8533) Support MasterTriggerRestoreHook state reinitialization

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

ASF GitHub Bot commented on FLINK-8533:
---------------------------------------

Github user EronWright commented on the issue:

    https://github.com/apache/flink/pull/5427
  
    @StephanEwen thanks again for the feedback, which I took to heart and simplified the hook.  It now has a `reset ` method that is called only in the special case.
    
    I will refactor the thread context code in a separate PR.



> Support MasterTriggerRestoreHook state reinitialization
> -------------------------------------------------------
>
>                 Key: FLINK-8533
>                 URL: https://issues.apache.org/jira/browse/FLINK-8533
>             Project: Flink
>          Issue Type: Bug
>          Components: State Backends, Checkpointing
>    Affects Versions: 1.3.0
>            Reporter: Eron Wright 
>            Assignee: Eron Wright 
>            Priority: Major
>
> {{MasterTriggerRestoreHook}} enables coordination with an external system for taking or restoring checkpoints. When execution is restarted from a checkpoint, {{restoreCheckpoint}} is called to restore or reinitialize the external system state. There's an edge case where the external state is not adequately reinitialized, that is when execution fails _before the first checkpoint_. In that case, the hook is not invoked and has no opportunity to restore the external state to initial conditions.
> The impact is a loss of exactly-once semantics in this case. For example, in the Pravega source function, the reader group state (e.g. stream position data) is stored externally. In the normal restore case, the reader group state is forcibly rewound to the checkpointed position. In the edge case where no checkpoint has yet been successful, the reader group state is not rewound and consequently some amount of stream data is not reprocessed.
> A possible fix would be to introduce an {{initializeState}} method on the hook interface. Similar to {{CheckpointedFunction::initializeState}}, this method would be invoked unconditionally upon hook initialization. The Pravega hook would, for example, initialize or forcibly reinitialize the reader group state.    



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