当前位置: 首页 > 知识库问答 >
问题:

Apache Flink中具有大状态的保存点

何超英
2023-03-14

我想使用Rocksdb状态后端在Flink中保持大约2TB的状态。我将使用增量检查点,因此它将大大减少检查点时间。

但我有时不得不更改代码,例如重新缩放、错误修复、添加新的过滤器/映射、添加新的源/汇等。

所有这些都会影响作业拓扑。当状态发生任何变化时,我可以再次引导状态。但其他时候,引导状态可能很困难,因为这意味着我浪费时间。

在这种情况下,我必须采取一个保存点来重新开始我的工作。当作业运行时,我也定期使用保存点,以便在作业失败时从最新的保存点重新启动作业(例如每15分钟一次)。但是由于状态太大,使用保存点的时间会太长。MTTR(平均恢复时间)对我来说非常重要。如何提高保存点性能?

共有1个答案

洪涵亮
2023-03-14

您可以将保留的检查点用于不改变拓扑、不需要状态迁移或升级Flink版本(例如,重新缩放或不影响状态的简单代码更改)的重新部署,但否则应使用保存点。对于大州来说,这可能需要相当长的时间(我也不知道如何加快速度)。

与其试图提高保存点性能,不如考虑某种蓝色/绿色部署方案是否适合您。例如,请参阅Flink应用程序的零停机升级。

 类似资料:
  • 我的碎片雷达有问题。 我不能保存片段的状态,然后在片段中有一个视图。每当我使用左右滑动时,都会通过覆盖扩展FragmentPagerAdapter的静态类中的getItem ( int position)方法来重新创建片段。 在方法 OnCreateView 中,每个片段实例都有几个步骤,这会导致数据库连接池饱和。 每当动态更改片段时发现的警告是:“W/SQLiteConnectionPool(1

  • 状态的保存与恢复 操作流程 为了状态的保存与恢复,我们可以先用栈上的一小段空间来把需要保存的全部通用寄存器和 CSR 寄存器保存在栈上,保存完之后在跳转到 Rust 编写的中断处理函数;而对于恢复,则直接把备份在栈上的内容写回寄存器。由于涉及到了寄存器级别的操作,我们需要用汇编来实现。 而对于如何保存在栈上,我们可以直接令 sp 栈寄存器直接减去相应需要开辟的大小,然后依次放在栈上。需要注意的是,

  • 问题内容: 我开发了一个HTML 5应用程序,并具有加载用户评论的视图。它是递归的:任何注释都可以具有可单击的子注释,这些子注释正在同一视图中加载并使用相同的控制器。 一切都好。但是,当我想返回时,评论会再次加载,而我的位置和子评论也会丢失。 返回时可以保存视图的状态吗?我想我可以使用某种技巧,例如:每当我单击子注释并隐藏上一个视图时,都可以追加一个新视图。但是我不知道该怎么做。 问题答案: 是的

  • 有可能保护无状态REST API免受XSS和CSRF攻击吗? 目前,我使用存储在secure/httpOnly cookie中的JWT令牌进行无状态身份验证。这应该可以保护API免受最常见的XSS攻击:使用XSS注入的JavaScript窃取Cookie并将其发送给攻击者。 然而,这并不能保护API免受CSRF攻击,在这种攻击中,攻击者会欺骗经过身份验证的用户跟踪特定web API调用的链接,从而

  • 在绘画的时候,经常会有这种情况,本来正在用绿色笔画,突然需要用红色笔画几笔,但画完了之后又要换成绿色笔。如果是在现实中作画,可以把笔蘸上不同的墨水,画了之后又蘸上之前的墨水,或者准备几只笔,要用哪只就选哪只。 在Canvas中也可以这样,不过Canvas中的画笔永远只有一只。所以,如果要更换画笔的颜色,就需要保存和恢复状态。状态其实就是画布当前属性的一个快照,包括: 图形的属性值,如strokeS

  • 我想在下面的代码中通过SharedPreferences保存我的ToggleButton状态。请引导我。非常感谢。