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

原始状态与托管状态的示例

房子昂
2023-03-14

原始状态是操作员在自己数据结构中保持的状态。当检查点为检查点时,它们只将一系列字节写入检查点。Flink对状态的数据结构一无所知,只看到原始字节。

然而,我没有找到任何例子来突出这种区别。有谁能提供一个最小的例子,在代码中明确区别吗?

共有1个答案

阎令
2023-03-14

运算符状态只在运算符API中使用,而运算符API只针对高级用户,它不像最终用户API那样稳定,这就是我们很少宣传它的原因。作为一个示例,考虑AbstractUdfStreamOperator,它用一个UDF表示一个运算符。对于检查点,需要保存UDF的状态,并在恢复时恢复。

@Override
public void snapshotState(StateSnapshotContext context) throws Exception {
    super.snapshotState(context);
    StreamingFunctionUtils.snapshotFunctionState(context, getOperatorStateBackend(), userFunction);
}

@Override
public void initializeState(StateInitializationContext context) throws Exception {
    super.initializeState(context);
    StreamingFunctionUtils.restoreFunctionState(context, userFunction);
}

此时,状态可以序列化为一个字节blob。只要操作员能够自行恢复状态,状态就可以采取任意形状。

然而,巧合的是,在过去,许多运算符状态也被(重新)实现为托管状态。所以这条线在现实中更加模糊。

 类似资料:
  • 来自服务器的数据以及是否挂起或导致错误 UI状态如切换,警报和错误消息 自定义主题,凭据和本地化 许多其他类型的状态 Redux using ng2-redux Angular Services and RxJS(推荐)

  • 管理应用程序状态是个难题。您需要在多个后端,Web workers和UI组件之间进行协调。 像Redux和Flux这样的模式旨在通过使这种协调更加明确来解决这个问题。在本文中,我将展示如何使用RxJS在几行代码中实现类似的模式。然后我将展示如何使用这种模式来实现一个简单的Angular 2应用。 在谈论架构模式时,我喜欢从描述其核心属性开始。你可以写在餐巾背上的东西。The devil, of c

  • 建议使用基于redux封装出来的rematch, anujs也自带了这个框架。 rematch的官网 https://github.com/rematch/rematch resolve: { alias: { react: "anujs", "react-dom": "anujs", rematch: "anujs/dist/Rematch.js

  • 无状态管道是纯粹的功能,通过输入数据流动而不记住任何东西或引起可检测的副作用。 大多数管道是无状态的。 我们使用的CurrencyPipe和我们创建的长度管是无状态管的示例。 状态管道是能够管理它们转换的数据的状态的管道。 创建HTTP请求,存储响应并显示输出的管道是有状态的管道。 有状态管道应谨慎使用。 Angular 2提供 ,这是有状态的。 View Example 实现有状态管道 // n

  • 问题内容: 我在尝试创建一个使用React选择和取消选择其他单个复选框(全选/全选)的复选框时遇到了一个小问题。我已阅读http://facebook.github.io/react/docs/forms.html,发现 受控 和 非受控 s 之间存在差异。我的测试代码如下: “全局选择器”按预期方式工作:选中后,将选中所有其他检查。问题在于,当单击其他复选框之一时,不会触发处理程序。 我不知道进