谢谢大佬解答。
想再问一下,在并发1的情况下,一个算子里的MapState应该只有一个实例,
那么数据流上的不同key(不是map里的hash key)是怎么保证只获取到对应的那部分map state数据呢?

按我的理解,按key分流后,每个子流应该是只有自己的state,但从算子实例考虑,好像只有1个state实例存在。

Benchao Li <libenc...@apache.org> 于2020年8月20日周四 下午4:40写道:

> Hi,
>
> 问题1&2 都不存在多线程的问题。Flink底层来保证这些方法都是在同一个线程串行执行的。
>
> shizk233 <wangwangdaxian...@gmail.com> 于2020年8月20日周四 下午2:22写道:
>
> > Hi all,
> >
> > 请教一下,KeyedCoProcessFunction比较特殊,有两个输入,对应两个ProcessElement方法。
> > 问题1:
> > 如果在这两个Process方法中都对同一个MapState进行修改,是否会存在资源竞争的关系?
> > 还是这两个方法是顺序执行的?
> >
> > 问题2:
> > 虽然有不同的key,但函数只有一个实例,其中的MapState应该也是一个实例,那么不同key下的
> > Process过程是并发执行的还是顺序执行的,会竞争MapState资源吗?
> >
>
>
> --
>
> Best,
> Benchao Li
>

Reply via email to