【问题标题】:Flink keyed state clean up for incremental rocksdb checkpointingFlink 键控状态清理用于增量 RocksDB 检查点
【发布时间】:2018-12-13 22:32:06
【问题描述】:

我们有一个 flink 作业,可以在 RocksDB 后端保持大的键控状态。我们正在使用增量检查点策略。随着时间的推移,国家的规模成为一个问题。我们检查了状态 ttl 解决方案,但它不支持增量 RocksDB 状态。

如果我真的需要增量检查点,解决这个问题的最佳方法是什么?

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    一种经常使用的方法是在某种 ProcessFunction 中操纵状态,并在不再需要状态时使用计时器来清除状态 - 例如,如果几个小时没有访问它。 ProcessFunctions 能够同时具有事件时间和处理时间计时器,因此您可以选择更适合您的用例。

    有关使用计时器清除状态的示例,请参阅 Flink 培训网站上的 expiring state exercise

    【讨论】:

    • 感谢您的回答。实际上我们已经检查过这种方法。我们唯一关心的是,有一条语句'计时器总是异步检查点,除了 RocksDB 后端/带有增量快照/带有基于堆的计时器的组合(将通过 FLINK-10026 解决)。 '这究竟是什么意思?这是否意味着计时器不会存储在状态后端?如果我使用增量快照,当失败发生时,计时器会发生什么?
    • 计时器已经并将继续设置检查点。在 Flink 1.6 之前,定时器总是同步检查点。现在它们通常是异步检查点的——这使得拥有大量计时器更加实用——但在某些情况下仍然是同步检查点。这将通过 FLINK-10026 解决。更完整的图片请参见issues.apache.org/jira/browse/FLINK-9485
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多