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
- Đọc nhiều thì thêm replica; nhưng replica logic (binlog) phải copy cả dữ liệu và trễ. Shared storage biến "thêm replica" thành việc nhẹ (Scale dọc trước khi scale ngang).
- Failover nhanh hơn khi standby không phải đuổi kịp dữ liệu, vì dữ liệu nằm chung (Failover, replica và dự phòng dữ liệu).
- "Một writer, nhiều reader" là cách né độ phức tạp của database phân tán ghi đa điểm, đủ cho phần lớn OLTP (Chọn database theo workload).
Liên quan
Failover, replica và dự phòng dữ liệuChọn database theo workloadScale dọc trước khi scale ngangTách compute khỏi storage
#PolarDB#RDS#MySQL#Compute-storage separation#Shared storage#Redo log#Physical replication#RDMA#Parallel-Raft#Aurora#Read replica
Được nhắc tới trong
Chủ đề (4)
Công ty (1)
Bài tóm tắt (1)