杨关锁镜舟科技DLA研发工程师焦明烨阿里云研发工程师
StarRocks
StarRocks Lakehouse 基本架构
StarRocks 在Iceberg的性能优化工作
03
StarRocks在 Paimon 的性能优化工作
StarRocks Lakehouse 架构
STARROCKS SUMIMIT ASIA2024
StarRocks 在 Iceberg的性能优化工作
StarRocks 查询 Iceberg 基本流程
STARROCKS SUMMIT ASIA2024
Iceberg Metadata Cache
性能痛点
⚫➢8MB1s⚫➢●元数据文件获取和解析速度慢>解析8MB元数据文件需要1s·访问成本高>单次查询通常只涉及一个Manifest文件中包含的少量数据文件
Metadata Cache
⚫⚫·缓存解析后的元数据·支持后台增量刷新
STARROCKS SUMMIT ASIA2024
Iceberg Distributed Metadata Plan
性能痛点
⚫Plan⚫⚫·Plan阶段耗时过长,特别是元数据文件解析速度慢·对FE节点的CPU和内存依赖过重·当表的元数据很大时,IcebergJob Planing耗时显著增加
Distributed Metadata Plan
⚫➢⚫➢➢·实现》将元数据文件的获取、解析和过滤从单个FE节点转移到多个BE执行·效果>Iceberg Job Planing性能提升数倍>FE节点的内存和CPU开销显著降低
STARROCKS SUMMIT ASIA2024
Iceberg Metadata Cache & Distrubuted Metadata Plan
How metadata cache and distributed metadata planworks?
⚫FEcache⚫cache➢➢distributed manifest plan job●FE优先检查本地cache是否命中●未命中cache时,根据一定条件选择:>直接从远端拉取并解析元数据文件> 执行distributed manifest plan job
统计信息收集
等深直方图
Bucket Count = 4Data Set = {1.6, 1.9, 1.9, 2.0, 2.4, 2.6, 2.7, 2.7, 2.8, 2.9, 3.4, 3.5]
⚫⚫·统计信息为CBO优化器提供成本的计算参考·优化器基于统计信息尽可能选择最优执行计划
⚫⚫⚫●统计信息类型:基础统计信息、直方图统计信息●收集类型:全量收集、抽样收集●收集方式:手动收集、自动收集和查询触发收集
STARROCKS SUMMIT ASIA2024
统计信息收集-查询触发收集
⚫⚫⚫⚫·优化器查询FE缓存的统计信息,确定需要触发收集的表和列·触发信息包装成收集任务,添加到等待队列·调度线程周期地从等待队列中获取任务放入执行队列·收集任务在执行时收集并存储统计信息,清除FE缓存中对应的过期统计信息
STARROCKS SUMMIT ASIA2024
Scan Range增量投递
⚫⚫⚫·获取所有scan range,然后全部投递下去,期间BE同步等待·一次载入所有scan range,会导致FE/BE内存压力较大●对类似limit等短路查询不友好
⚫⚫⚫·将所有scanrange分成小块,分批投递,BE可以尽早参与执行·可以减少FE/BE内存压力·对于limit等短路查询,尽可能减少多余的scanrange开销
STARROCKS SUMMIT ASIA2024
Parquet Reader-自适应IO 合并
⚫⚫·合并小IO,减少远端访问IOPS·根据过滤条件优化合并范围,减少读放大
Parquet Reader- Page Index 支持
⚫● Parquet Page Index技术
STARROCKS SUMIMT ASIA2024
Parquet Reader- Page Index 支持
⚫·PageIndex效果测试
STARROCKS SUMMIT ASIA 2024
Data Cache
⚫⚫⚫⚫⚫⚫·基于一致性哈希的分布式缓存,避免扩缩容大量缓存失效●StarRocks原生cache,无需外部依赖·BE本地缓存,减少网络开销·Block粒度数据缓存,减少读写放大·缓存有效性校验,避免读到过期数据·透明加速外表查询,性能接近内表(12%以内)
Data Cache
⚫⚫⚫⚫⚫·内存+磁盘缓存:内存更加可控·内存、磁盘任意组合,支持两级或一级(全内存或全磁盘)缓存·自定义数据数据迁移策略,数据提升和沉降更加可控·高效的本地磁盘空间管理,避免小文件管理问题·支持SLRU等淘汰策略,改善缓存污染问题
STARROCKS SUMMIT ASIA2024
Data Cache-开箱即用
⚫⚫⚫·默认开启,透明加速·用户无需修改任何参数配置·引入多种机制自动处理默认开启后各类问题
STARROCKS SUMMIT ASIA 2024
Data Cache-IO自适应
⚫⚫𝑚𝑎𝑥(𝑇𝑙𝑜𝑐𝑎𝑙,𝑇𝑟𝑒𝑚𝑜𝑡𝑒)≤𝑇𝑠𝑡𝑎𝑟𝑟𝑜𝑐𝑘𝑠≤(𝑇𝑙𝑜𝑐𝑎𝑙+𝑇𝑟𝑒𝑚𝑜𝑡𝑒)避免磁盘性能太差或本身负载过高导致查询缓存出现负优化能够同时利用本地磁盘和网络,提高整体吞吐量:max(Tiocal, Tremote)≤Tstarrocks ≤ (Tlocal+Tremote)
STARROCKS SUMMIT ASIA2024
Data Cache-缓存预热
⚫·基本语法
CACHE SELECT