Managed State(托管状态) Vs RawState(原生状态)

在Flink中的KeyedState和OperatorState都有两种形式,有什么区别?

Managed State(托管状态)

Flink Runtime控制和管理状态数据,并将状态数据转换成为内存的Hash tables或 RocksDB的对象存储,然后将这些数据通过内部的接口持久化到checkpoints中,任务异常时可以通过这些状态数据恢复任务

RawState(原生状态)

由算子自己管理数据结构,当触发Checkpoint操作过程中,Flink并不知道状态数据内部的数据结构,只是将数据转换成bytes数据存储在Checkpoints中,当从Checkpoints恢复任务时,算子自己再反序列化出状态的数据结构

推荐

推荐:使用ManagedState管理状态数据
优势:ManagedState更好的支持状态数据的重平衡以及更加完善的内存管理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章