No record left behind: How WarpStream can withstand cloud provider regional outages

Bài tóm tắt WarpStream 2025 3. Quy mô lớn Độ khó: Nâng cao

WarpStream · 2025 · 3. Quy mô lớn · Độ khó: Nâng cao — bài gốc

Bài giới thiệu tính năng của nhà cung cấp (Kafka "diskless" trên object storage). Nhận định và con số SLA là "theo WarpStream".

Bối cảnh

  • Cụm thường của WarpStream dựa vào một region control plane, cam kết 99,99% uptime, độ bền ngang S3 hay DynamoDB. Nhiều hệ thống chấp nhận "region sập thì mình sập", tức là uptime bị chặn trên bởi region của nhà cung cấp.
  • Theo WarpStream, sự cố cả region không hiếm: ngày 3/7/2025 DynamoDB ở us-east-1 không phản hồi hơn 30 phút.
  • Phân biệt: uptime khác durability; RPO là lượng dữ liệu tối đa có thể mất. RPO=0 nghĩa là ghi đã được xác nhận thì không bao giờ mất.
  • Nguồn lỗi thứ hai là deploy hỏng: họ deploy tuần tự từng AZ rồi từng region, nên một bản hỏng khó lan ra mọi nơi; cụm đa region chỉ có một region được deploy tại một thời điểm.

Thay đổi chính (Multi-Region Cluster)

  • Data plane (chạy trong môi trường khách): agent ghi vào quorum 3 bucket object storage ở 3 region trước khi xác nhận. Không dùng replication bất đồng bộ của bucket, vì S3 nói 99,99% object được nhân bản trong vòng 15 phút, quá chậm cho RPO=0.
  • Control plane: trạng thái chính vốn nằm trong DynamoDB (AWS) hoặc Spanner (GCP). Chuyển sang DynamoDB Global Tables nhất quán mạnh đa region hoặc Spanner đa region là gần như đủ; các region control plane không nói chuyện trực tiếp với nhau.
  • Active-active về mặt kiến trúc, nhưng thực tế chọn một leader: ghi đồng thời ở nhiều region gây xung đột và latency khó đoán. Họ bầu leader (dùng chính primitive của Spanner hay DynamoDB) và hướng mọi traffic metadata về leader.
  • Tốc độ ánh sáng: ghi nhất quán mạnh đa region cần quorum region, nên chậm hơn ghi một region. Ví dụ leader ở us-east-1 (gần us-east-2) nhanh hơn ở us-west-2 khoảng 100 ms. Theo WarpStream, p50 cao hơn cụm một region khoảng 80–100 ms. Chế độ auto tự đo latency và "dàn xếp" bầu chọn để region nhanh nhất làm leader; vẫn cho chọn tay.
  • Thử nghiệm: tắt hẳn region leader. Producer không dừng, latency tăng vọt khoảng 10 giây, không mất record nào, vì client retry các batch trong lúc bầu leader mới.
  • Lỗi một phần (một region chậm chứ không chết) khó hơn lỗi hoàn toàn. Bản đầu xử lý bằng cách tự đổi region ưu tiên khi storage chậm, cộng nút chuyển tay. Họ cam kết 99,999% (26 giây mỗi tháng) cho cụm đa region.

Bài học cho SWE

  • Đa region thật sự = data plane ghi quorum xuyên region + control plane trên kho đa region nhất quán mạnh. Replication bất đồng bộ cho RPO khác 0 (so với active/passive của Goldman Sachs, Goldman Sachs 2021) (Độ tin cậy và multi-region).
  • Active-active cho ghi thường không đáng: một leader + failover tự động đơn giản hơn, latency dễ đoán hơn.
  • Giá của đa region là latency theo địa lý; chọn bộ region và leader theo khoảng cách.
  • Deploy tuần tự theo AZ rồi theo region là một lớp bảo vệ độc lập với kiến trúc (Deploy và release an toàn).

Liên quan