Hi Aaron,

It is thread safe since the state snapshot happens in the same thread with
the user function.

Thanks,
Zhu Zhu

Aaron Langford <aaron.langfor...@gmail.com> 于2019年12月19日周四 上午11:25写道:

> Hello Flink Community,
>
> I'm hoping to verify some understanding:
>
> If I have a function with managed state, I'm wondering if a
> checkpoint will ever be taken while a function is mutating state. I'll try
> to illustrate the situation I'm hoping to be safe from:
>
> Happy Path:
> t0 -> processFunction invoked with el1
> t1 -> set A to 5
> t2 -> set B to 10
> t3 -> function returns
>
> Unhappy path:
> t0 -> processFunction invoked with el1
> t1 -> set A to 5
> t2 -> function interrupted, checkpoint taken (A = 5, B = 1)
> t3 -> set B to 10
> t4 -> function returns
> ...
> tn -> flink application fails, restart from prev checkpoint (A=5, B=1)
> tn+1 -> recovery begins somewhere, but state is torn anyway, so we're
> going to have a bad time
>
> I don't think this could happen given that checkpoints effectively are
> messages in the pipeline, and the checkpoint is only taken when an operator
> sees the checkpoint barrier.
>
> Hoping to make sure this is correct!
>
> Aaron
>

Reply via email to