Fault Tolerance (Khả năng chịu lỗi)

Khả năng hệ thống tiếp tục hoạt động bình thường (dù hiệu năng có thể giảm) ngay cả khi một hoặc nhiều thành phần gặp sự cố - thay vì sập hoàn toàn.

Nguyên lý nền: “mọi thứ có thể hỏng sẽ hỏng” - không hệ thống nào đảm bảo 100% uptime mãi mãi, nên lường trước sự cố và chuẩn bị phương án phục hồi là bắt buộc.

Các sự cố phổ biến trong hệ phân tán

  • Lỗi phần cứng - server sập, ổ đĩa hỏng, mất điện.
  • Lỗi phần mềm - memory leak, bug logic trả kết quả sai.
  • Sự cố mạng - mất gói tin, network partition (nhóm máy bị tách khỏi nhóm còn lại).
  • Lỗi con người - cấu hình sai, xóa nhầm dữ liệu, tắt nhầm server.
  • Quá tải - lưu lượng vượt dự kiến, CPU 100%, hết kết nối.

Cách xử lý

Thiết kế để chịu được lỗi ở mức chấp nhận được, không dừng hẳn khi có sự cố → xem Chiến lược Resilience. Đánh đổi: thêm khả năng chịu lỗi = chi phí cao hơn + phức tạp hơn. “Cái giá của sự cố còn đắt hơn cái giá của phòng ngừa.”

Liên quan