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
- LinkedIn 2015 (replica đọc qua Databus) · LinkedIn 2015 · LinkedIn 2019 (thay Databus) · LinkedIn 2013
- Event-driven, message queue và Kafka · Pipeline dữ liệu và analytics · Cache và invalidation
#CDC#Databus#Relay#Bootstrap service#Infinite lookback#Transactional ordering#Derived data#Search index#Read replica
Được nhắc tới trong
Công ty (1)
Bài tóm tắt (1)