Re: 非对齐检查点还能保证exactly once语义吗

2021-08-03 文章 Caizhi Weng
Hi!

1.13 的文档对 unaligned checkpoint 的介绍在
https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/ops/state/checkpoints/#unaligned-checkpoints
和
https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/concepts/stateful-stream-processing/#unaligned-checkpointing

shimin huang  于2021年8月3日周二 下午5:06写道:

> Hi!
> 这个有相关的文档介绍吗,1.11版本左右简单了解过exactly once非对齐机制这块,1.13版本的exactly
> once的非对齐机制貌似没在官方文档上看到
>
> Caizhi Weng  于2021年8月2日周一 下午7:28写道:
>
> > Hi!
> >
> > shimin huang 说的可能是原本的 at least once 的 checkpoint 机制,这种 checkpoint
> 原本就是不对齐的。
> >
> > Flink 1.13 完善了 exactly once 条件下的不对齐 checkpoint 机制,因此这是能保证 exactly once
> > 的。实现原理简单来说就是把还没处理的数据一起写到 state 里,下次恢复的时候把这些还没处理的数据也恢复出来接着处理。
> >
> > 张锴  于2021年8月2日周一 下午7:20写道:
> >
> > > 这个原理能说明一下吗,咋做到的
> > >
> > > 东东  于2021年8月2日周一 下午7:16写道:
> > >
> > > > 对于每一个subtask,边界仍然是清晰的,所以精确一次可以保证,只不过ck会变大。
> > > >
> > > > 在 2021-08-02 18:53:11,"张锴"  写道:
> > > >
> >flink最新特性中有非对齐检查点的特性,可以用来解决一些反压下的任务,但如果用了这个,还能保证精确一次吗?对齐的检查点有清晰的快照N~N
> > +
> > > > >1之间的边界,这个会将数据混在一起,如何在恢复的时候保证精确一次?
> > > >
> > >
> >
>


Re: 非对齐检查点还能保证exactly once语义吗

2021-08-03 文章 shimin huang
Hi!
这个有相关的文档介绍吗,1.11版本左右简单了解过exactly once非对齐机制这块,1.13版本的exactly
once的非对齐机制貌似没在官方文档上看到

Caizhi Weng  于2021年8月2日周一 下午7:28写道:

> Hi!
>
> shimin huang 说的可能是原本的 at least once 的 checkpoint 机制,这种 checkpoint 原本就是不对齐的。
>
> Flink 1.13 完善了 exactly once 条件下的不对齐 checkpoint 机制,因此这是能保证 exactly once
> 的。实现原理简单来说就是把还没处理的数据一起写到 state 里,下次恢复的时候把这些还没处理的数据也恢复出来接着处理。
>
> 张锴  于2021年8月2日周一 下午7:20写道:
>
> > 这个原理能说明一下吗,咋做到的
> >
> > 东东  于2021年8月2日周一 下午7:16写道:
> >
> > > 对于每一个subtask,边界仍然是清晰的,所以精确一次可以保证,只不过ck会变大。
> > >
> > > 在 2021-08-02 18:53:11,"张锴"  写道:
> > > >flink最新特性中有非对齐检查点的特性,可以用来解决一些反压下的任务,但如果用了这个,还能保证精确一次吗?对齐的检查点有清晰的快照N~N
> +
> > > >1之间的边界,这个会将数据混在一起,如何在恢复的时候保证精确一次?
> > >
> >
>


Re: 非对齐检查点还能保证exactly once语义吗

2021-08-02 文章 张锴
谢谢你,受教了

Caizhi Weng  于 2021年8月2日周一 19:28写道:

