
Cloudflare Xác định nút thắt cổ chai trong lập kế hoạch truy vấn của ClickHouse
Cloudflare gần đây đã mô tả cách sự chậm trễ trong quy trình thanh toán của họ được truy nguyên từ sự tranh chấp bên trong giai đoạn lập kế hoạch truy vấn của ClickHouse. Nhóm đã phân tích điểm nghẽn và vá ClickHouse để thay thế khóa độc quyền bằng khóa chia sẻ, loại bỏ bản sao danh sách các phần (parts list) cho mỗi truy vấn và cải thiện việc lọc các phần.
Trang chủ InfoQ
Tin tức
Cloudflare xác định nút thắt cổ chai trong lập kế hoạch truy vấn của ClickHouse
AI, ML & Kỹ thuật dữ liệu
Cloudflare xác định nút thắt cổ chai trong lập kế hoạch truy vấn của ClickHouse
Ngày 06/6/2026
3 phút đọc
Bởi
Renato Losio
Viết bài cho InfoQ
Thỏa mãn sự tò mò của bạn.
Giúp hơn 550.000 nhà phát triển cấp cao toàn cầu
mỗi tháng luôn dẫn đầu. Liên hệ
Nghe bài viết này - 0:00
Âm thanh sẵn sàng phát
Trình duyệt của bạn không hỗ trợ phần tử âm thanh.
0:00
0:00
Bình thường 1.25x 1.5x
Thích
Danh sách đọc
Cloudflare gần đây đã mô tả cách một sự chậm trễ trong quy trình thanh toán của họ được truy nguyên từ sự tranh chấp trong giai đoạn lập kế hoạch truy vấn của ClickHouse. Nhóm đã phân tích nút thắt cổ chai và vá ClickHouse để thay thế khóa độc quyền bằng khóa chia sẻ, loại bỏ bản sao danh sách các phần (parts list) cho mỗi truy vấn và cải thiện việc lọc các phần.
Quy trình của Cloudflare hỗ trợ các hệ thống thanh toán và chống gian lận, do đó sự chậm trễ có thể ảnh hưởng đến nhiều dịch vụ hạ nguồn. Sau một lần di chuyển làm tăng đáng kể số lượng các phần dữ liệu, các công việc tổng hợp hàng ngày trong ClickHouse trở nên chậm hơn nhiều, mặc dù các chỉ số hiệu suất tiêu chuẩn như I/O, mức sử dụng bộ nhớ và số hàng được quét vẫn bình thường.
Thời lượng truy vấn SELECT trung bình. Nguồn: blog của Cloudflare
Cloudflare đã sử dụng ClickHouse từ trước khi nền tảng này hỗ trợ tính năng tự động hết hạn dữ liệu và hiện đang xử lý hàng trăm petabyte dữ liệu. Do đó, Cloudflare đã tự xây dựng hệ thống lưu giữ dữ liệu bằng cách chia dữ liệu trong bảng Ready-Analytics thành các phân vùng hàng ngày và xóa mọi dữ liệu cũ hơn 31 ngày. James Morrison và Christian Endres, kỹ sư hệ thống phân tán cấp cao tại Cloudflare, giải thích:
Hệ thống này rất phổ biến, với hàng trăm ứng dụng sử dụng. Nó đã phát triển lên hơn 2PiB dữ liệu vào tháng 12/2024, với tốc độ nhập dữ liệu hàng triệu hàng mỗi giây. Tuy nhiên, nó có một lỗi nghiêm trọng: chính sách lưu giữ dữ liệu.
Trong quá trình di chuyển, Cloudflare đã thay đổi lược đồ phân vùng ClickHouse của mình để bao gồm các không gian tên của khách hàng, cho phép quản lý việc lưu giữ dữ liệu riêng biệt cho từng người thuê. ClickHouse là một cơ sở dữ liệu phân tích mã nguồn mở được thiết kế để phân tích nhanh chóng khối lượng lớn dữ liệu, thường được sử dụng cho nhật ký, số liệu, phân tích và báo cáo thời gian thực. Mặc dù số lượng các phần được truy cập trên mỗi truy vấn dự kiến sẽ không thay đổi với phương pháp phân mảnh mới, Morrison và Endres đã tóm tắt vấn đề và nguyên nhân gốc rễ của nó:
Một lượng lớn thời gian đã được dành cho việc lập kế hoạch truy vấn. Đây là giai đoạn trước khi thực thi khi ClickHouse quyết định đọc các phần nào (...) 45% thời gian CPU được lấy mẫu đã được dành cho một hàm duy nhất có tên filterPartsByPartition (...) Vấn đề không phải là công việc bị giới hạn bởi CPU; đó là sự tranh chấp khóa lớn. Hơn một nửa thời lượng truy vấn của chúng tôi đã được dành để chờ đợi để có được một mutex (MergeTreeData) duy nhất bảo vệ danh sách các phần của bảng.
Nhóm đã áp dụng ba thay đổi để giảm sự chậm lại: họ đã vá ClickHouse, thay thế khóa độc quyền bằng khóa chia sẻ và loại bỏ bản sao của toàn bộ danh sách các phần dữ liệu cho mỗi truy vấn. Hơn nữa, họ đã cải thiện việc lọc phần để tránh quét toàn bộ danh sách mỗi lần. Cùng với nhau, các thay đổi đã giảm đáng kể độ trễ truy vấn và ổn định hiệu suất khi số lượng phần tiếp tục tăng. Morrison và Endres kết luận:
Sau khi triển khai bản vá này vào tháng 3/2026, thời lượng truy vấn đã giảm 50%. Quan trọng hơn, điều này cuối cùng đã phá vỡ mối tương quan giữa thời lượng truy vấn và số lượng phần.
Trong khi hầu hết các chuyên gia trên Reddit tập trung vào các đợt sa thải gần đây và thiết kế "một bảng lớn duy nhất", Edydh Marquez Avila, kỹ sư hiện trường tại Park Place Technologies, nhận xét trên LinkedIn:
Cuộc điều tra ClickHouse của Cloudflare là một lời nhắc nhở tốt rằng các lỗi cơ sở hạ tầng hiện đại ngày càng xảy ra ở các lớp điều phối, chứ không phải giới hạn tài nguyên rõ ràng (...) Tín hiệu thú vị rộng hơn bản thân ClickHouse (...) Dữ liệu đo từ xa cấp cao không còn đủ để chẩn đoán các hệ thống quy mô lớn dưới sự đồng thời. Khả năng hiển thị thực thi cấp thấp vẫn quan trọng.
Mặc dù các bản sửa lỗi đã ổn định hiệu suất truy vấn và giải quyết tình trạng chậm trễ thanh toán tức thời, nhưng thiết kế phân vùng cơ bản vẫn có thể tạo ra các vấn đề vận hành khi số lượng phần dữ liệu tiếp tục tăng. Theo các tác giả, tải siêu dữ liệu ngày càng tăng cũng đã ảnh hưởng đến ZooKeeper, hệ thống quản lý điều phối cụm ClickHouse, và khi thảo luận về một "thỏa thuận ngừng bắn không dễ chịu", nhóm nghiên cứu đặt câu hỏi liệu kiến trúc hiện tại có bền vững về lâu dài hay không.
Cloudflare đã đóng góp các thay đổi cho dự án ClickHouse, nơi chúng được hợp nhất vào nhánh chính và có sẵn bắt đầu từ phiên bản 25.11.
/filters:no_upscale()/news/2026/06/cloudflare-clickhouse-bottleneck/en/resources/1BLOG-3299_image2-1779254163610.png)
/filters:no_upscale()/news/2026/06/cloudflare-clickhouse-bottleneck/en/resources/1BLOG-3299_image8-1779254163610.png)
Nguồn tin: InfoQ AI — Tác giả: Renato Losio. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.