Nico Kruber <n...@data-artisans.com> writes:

> Hi Narendra,
> according to [1], even with asynchronous state snapshots (see [2]), a 
> checkpoint is only complete after all sinks have received the barriers and 
> all 
> (asynchronous) snapshots have been processed. Since, if the number of 
> concurrent checkpoints is 0, no checkpoint barriers will be emitted until the 
> previous checkpoint is complete (see [1]), you will not get into the 
> situation 
> where two asynchronous snapshots are being taken concurrently.
Does this mean that operators would stop processing streams (because
they received all barriers for a new checkpoint) and wait for
the ongoing asynchronous checkpoint to complete or it means that no
barriers would be injected into sources before checkpoint finishes?

> If you enable concurrent checkpoints and asynchronous snapshots , they will 
> process concurrently but on different snapshots of the state, i.e. although 
> they are running in parallel, each stores the expected state.
> If you want to know more about the details of how this is done, I can 
> recommend Stefan's (cc'd) talk at Flink Forward last week [4]. He may also be 
> able to answer in more detail in case I missed something.
Thanks for the reference to the talk! :)

>
>
> Nico
>
>
> [1] https://ci.apache.org/projects/flink/flink-docs-release-1.3/internals/
> stream_checkpointing.html#asynchronous-state-snapshots
> [2] https://ci.apache.org/projects/flink/flink-docs-release-1.3/ops/
> state_backends.html
> [3] https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/stream/
> checkpointing.html
> [4] https://www.youtube.com/watch?
> v=dWQ24wERItM&index=36&list=PLDX4T_cnKjD0JeULl1X6iTn7VIkDeYX_X
>
> On Thursday, 21 September 2017 13:26:17 CEST Narendra Joshi wrote:
>> Hi,
>> 
>> How are concurrent snapshots taken for an operator?
>> Let's say an operator receives barriers for a checkpoint from all of
>> its inputs. It triggers the checkpoint. Now, the checkpoint starts
>> getting saved asynchronously. Before the checkpoint is acknowledged,
>> the operator receives all barriers for all inputs for the next
>> checkpoint. What will happen in this case if no concurrent checkpoints
>> are allowed (i.e. the default value is used)? What will happen if
>> concurrent checkpoints are allowed?
>> 
>> Thanks,
>> Narendra Joshi
>

-- 
Narendra Joshi

Reply via email to