Flink如何与RocksDB后端异步创建检查点

时间:2020-05-25 09:50:16

标签: apache-flink rocksdb checkpoint

我在RocksDB中使用Flink。从Flink的文档中,我承认Flink在使用RocksDB后端时将异步创建检查点。请参阅其文档中的说明。

可以让操作员在存储其状态快照时继续进行处理,从而有效地使状态快照在后台异步发生。为此,操作员必须能够产生状态对象,该状态对象应以对操作员状态的进一步修改不会影响该状态对象的方式存储。例如,在RocksDB中使用的写时复制数据结构具有这种行为。

据我了解,当需要建立检查点时,操作员将对Rocksdb执行以下步骤:

  1. 刷新内存表中的数据
  2. 将db文件夹复制到另一个tmp文件夹,其中包含RocksDB中的所有数据
  3. 将复制的数据上传到远程Fs系统。 (在此步骤中,它是异步的)

我的理解正确吗?还是有人可以帮助说明细节?

非常感谢,因为我找不到任何文档来描述细节。

1 个答案:

答案 0 :(得分:2)

找到了一个提到该过程的Blog:

为此,Flink在RocksDB中触发刷新,将所有内存表强制放入磁盘上的sstable中,并在本地临时目录中进行硬链接。此过程与处理管道同步,并且Flink异步执行所有其他步骤,并且不会阻止处理。

有关更多详细信息,请参见链接:Incremental Checkpoint