Minh họa cho Ngụy biện của tính toán phân tán
Law #12 Kiến trúc

Ngụy biện của tính toán phân tán

Fallacies of Distributed Computing

Nhiều giả định tưởng hiển nhiên như mạng luôn ổn định, độ trễ bằng không hay topology không đổi đều sai.

Nguồn tham khảo: Laws of Software Engineering

Tổng quan

Các ngụy biện của tính toán phân tán là nhóm giả định sai mà người thiết kế hệ thống mạng hay mắc: mạng ổn định, latency bằng không, bandwidth vô hạn, mạng an toàn, topology không đổi và nhiều giả định tương tự.

Ý chính

  • Hệ phân tán phải thiết kế cho timeout, retry, backoff, idempotency và quan sát được lỗi.
  • Remote call không giống function call; latency, partial failure và serialization làm mô hình khác hẳn.
  • Bảo mật, topology và ownership thay đổi theo thời gian nên không thể hardcode giả định quá lạc quan.

Ví dụ từ nguồn

Một cache phân tán fetch remote node ở mọi lookup có thể chạy tốt trên máy dev nhưng chậm khủng khiếp khi đi qua mạng thật.

Microservice chatty với hàng chục request nối tiếp sẽ lộ latency ngay khi traffic hoặc khoảng cách địa lý tăng.

Nguồn gốc

Danh sách này thường được gắn với L. Peter Deutsch tại Sun Microsystems khoảng năm 1994, sau đó được bổ sung bởi các kỹ sư khác như James Gosling.

Lưu ý khi áp dụng

Nếu một thiết kế phân tán không nói rõ timeout, retry, consistency và failure mode, hãy coi đó là khoảng trống thiết kế chứ không phải chi tiết triển khai.

← Quay lại danh sách 56 luật