BestBlogs.dev

我们的计费管道突然变慢。罪魁祸首是 ClickHouse 中一个隐藏的瓶颈 (opens in new tab)

📌 One-Sentence Summary Cloudflare 工程师详细介绍了 ClickHouse 中一个看似安全的分区键更改如何由于查询规划中隐藏的锁争用而导致严重的计费管道性能下降,以及他们为解决此问题而开发的三项补丁。 📝 Summary 这篇来自 Cloudflare 博客的文章描述了其 PB 级 ClickHouse 分析平台中发生的一个真实性能事件。为了实现按租户的数据保留,团队将一个大型表的分区键从 `day` 更改为 `(namespace, day)`。虽然此更改在逻辑上是合理的,并且没有增加每次查询读取的分区数量,但它显著增加了系统中的总数据分区数量。这导致了一个隐藏的瓶颈:在查询规划阶段,对互斥锁(`MergeTreeData`)的严重锁争用。团队使用 ClickHouse 的 trace_log 生成火焰图,首先识别出分区过滤中的 CPU 密集型问题,然后发现真正的罪魁祸首是线程在等待排他锁以复制整个分区列表。他们实施了三个关键修复:从排他锁切换到共享锁,延迟分区向量的复制,以及使用二分搜索根据命名空间修剪分区。这些优化已贡献给上游,解决了眼前的计...

Read the original article
Sign in to keep reading the full article.

Keyboard Shortcuts

Navigation

Next / previous post
j/k
Open post
oorEnter
Preview post
v

Post Actions

Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Save / unsave
s

Recommendations

Add interest / feed
Enter
Not interested
x

Go to

Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Discover
gb
Search
/

General

Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help