> Hi!
>
> shimin huang 说的可能是原本的 at least once 的 checkpoint 机制,这种 checkpoint 原本就是不对齐的。
>
> Flink 1.13 完善了 exactly once 条件下的不对齐 checkpoint 机制,因此这是能保证 exactly once
> 的。实现原理简单来说就是把还没处理的数据一起写到 state 里,下次恢复的时候把这些还没处理的数据也恢复出来接着处理。
>
> 张锴  于2021年8月2日周一 下午7:20写道:
>
> > 这个原理能说明一下吗,咋做到的
> >
> > 东东  于2021年8月2日周一 下午7:16写道:
> >
> > > 对于每一个subtask,边界仍然是清晰的,所以精确一次可以保证,只不过ck会变大。
> > >
> > > 在 2021-08-02 18:53:11,"张锴"  写道:
> > > >flink最新特性中有非对齐检查点的特性,可以用来解决一些反压下的任务,但如果用了这个,还能保证精确一次吗?对齐的检查点有清晰的快照N~N
> +
> > > >1之间的边界,这个会将数据混在一起,如何在恢复的时候保证精确一次?
> > >
> >
>


Re: 非对齐检查点还能保证exactly once语义吗

2021-08-02 文章 Caizhi Weng
Hi!

shimin huang 说的可能是原本的 at least once 的 checkpoint 机制,这种 checkpoint 原本就是不对齐的。

Flink 1.13 完善了 exactly once 条件下的不对齐 checkpoint 机制,因此这是能保证 exactly once
的。实现原理简单来说就是把还没处理的数据一起写到 state 里,下次恢复的时候把这些还没处理的数据也恢复出来接着处理。

张锴  于2021年8月2日周一 下午7:20写道:

> 这个原理能说明一下吗,咋做到的
>
> 东东  于2021年8月2日周一 下午7:16写道:
>
> > 对于每一个subtask,边界仍然是清晰的,所以精确一次可以保证,只不过ck会变大。
> >
> > 在 2021-08-02 18:53:11,"张锴"  写道:
> > >flink最新特性中有非对齐检查点的特性,可以用来解决一些反压下的任务,但如果用了这个,还能保证精确一次吗?对齐的检查点有清晰的快照N~N +
> > >1之间的边界,这个会将数据混在一起,如何在恢复的时候保证精确一次?
> >
>


Re: 非对齐检查点还能保证exactly once语义吗

2021-08-02 文章 张锴
这个原理能说明一下吗,咋做到的

东东  于2021年8月2日周一 下午7:16写道:

> 对于每一个subtask,边界仍然是清晰的,所以精确一次可以保证,只不过ck会变大。
>
> 在 2021-08-02 18:53:11,"张锴"  写道:
> >flink最新特性中有非对齐检查点的特性,可以用来解决一些反压下的任务,但如果用了这个,还能保证精确一次吗?对齐的检查点有清晰的快照N~N +
> >1之间的边界,这个会将数据混在一起,如何在恢复的时候保证精确一次?
>


Re:非对齐检查点还能保证exactly once语义吗

2021-08-02 文章 东东
对于每一个subtask,边界仍然是清晰的,所以精确一次可以保证,只不过ck会变大。

在 2021-08-02 18:53:11,"张锴"  写道:
>flink最新特性中有非对齐检查点的特性,可以用来解决一些反压下的任务,但如果用了这个,还能保证精确一次吗?对齐的检查点有清晰的快照N~N +
>1之间的边界,这个会将数据混在一起,如何在恢复的时候保证精确一次?


Re: 非对齐检查点还能保证exactly once语义吗

2021-08-02 文章 shimin huang
不可以,会存在重复消费的问题,如果buffer没有对齐的话,job重启,那么这些buffer的数据就会清空,然后相关的subtask会重新消费一遍。

张锴  于2021年8月2日周一 下午6:53写道:

> flink最新特性中有非对齐检查点的特性,可以用来解决一些反压下的任务,但如果用了这个,还能保证精确一次吗?对齐的检查点有清晰的快照N~N +
> 1之间的边界,这个会将数据混在一起,如何在恢复的时候保证精确一次?
>