GoCardless

Công ty Dành cho thành viên
Bài đọc thử: 1/3 · còn 2 bài miễn phí · Xem gói thành viên

Mạch tiến hoá

Công ty thanh toán chạy Postgres trên bare-metal. Hai bài cho thấy hai mặt của độ tin cậy DB: một migration schema "vô hại" gây 15 giây downtime vì hàng đợi khoá GoCardless 2015, và một lần primary hỏng mà Pacemaker không promote được, gây 1 giờ 50 phút downtime GoCardless 2017. Năm 2020, một chứng chỉ TLS của Vault (phụ thuộc của gần mọi service) không được nạp lại sau khi gia hạn, kéo sập toàn bộ dịch vụ 22 phút GoCardless 2020. Bài học về hàng đợi khoá dẫn tới Nandi (khoảng 2020), một compiler migration chỉ cho phép thao tác an toàn GoCardless 2020. Năm 2019, khi DB khoảng 2 TB, một sự cố hiệu năng dẫn GoCardless vào bên trong query planner: thống kê sai làm planner chọn quét cả bảng GoCardless 2019.

Timeline

Năm = năm sự kiện theo bài (có thể sớm hơn năm đăng bài).

Năm Giai đoạn Thay đổi Nguồn
2015 2. Tăng trưởng Sự cố 15 giây do khoá AccessExclusive khi thêm foreign key; dùng lock_timeout, chia nhỏ DDL. GoCardless 2015
2017 2. Tăng trưởng Sập 1h50 vì Pacemaker không promote; dựng cluster mới, chuyển bằng PgBouncer tạm dừng query. GoCardless 2017
2019 2. Tăng trưởng Query LIMIT 1 trên bảng gần nửa tỉ dòng đột ngột chậm: n_distinct ước thiếu hai bậc do ANALYZE lấy mẫu theo page; tăng statistics target lên 5.000. GoCardless 2019
2020 3. Quy mô lớn Sập 22 phút: chứng chỉ TLS của Vault đã gia hạn nhưng chưa được nạp; envconsul kéo chết app khi gia hạn lease thất bại. GoCardless 2020
2020 3. Quy mô lớn Nandi: DSL migration chỉ cho thao tác an toàn về khoá, phân tích tĩnh, gần 600 migration. GoCardless 2020

Concept liên quan

Tất cả bài viết của blog (9 bài)

Blog này có 9 bài – thành viên xem đầy đủ danh sách, nhóm theo năm, có link về bài gốc.

Xem gói thành viên