C
Cloudflare
2026-05-14
Technology Integration 影响: Important 强度: Medium 置信: 95%

Cloudflare优化ClickHouse分区策略,揭示大规模数据架构的隐藏瓶颈

内容摘要

Cloudflare为解决其PB级ClickHouse分析平台中因分区策略调整导致的计费流水线性能骤降问题,通过深度性能剖析发现了查询规划阶段的锁争用和向量复制瓶颈。该公司贡献了三个核心优化补丁到ClickHouse上游,显著提升了高并发、多分区场景下的查询性能。

核心要点

Cloudflare的“Ready-Analytics”平台采用单一巨表服务内部数百个应用,数据量超2PiB。为支持按命名空间(namespace)的差异化数据保留策略,其将分区键从`(day)`改为`(namespace, day)`,导致单表数据分片(parts)数量激增。
性能问题初期表现为计费聚合任务变慢,但常规指标(I/O、内存)正常。使用内置`tracelog`生成火焰图后,发现45%的CPU时间用于过滤分区ID,更深层的“Real”火焰图揭示了超过一半的查询时间在等待一个保护数据分片列表的互斥锁(`MergeTreeData` mutex)。
Cloudflare实施了三个递进式优化:1) 将查询规划器的独占锁改为共享锁,消除锁争用;2) 避免复制整个分片向量,改为共享缓存;3) 利用分区键排序特性,为命名空间过滤引入二分查找。这些补丁已贡献至ClickHouse上游(PR #85535)。

重要性说明

这揭示了企业构建超大规模多租户分析平台时,数据分区策略与数据库内核交互可能产生的非预期性能陷阱。Cloudflare的优化实践为行业提供了处理高并发、海量分区场景下数据库锁争用和规划器效率的范本,推动了开源OLAP数据库在高负载企业环境中的成熟度。
来源: blog
查看原文 →

💬 评论 (0)