鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

特性介绍

状态存储(state store)是Flink的重要组成部分,主要由状态后端(state backend)来完成。随着状态(state)中数据量的增大,状态存储性能面临挑战。OmniStateStore基于Flink提供的状态存储后端插件机制,提供状态存储的加速,从而提升Flink的整体性能。

架构介绍

OmniStateStore整体架构主要包括BSS-Cache和BSS-Store两部分。

  • BSS-Cache:用于提供近似hash性能的热数据访问能力,同时提供高效的数据降级策略。
  • BSS-Store:基于磁盘组织的LSM-Tree(Log-Structured Merge-Tree,日志结构合并树)提供大容量的温数据访问能力。

OmniStateStore整体架构设计图如图1所示。

图1 OmniStateStore整体架构设计

约束和限制

OmniStateStore作为Flink的加速插件,不仅兼容华为鲲鹏计算平台,同时也可在通用x86服务器上运行。

应用场景

OmniStateStore适用于Apache Flink流处理任务中状态数据量增大导致IO性能成为瓶颈的场景。

典型使用场景包括但不限于:

  • 实时大数据处理任务:如实时ETL、流式聚合、窗口计算等,其中状态规模随数据持续流入不断增长。
  • 复杂事件处理与有状态流计算:需长时间维护大规模状态(如用户会话跟踪、实时风控模型状态)。
  • 需高吞吐状态访问的Flink作业:在实测场景中,OmniStateStore性能达到原生Flink的1.31~2.21倍。

通过其两级存储架构(BSS-Cache提供内存级热数据访问、BSS-Store提供磁盘级温数据容量),OmniStateStore有效优化状态读写效率,适用于openEuler 22.03 LTS SP3等操作系统环境,并支持Flink 1.16.3及以上版本。

典型部署配置

OmniStateStore作为Flink的插件,其部署方式与Flink部署方式保持一致。Flink支持Yarn、Standalone及容器化等多种部署模式。

典型部署场景在3个Docker容器内,容器配置均为8核、32GB内存,其中一个容器中部署Job Manager,另外两个容器中各部署4个Task Manager。Job Manager分配8GB内存,单个Task Manager分配2个Task slot、8GB内存。