GeminiStateBackend是一款面向流计算场景的KV存储引擎,作为实时计算Flink版产品的默认状态存储后端(StateBackend)。本文为您介绍企业级状态后端存储GeminiStateBackend的核心设计,以及其与RocksDBStateBackend的性能对比情况。
整体介绍
有状态计算是流处理中非常复杂和有挑战的场景。流处理的数据访问具有以下特点:
存在大量的随机访问且很少有范围查询。
数据流量和热点会更加频繁地动态变化,使得即便是同一算子的不同并发,也会有不同的数据访问模式。
GeminiStateBackend就是针对以上特点设计的,其核心设计亮点如下:
全新的架构和数据结构设计,全面的性能提升。
GeminiStateBackend的整体架构是在LSM数据结构的基础上设计的,包含了随数据规模和访问特点变化而自适应、数据冷热分层,可以在Anti-caching和Caching架构间灵活切换的三种能力。此外,还具备随机查询友好的哈希存储结构。Nexmark性能对比的结果显示,GeminiStateBackend相比RocksDBStateBackend的性能有了较大的提升。
支持存储计算分离,彻底摆脱状态数据的本地盘存储限制。
在本地盘空间限制的环境下,State较大的作业经常会遇到本地磁盘空间不足的问题。基于RocksDBStateBackend的作业通常需要通过扩并发等增加资源的手段来解决该问题。GeminiStateBackend具有存储计算分离的技术,使得状态存储可以不依赖于本地盘,可以避免因本地状态数据过大而引发作业故障的问题。有关存储计算分离相关配置,请参见存算分离配置。
支持KV分离,大幅提升双流或多流Join作业的效能。
双流或多流Join作为流计算中最有挑战的场景之一,也是状态存储会遇到瓶颈的一个典型场景。GeminiStateBackend基于KV分离技术,极大提升了双流或多流Join作业的效能。经过阿里巴巴集团双十一核心业务验证,开启KV分离后计算资源利用率平均可以提升50%。典型优势场景下可以提升100% ~ 200%。有关KV分离相关配置,请参见KV分离配置。
自适应参数调优,告别手动调参烦恼。
在流计算任务中,不同算子往往具有不同的状态访问模式。状态存储通常需要不同的参数组合才可以达到最佳的性能,而这些参数往往很多而且涉及底层细节,手动调参会给您带来较高的学习和理解成本。GeminiStateBackend通过自适应参数调优技术,在作业运行时根据当前数据访问模式和流量自动调参,以达到各种场景下的最佳性能。经过阿里巴巴集团双十一核心业务验证,该技术可以避免95%以上的人工调参,同时提升10% ~ 40%的单核吞吐能力。有关自适应调参相关配置,请参见自适应调参配置。
Nexmark性能对比
我们使用Nexmark中State瓶颈的用例和相同的硬件资源,测试并对比了RocksDBStateBackend和GeminiStateBackend的性能。
Nexmark属于第三方搭建的网站,访问时可能会存在无法打开或访问延迟的问题。
结果显示GeminiStateBackend对作业整体效能(单核吞吐能力)的优化效果十分显著,具体数据如下表所示。
CaseName | Gemini TPS/Core | RocksDB TPS/Core | Gemini VS RocksDB提升 |
q4 | 83.63 K/s | 53.26 K/s | 57.02% |
q5 | 84.52 K/s | 57.86 K/s | 46.08% |
q8 | 468.96 K/s | 361.37 K/s | 29.77% |
q9 | 59.42 K/s | 26.56 K/s | 123.72% |
q11 | 93.08 K/s | 48.82 K/s | 90.66% |
q18 | 150.93 K/s | 87.37 K/s | 72.75% |
q19 | 143.46 K/s | 58.5 K/s | 145.23% |
q20 | 75.69 K/s | 22.44 K/s | 237.30% |
相关文档
GeminiStateBackend的技术解读,请参见阿里云实时计算企业级状态存储引擎 Gemini 技术解读。
报错:You are using the new V4 state engine to restore old state data from a checkpoint
创建、查看、删除状态集和从指定状态恢复,请参见作业状态集管理。
RocksDB和Gemini在状态数据迁移时的迁移效率和作业表现方面的区别,请参见概述。
SQL修改所造成的兼容性影响详情,请参见SQL修改及兼容性。
使用Nexmark测试实时计算Flink版性能过程,请参见性能白皮书(Nexmark性能测试)。
- 本页导读 (1)