The Evolution of Alibaba Cloud's Relational Database Services Architecture - PolarDB

Bài tóm tắt Alibaba 2018 3. Quy mô lớn Độ khó: Khó

Alibaba · 2018 · 3. Quy mô lớn · Độ khó: Khó — bài gốc

Bài giới thiệu sản phẩm của nhà cung cấp, nửa đầu là lịch sử RDBMS nói chung; không có số liệu đo. Mọi nhận định ghi "theo Alibaba". Hai bài sau về PolarDB: Alibaba 2025, Alibaba 2026.

Bối cảnh

  • Theo Alibaba, khi user, dữ liệu, service trên cloud tăng, RDS liên tục gặp vấn đề về backup, hiệu năng, migration, nâng cấp, read-only instance, dung lượng đĩa, trễ binlog; gốc phần lớn là nút cổ chai I/O (lưu trữ và mạng).
  • Các dạng RDS MySQL trước PolarDB (2018):
    • Bản cơ bản: tách compute khỏi storage bằng cloud disk nhiều bản sao; dễ migrate, mở rộng đĩa, scale compute, nhưng không có HA.
    • Bản HA: active–standby đồng bộ bằng binlog, nhiều read-only node; shared-nothing (compute và dữ liệu cùng node); SLA 99,95%.
    • Bản tài chính: Raft cho nhất quán mạnh, phục hồi nhanh.

Thay đổi chính

  • PolarDB đi cùng hướng với Amazon Aurora (2014) nhưng đường khác: tách compute và storage, một node ghi + nhiều node chỉ đọc, chung một bản dữ liệu trên storage dùng chung.
  • Bỏ ghi đa điểm: như Aurora, chọn một writer nhiều reader thay vì bài toán phân tán đầy đủ, theo Alibaba đủ cho đa số OLTP.
  • Replication vật lý bằng redo log thay cho binlog: thêm read node không cần copy toàn bộ dữ liệu, chỉ đồng bộ metadata; trễ giữa master và read node xuống mức mili giây; failover sang read node dưới 30 giây. Replication theo page song song mịn hơn theo bảng; tắt được binlog nếu không cần cho backup logic hay migration.
  • Hạ tầng bên dưới: mạng tốc độ cao với RDMA (zero-copy); chunk server nhiều bản sao, nhất quán bằng Parallel-Raft (cho phép commit log không liên tục để tăng song song); file system user-space (không theo đủ POSIX để đơn giản hơn); snapshot copy-on-write + redo log cho restore theo thời điểm; node DB chạy trong Docker.

Vì sao

  • Theo Alibaba, đẩy replication xuống tầng thấp (page, redo log) tách được logic và trạng thái ở tầng trên, giảm độ phức tạp; shared storage bỏ việc nhân bản dữ liệu cho mỗi replica.

Bài học cho SWE

Liên quan