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.