ClickHouseのロック競合:1年間にわたるパフォーマンスボトルネック
2025-03-21
Tinybirdは、ピークロード時にClickHouseクラスタのCPU使用率が非常に低くなるという1年間の問題を抱えていました。根本原因はContextロックの競合であることが判明しました。`ContextLockWaitMicroseconds`メトリックを追加してロック待ち時間を監視し、Contextロックメカニズムを再設計することで(単一のグローバルミューテックスをリードライトミューテックスに置き換える)、パフォーマンスが大幅に向上しました。この記事では、Clangのスレッドセーフティ分析を使用して並行処理の問題をデバッグおよび解決する方法、およびQPSが3倍になり、CPU使用率が大幅に向上したベンチマーク結果について詳しく説明しています。
続きを読む
開発