【无标题】

StarRocks 在 3.0 版本正式引入了存算分离架构,从 shared-nothing 走向 shared-data,实现了架构上的重大升级。这一升级受到许多用户的高度期待,因为它不仅是企业降本增效的关键,也是 StarRocks 迈向云原生的必经之路。因此,在 StarRocks 3.0 版本发布初期,StarRocks 号召了社区用户响应存算分离的测试活动,以便用户通过实际测试来反映最真实的使用体验和性能。

在用户测试报告中,StarRocks 存算分离在数据导入性能、查询性能都与存算一体达到了一致;在冷数据查询的场景的性能也只有 50% 左右的性能下降。此外,在查询性能扩展能力上,我们通过测试报告可以看到随着计算节点的增加,查询性能会接近线性增长。

以下是此次征文活动的摘录内容,完整的用户测试报告请查看:https://forum.mirrorship.cn/t/topic/7110

数据导入

❗️通过多种方式模拟真实的写入场景,包括历史数据的批量写入以及实时数据的持续写入。经测试 StarRocks 存算分离的写入吞吐与存算一体基本相当。

**数据小黑@浪潮:**总的来说,在我们的实际测试中,由于我们使用了自建的 MinIO,存算一体和存算分离在导入性能上基本保持一致。

导入方式:stream load (total bytes 7711779006);

张了了@聚水潭:资源稳定的情况下,存算分离开启本地缓存和存算一体写入基本持平。异步写入参数对于写入性能有较大影响,关闭后对于写入性能有大约 7 倍左右的提升。

导入方式:stream load

​

**杨荣:**单表同步任务使用 Flink 实时持续写入,单 BE 最高吞吐 120MB/s 左右。部分列更新场景写入峰值可达 11.8 w records/s,平时可以到 5w records/s 以上,满足业务对导数性能的需求。在近 50 个写入并发下,存算分离集群运行整体平稳。

导入方式:Flink 实时写入

rink@天道金科:使用 StarRocks 存算分离表相较于原有的 txt 数据存储到 OSS 的数据同步方式,写入吞吐有一倍左右的性能提升。

导入方式:DataX

​

**Richard@芒果TV:**导入性能符合预期

导入方式:stream load /routine load /SQL insertRoutine load 导入峰值12万 QPS,数据 json 格式,单条大小 300B 左右。Stream load 导入峰值15万 QPS,数据 json 格式,单条大小 100B 左右。

SQL insert 使用 Hive catalog,将 Hive ORC 表数据 insert 到 OLAP 表,按照 Hive 天分区导入,4000 万数据导入耗时 90S 左右。

查询性能

❗️StarRocks 存算分离的版本通过 cache 机制达到了与存算一体版本相同的查询性能。

**张了了@聚水潭:**对于单 SQL 查询来看,开启本地缓存后有明显优化,查询性能基本和存算一体表持平,根据回放测试表现来看,基本都可以符合在 100 左右的 QPS。

测试方法:50s 发送 5000 个查询

​

rink@天道金科:对比 Spark,Trino 的查询框架,StarRocks 存算分离在 cache 命中的情况下有数十倍的性能优势。未命中 cache 的情况下也有数倍的性能提升。

​杨荣: local 表与 cloud native 表的查询性能基本持平,q1 在 10 并发以上的场景下 cloud native 表都比 local 表查询性能要好。

​

**任伟:**简单查询场景下,存算分离的查询并发响应时间优于存算一体。复杂查询的场景下两者基本持平。

​

**​Richard@芒果TV:**存算分离内表查询性能相比于 Presto 有 5 倍以上的性能提升,部分查询性能可以提升数十倍。

​

冷数据查询性能

❗️存算分离的优势之一是,存储可以独立于计算资源单独扩容。但是首次查询或者是大批量的历史数据查询时 cache 容量有限,需要对远端存储的冷数据进行分析。通过测试验证表明,存算分离的冷数据查询性能对比热数据(cache 命中)只有 50% 左右的性能下降。

**任伟:**冷热数据(本地是否有磁盘 cache)SSB 全部 SQL 有2.5倍左右的性能差距,TPC-H 全部 SQL 有1.5倍左右的性能差距。

​

查询性能扩展能力

❗️通过水平扩容的方式验证存算分离版本的查询性能提升。通过测试可以看到随着计算节点的增加,查询的响应时间会接近线性下降。

**任伟:**可以看到不论是单表的简单查询还是多表的复杂查询,随着 BE 节点的增加查询性能均有明显的提升。

​

未来规划

未来,StarRocks 将继续坚定不移地优化存算分离架构,并会在以下方面持续发力:

  1. Cache 能力的持续优化:StarRocks 将使用自研的 Cache 来优化性能和效率

  2. Multi-warehouse:一份数据,多处计算。通过 multi-warehouse 技术实现真资源隔离,进一步提升业务系统稳定性

  3. 实时场景优化:我们在3.1版本将开启对主键模型表的存算分离能力支持,并且将继续优化存算分离场景下的实时能力

  4. 继续优化存算分离架构下的弹性能力:配合 multi-warehouse,在 multi-warehouse 内引入智能化的自动弹性能力,在业务峰谷期实现资源的自动伸缩,降本增效,省人也省事

  5. 继续深化推进存算分离:在 BE 存算分离基础上进一步实现 FE 的存算分离

想要再深入了解更多关于 StarRocks 存算分离架构吗?欢迎利用以下资源:

兼顾降本与增效,我们对存算分离的设计与思考

深入探索 StarRocks 存算分离架构

存算分离用户小组:

💬 StarRocks Feature Group 正式成立,欢迎入群对特定 feature 进行深入交流!

下方添加小助手,回复关键字"存算分离"即可加入 StarRocks 存算分离用户小组,开启你的降本增效之旅!

https://842372.ma3you.cn/articles/Oz4kpdl/

相关推荐
杨杨杨大侠1 小时前
都能接模型、RAG 和 MCP,Java Agent 框架到底差在哪?
java
破茧蝴蝶1 小时前
Python分布式爬虫完整教程
开发语言·python
燧机科技SuiJi2 小时前
山体坍塌落石滑坡泥石流监测系统 落石泥石流监控摄像机
大数据·人工智能·深度学习·yolo
数据库小学妹2 小时前
国产数据库怎么选?兼容、迁移、核心案例与融合架构四道关
数据库·架构·国产数据库·数据库迁移·融合数据库
狗凯之家源码网2 小时前
全新 PHP 轻量客服聊天室源码深度评测
开发语言·php·聊天室系统
远离UE42 小时前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5
keyipatience2 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
Thinker QAQ2 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
IvorySQL2 小时前
PostgreSQL 日报| PgBouncer 修复三个 CVE 漏洞(10 月 15 日)
数据库·postgresql·区块链