跳到主要内容

starrocks-compute-storage-separation-curvine

· 阅读需 5 分钟
Founder of Curvine

在云上部署场景中,存算分离架构凭借对象存储的低成本和弹性算力优势,成为越来越多企业的选择。而 StarRocks 作为高性能数据仓库,其存算分离模式的表现一直备受关注——既要享受成本红利,又担心性能损耗,这是很多开发者的核心顾虑。

今天,我们通过标准 TPC-DS benchmark 测试,全面对比存算一体(SSD/HDD)与存算分离(Curvine/OSS)架构的查询性能,并说明高性能缓存如何缓解存算分离的性能痛点。


一、测试背景:为什么要做这场对比?

本次测试核心目标是评估不同存储架构、磁盘类型对 StarRocks 查询性能的影响。在完全相同的计算资源环境下,针对 24 个表的 99 个复杂 SQL,开展 TPC-DS 100GB 标准基准测试,重点对比查询总时间、平均耗时等关键指标。

测试环境速览

项目说明
计算节点阿里云 ecs.r6.8xlarge(32C/256G),所有架构均为 3 节点集群
测试分组5 组对照:存算一体 SSD/HDD、存算分离 Curvine SSD/HDD、存算分离原生 OSS
数据集TPC-DS 100GB,99 个标准复杂 SQL

二、核心结论:4 个关键发现

1. 架构影响 > 介质影响
存算一体架构的查询性能普遍优于存算分离架构,主要因为存算一体避免了跨节点数据传输的网络开销。

2. Curvine 缓存:存算分离的性能救星
同为存算分离架构,Curvine SSD(总耗时 362s)原生 OSS(419s) 快约 16%。在私有化部署场景中,用 Curvine 替代公有云对象存储,能获得明显性能提升。

3. SSD 介质:全场景性能优势
无论存算一体还是 Curvine 存算分离,SSD 磁盘的性能始终优于 HDD,在大数据量扫描场景中尤为明显。

4. OSS:性价比之王
原生 OSS 方案虽然最慢,但仅比最快的存算一体 SSD 方案慢约 41%。考虑到其极低的存储成本和弹性扩展能力,在非极致性能敏感场景中性价比很高。


三、测试结果:详细数据对比

性能指标存算一体 (SSD)存算一体 (HDD)存算分离 (Curvine SSD)存算分离 (Curvine HDD)存算分离 (OSS)
总耗时297.96 秒313.68 秒361.86 秒385.20 秒419.15 秒
相对性能基准 (100%)慢 5.3%慢 21.4%慢 29.3%慢 40.7%
平均耗时3.01 秒3.17 秒3.66 秒3.89 秒4.23 秒
最慢查询52.94 秒54.40 秒54.87 秒55.19 秒52.66 秒

从数据可见:存算一体 SSD 表现最佳,总耗时不足 300 秒;Curvine 存算分离架构大幅缩小了与存算一体的差距,尤其是 Curvine SSD 版本;即使是最慢的 OSS 方案,平均耗时也仅 4.23 秒,满足大部分业务场景需求。


四、痛点破解:存算分离慢查询优化实录

测试中发现 2 个典型慢查询(sql-05、sql-77),存算分离与存算一体的耗时差距达 5–8 倍。通过分析,我们定位到原因并给出解决方案。

Query 05:8 倍性能差距的根源

  • 现象:存算分离约 15s,存算一体约 1.8s。
  • 原因:3 表 Union 产生约 2.75 亿行明细数据(15.33GB),跨节点全量传输导致网络瓶颈(占时约 10s)。
  • 核心矛盾:存算分离架构下,数据需远程读取并传输,而存算一体可直接读本地数据。

Query 77:全量扫描的性能陷阱

  • 现象:存算分离约 11s,存算一体约 1.8s。
  • 原因:涉及约 2.88 亿行数据全表扫描(14.43GB),远程读取的网络 I/O 效率远低于本地 SSD;优化器「预聚合」策略阻断了「动态过滤」功能,导致无效数据全量传输。

解决方案:一行参数显著提升性能

禁用聚合下推参数,恢复动态过滤功能:

SET cbo_push_down_aggregate_mode = -1;

优化效果:扫描行数从约 2.75 亿降至约 611 万,性能直接追平存算一体水平。


五、总结与选型建议

目标建议
追求极致性能选择存算一体 SSD 架构,适合实时分析、高并发查询场景。
私有化部署 + 成本敏感优先 Curvine 存算分离架构(推荐 SSD 版本),兼顾性能与弹性。
公有云 + 海量存储原生 OSS 存算分离方案,性价比突出,适合非实时分析场景。
已用存算分离执行上述优化参数,规避慢查询陷阱,性能可大幅提升。

存算分离并非「性能妥协」。通过 Curvine 高性能分布式缓存与针对性优化,StarRocks 完全能在享受低成本、高弹性的同时,保持优异的查询性能。