Bài viết này do AI tạo ra, có thể mắc sai sót.
Cloudflare cho biết đã giải phóng hơn 100 TB RAM trên toàn cầu sau khi tối ưu Pingora Backend Router (PBR), lớp cân bằng tải nội bộ định tuyến request cacheable bằng consistent hashing. Thay đổi tập trung vào thư viện mã nguồn mở pingora-ketama: giảm dung lượng ring, giảm số hash không còn đem lại lợi ích tương xứng và rollout có kiểm soát để không làm nóng origin.
u32 + u32 8 byte bằng biểu diễn byte-array 6 byte chứa hash 32-bit và index 16-bit.PBR dùng consistent hashing để đưa các request có thể cache tới backend ổn định theo URL. Mục tiêu là một bản sao nội dung mỗi data center, đồng thời khi thêm hoặc bớt server không làm dịch chuyển quá nhiều key. Mỗi server được biểu diễn bằng nhiều điểm hash; server có dung lượng lớn hơn nhận nhiều điểm hơn để nhận tỷ lệ request cao hơn.
Vấn đề xuất hiện khi cùng lúc có nhiều tổ hợp tính năng, yêu cầu tuân thủ hoặc khả năng cache. Mỗi tổ hợp có thể cần ring riêng. Số ring tăng theo tổ hợp khiến một số tiến trình PBR tiêu thụ tới 6 GB RAM chỉ cho cấu trúc hash.
Điểm hash cũ gồm hash: u32 và index: u32. PBR không cần tới hơn 65.535 backend trong một ring nên index 16-bit là đủ. Tuy nhiên, đổi field sang u16 chưa tự làm struct nhỏ hơn vì quy tắc alignment của Rust vẫn làm kích thước thành 8 byte.
Cloudflare lưu sáu byte thô và đọc lại qua getter: bốn byte hash, hai byte index. Cách này tránh padding mà không cần #[repr(packed)], giảm 25% bộ nhớ của cấu trúc consistent-hash.
Mặc định 160 điểm cho mỗi server giúp giảm độ lệch phân phối; trong ví dụ 100 server, hệ số biến thiên giảm từ khoảng 99% xuống khoảng 8%. Nhưng khi trọng số storage nhân số điểm lên rất cao, mỗi lần tăng thêm hash tạo lợi ích nhỏ dần và còn tăng xác suất collision của hash 32-bit.
Cloudflare tính lại ngưỡng phù hợp thay vì giữ tư duy “càng nhiều hash càng tốt”. Với ví dụ trọng số 625, 90.000 hash cuối chỉ mua thêm khoảng 0,7% giảm sai số. Ring v2 cho phép scale số hash cơ sở theo node, kết hợp storage compact và sắp xếp nhanh hơn.
Thay ring có thể đổi backend của nhiều cache key. Nếu bật đồng loạt, cache dễ bị cold trên diện rộng và origin có thể nhận spike traffic. Cloudflare giữ đồng thời ring v1 và v2; framework migration chọn ring ổn định theo request hash, nên rollback được mà không cần redeploy.
Triển khai đi từ location nhỏ tới nhóm data center lớn hơn. Họ kiểm tra backend-selection traces, ring-version counters, lỗi kết nối PBR, RAM, thời gian khởi động, hành vi cache và origin traffic. Chỉ khi migration đạt 100% mới gỡ đường v1; mức dùng RAM giảm thêm 100 TB sau khi ring cũ bị loại bỏ.
Đây là ví dụ rõ về tối ưu network platform: không cần đổi phần cứng hay giảm tính năng, nhưng một kiểu dữ liệu và tham số thuật toán sai tỷ lệ có thể nhân thành hàng chục terabyte ở quy mô toàn cầu. Với hệ thống load balancer, cache router hoặc service discovery tự vận hành, cần đo số object, padding bộ nhớ, cardinality của các tổ hợp policy và chất lượng phân phối tải trước khi tăng replica hay nâng RAM.
Bài học rollout cũng quan trọng không kém. Thay thuật toán chọn backend là thay trạng thái cache thực tế. Chạy hai phiên bản, chia phạm vi theo data center và quan sát origin traffic giúp giới hạn blast radius; rollout theo phần trăm toàn cục đơn thuần có thể phát tán cache churn tới mọi nơi cùng lúc.
Cloudflare Engineering, 18/09/2026.