Managed State(託管狀態) Vs RawState(原生狀態)

在Flink中的KeyedState和OperatorState都有兩種形式,有什麼區別?

Managed State(託管狀態)

Flink Runtime控制和管理狀態數據,並將狀態數據轉換成爲內存的Hash tables或 RocksDB的對象存儲,然後將這些數據通過內部的接口持久化到checkpoints中,任務異常時可以通過這些狀態數據恢復任務

RawState(原生狀態)

由算子自己管理數據結構,當觸發Checkpoint操作過程中,Flink並不知道狀態數據內部的數據結構,只是將數據轉換成bytes數據存儲在Checkpoints中,當從Checkpoints恢復任務時,算子自己再反序列化出狀態的數據結構

推薦

推薦:使用ManagedState管理狀態數據
優勢:ManagedState更好的支持狀態數據的重平衡以及更加完善的內存管理

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