flink如何与rocksdb后端异步创建检查点

nfeuvbwi  于 2021-06-26  发布在  Flink
关注(0)|答案(1)|浏览(599)

我在用flink和rocksdb。从flink的文档中,我确认flink在使用rocksdb后端时将异步创建检查点。参见其文档中的描述。
可以让操作员在存储状态快照的同时继续处理,有效地让状态快照在后台异步发生。为此,操作符必须能够生成一个状态对象,该状态对象的存储方式应确保对操作符状态的进一步修改不会影响该状态对象。例如,rocksdb中使用的copy-on-write数据结构具有这种行为。
据我所知,当需要建立检查点时,操作员将为rocksdb执行以下步骤:
刷新memtable中的数据
将db文件夹复制到另一个tmp文件夹中,其中包含rocksdb中的所有数据
将复制的数据上传到远程fs系统(在这个步骤中,它是异步的)
我的理解正确吗?或者有人能帮忙解释一下细节吗?
非常感谢,因为我找不到任何文件来描述细节。

nxagd54h

nxagd54h1#

找到一个博客,其中提到了这个过程:
为此,flink在rocksdb中触发一个flush,强制所有memtables进入磁盘上的sstables,并在本地临时目录中进行硬链接。这个过程与处理管道是同步的,flink异步执行所有后续步骤,并且不阻塞处理。
有关更多详细信息,请参见链接:增量检查点

相关问题