Khi tôi mô phỏng các hệ thống phân tán, tôi thường bắt đầu với một tư duy phòng thủ. Các quorum khu vực rất hữu ích cho hiệu suất, nhưng chúng mang lại sự mong manh. Nếu một lớp phối hợp địa phương bị đình trệ, câu hỏi không phải là liệu tiến độ có chậm lại hay không — mà là liệu chính thời kỳ đó có trở nên mơ hồ hay không. Trong hầu hết các kiến trúc, sự mơ hồ đó rò rỉ lên trên. Các ứng dụng cuối cùng gánh vác gánh nặng.
Điều nổi bật với tôi khi phân tích Fogo là sự vắng mặt của sự rò rỉ đó.
Thậm chí trong các kịch bản mà một khu vực đồng thuận cụ thể không đạt được quorum trong khoảng thời gian được chỉ định, sự tiến triển của thời kỳ không bị vỡ. Không có trạng thái nửa hợp lệ hoặc giai đoạn lơ lửng khó xử. Hệ thống quay về đồng thuận toàn cầu cho thời kỳ đó, và việc thực thi tiếp tục một cách rõ ràng. Không có dòng thời gian bị vỡ. Không cần xử lý đặc biệt.
Từ quan điểm của một người xây dựng, đó không phải là một chi tiết nhỏ — nó định hình lại các giả định mô hình.
Tôi không cần phải thiết kế xung quanh sự thất bại khu vực như một rủi ro hàng đầu. Không cần phải viết logic bảo vệ cho các trường hợp ngoại lệ "khu vực không hoàn tất". Quorum địa phương hoạt động như một tối ưu hóa hiệu suất, không phải như một phụ thuộc cấu trúc cho tính hợp lệ của thời kỳ. Sự phân biệt đó quan trọng. Nó giữ ranh giới an toàn neo giữ toàn cầu trong khi cho phép tính địa phương cải thiện thông lượng mà không đe dọa tính quyết định.
Kết quả là một điều gì đó tinh tế nhưng có ý nghĩa: các thời kỳ vẫn duy trì tính dự đoán ngay cả khi sự phối hợp địa phương không hợp tác.
Trong thiết kế hệ thống phân tán, tính dự đoán có giá trị hơn tốc độ thô. Sự tách biệt giữa phối hợp địa phương và an toàn toàn cầu của Fogo làm cho bề mặt đồng thuận dễ lý luận hơn. Là một người xây dựng, sự rõ ràng đó giảm bớt kiến trúc phòng thủ và cho phép tôi mô hình hóa sự liên tục của thời kỳ với sự tự tin hơn là sự dự phòng.
@Fogo Official #fogo $FOGO

