Open sourcing Databus: LinkedIn's low latency change data capture system

Bài tóm tắt LinkedIn 2013 2. Tăng trưởng Độ khó: Trung bình

LinkedIn · 2013 · 2. Tăng trưởng · Độ khó: Trung bình — bài gốc

Bối cảnh

  • LinkedIn có nhiều hệ lưu trữ chuyên biệt: DB OLTP nhận ghi; search index, cache, read replica phục vụ đọc. Các hệ dẫn xuất này phải theo kịp DB chính một cách đáng tin cậy và giữ thứ tự transaction.

Thay đổi chính

  • Databus (có từ 2005, bản hiện tại production từ 2011, open source 2/2013): CDC độ trễ mili giây, hàng nghìn sự kiện/giây mỗi server; nguồn Oracle và MySQL.
  • Relay kéo thay đổi đã commit từ DB vào log store hiệu năng cao; Bootstrap service giữ snapshot trượt bằng cách áp dần stream thay đổi; client library gọi callback của consumer.
  • Giao theo thứ tự commit, nhóm theo transaction; lọc phía server theo partition.
  • Infinite lookback: consumer tụt quá xa (dữ liệu đã ra khỏi log của relay) nhận snapshot hợp nhất các thay đổi từ điểm nó dừng; consumer mới nhận snapshot nhất quán từ bootstrap rồi bắt kịp từ relay, không đè thêm tải lên DB chính.
  • Consumer điển hình: search index, read replica của profile.

Bài học cho SWE

  • Dựng lại một hệ dẫn xuất (index mới) mà không đụng DB chính cần một snapshot nằm ngoài DB chính; tách "theo dõi thay đổi" và "bắt đầu từ đầu" thành hai đường.

Liên quan