A Decade of Evolution of Alibaba's Databases - Part 2

Bài tóm tắt Alibaba 2019 3. Quy mô lớn Độ khó: Trung bình

Alibaba · 2019 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc

Phần 2 của hồi ký. Phần 1: Alibaba 2019.

Thay đổi chính

  • 2016, giám sát: hệ giám sát DB thành nút cổ chai khi số DB tăng: độ chi tiết chỉ 1 phút, sau tối ưu mới được 10 giây. Bộ phận bảo mật lại đòi thu toàn bộ câu SQL để phân tích realtime. Họ dựng lại cả hệ giám sát (giám sát theo giây, thu toàn bộ SQL ngay trong Double 11). Dữ liệu đó sau thành nền cho chẩn đoán tự động (CloudDBA) và TSDB.

  • 2016, hot key ở cache Tair: một key trong cache chỉ nằm trên một máy, nên lượng truy cập tập trung dịp Double 11 vượt CPU và NIC của một máy. Họ phát triển băm hot key ra cả cụm (hotspot hash). Năm 2017 việc này giữ mọi cụm dưới ngưỡng an toàn; theo tác giả, không có nó nhiều cụm Tair đã gặp sự cố. Người dùng cũng muốn DB có giao diện KV hiệu năng cao, nhất quán với giao diện SQL.

  • 2016→2017, làm phẳng đường cong 00:00: dù đã có full-link stress test, năm 2016 đường giao dịch lúc 00:00 vẫn dao động và leo chậm tới đỉnh. Năm 2017 họ thêm làm ấm (preheating) mọi thành phần trước giờ mở: làm ấm dữ liệu (DB, cache) và làm ấm ứng dụng. Kết quả là đường cong năm 2017 phẳng.

  • 2017→2018, tách compute khỏi storage: tranh luận kéo dài trong nội bộ. Lý do quyết định: compute gắn với storage thì dời compute là phải dời dữ liệu, nên không co giãn tối đa được.

    • thử nghiệm trên Ceph (2017), song song với Apsara Distributed File System 2.0;
    • cần mạng độ trễ thấp: TCP 25 Gbit/s (2017), rồi RDMA quy mô lớn (2018).

    Double 11 năm 2018 dùng tách compute/storage trên diện rộng.

Bài học cho SWE

  • Hot key ở cache không giải được bằng consistent hashing; phải nhân bản hoặc băm riêng key nóng. Cùng nhận định của Pinterest, và cách khác với bounded load của Zalando, cache cục bộ của Airbnb (Hot partition và thundering herd, Cache và invalidation).
  • Cold start trước đỉnh tải biết trước có thể tránh bằng làm ấm cache, DB và ứng dụng.
  • Tách compute khỏi storage là điều kiện để mượn tài nguyên co giãn cho đỉnh tải, đổi lại cần mạng rất nhanh (Chọn database theo workload).

Liên quan