Chương này giới thiệu một tập hợp các thuật toán có mục tiêu khác nhau nhưng mà chia sẻ một mục đích đó là cơ bản trong hệ thống phân phối: cho một tập hợp các quá trình để phối hợp hành động của họ hoặc để đồng ý về một hoặc nhiều giá trị. Ví dụ, trong trường hợp của một đoạn phức tạp của các thiết bị như một tàu vũ trụ, nó là cần thiết rằng các máy tính kiểm soát nó đồng ý về điều kiện như vậy là cho dù nhiệm vụ của tàu vũ trụ là tiến hành hoặc đã được hủy bỏ. Hơn nữa, các máy tính phải phối hợp hành động của họ một cách chính xác đối với nguồn lực được chia sẻ (các tàu vũ trụ cảm biến và thiết bị thi hành). Các máy tính phải có khả năng làm như vậy ngay cả khi có không có mối quan hệ master-slave cố định giữa các thành phần (mà sẽ làm cho phối hợp đặc biệt đơn giản). Lý do tránh cố định master-slave mối quan hệ là chúng tôi thường yêu cầu hệ thống của chúng tôi để giữ cho hoạt động bình thường ngay cả khi thất bại xảy ra, do đó, chúng ta cần phải tránh đơn điểm của sự thất bại, chẳng hạn như thạc sĩ cố định. Một khác biệt quan trọng đối với chúng tôi, như trong chương 14, sẽ là cho dù hệ thống phân phối đang được nghiên cứu là đồng bộ hoặc không đồng bộ. Trong một hệ thống không đồng bộ, chúng tôi có thể làm cho không có giả định thời gian. Trong một hệ thống đồng bộ, chúng tôi sẽ giả định rằng không có giới hạn trên sự chậm trễ truyền thư tối đa, về thời gian thực hiện để thực hiện mỗi bước của quá trình một, và đồng hồ trôi dạt tỷ giá. Các giả định đồng bộ cho phép chúng tôi sử dụng timeout để phát hiện tiến trình bị đổ vỡ crash. Một mục tiêu quan trọng của chương là để xem xét thất bại, và làm thế nào để đối phó với họ khi thiết kế thuật toán. Phần 2.4.2 giới thiệu một mô hình thất bại, chúng tôi sẽ sử dụng trong chương này. Đối phó với sự thất bại là một doanh nghiệp tinh tế, do đó, chúng tôi bắt đầu bằng cách xem xét một số thuật toán mà chịu đựng không thất bại và tiến bộ thông qua lành tính thất bại trước khi khám phá làm thế nào để chịu đựng được bất kỳ thất bại. Trên đường đi, chúng tôi gặp phải một kết quả cơ bản trong lý thuyết của hệ thống phân phối: ngay cả trong điều kiện đáng ngạc nhiên lành tính thất bại, nó là không thể đảm bảo một hệ thống không đồng bộ một tập hợp các quá trình có thể đồng ý về một giá trị được chia sẻ-ví dụ, cho tất cả các quy trình kiểm soát một tàu vũ trụ để đồng ý 'nhiệm vụ tiến hành' hoặc 'nhiệm vụ bỏ qua'. Phần 15.2 kiểm tra vấn đề phân phối loại trừ lẫn nhau. Điều này là phần mở rộng để các hệ thống phân phối của vấn đề quen thuộc của tránh điều kiện chủng tộc trong hạt nhân và các ứng dụng đa luồng. Kể từ khi hầu hết những gì xảy ra trong hệ thống phân phối tài nguyên chia sẻ, đây là một vấn đề quan trọng để giải quyết. Tiếp theo, phần 15.3 giới thiệu vấn đề liên quan nhưng tổng quát hơn về làm thế nào để 'bầu' một trong một tập hợp các quá trình để thực hiện một vai trò đặc biệt. Ví dụ, trong chương 14, chúng tôi đã thấy làm thế nào quá trình đồng bộ hóa đồng hồ của họ đến một máy chủ định thời gian. Nếu máy chủ này không thành công và một số máy chủ còn sống sót có thể thực hiện vai trò đó, vì lợi ích của tính nhất quán thì cần thiết để lựa chọn một máy chủ để tiếp nhận. Điều phối và thỏa thuận liên quan đến nhóm giao tiếp là chủ đề của Section15.4. Theo phần 4.4.1 giải thích, khả năng phát đa hướng một tin nhắn đến một nhóm là một mô hình rất hữu ích thông tin liên lạc, với các ứng dụng từ việc tìm nguồn lực để phối hợp các bản Cập Nhật để sao chép dữ liệu. Phần 15.4 kiểm tra độ tin cậy phát đa hướng và thứ tự ngữ nghĩa, và cung cấp cho các thuật toán để đạt được các biến thể. Phát đa hướng giao hàng là về cơ bản là một vấn đề của các thỏa thuận giữa các quá trình: người nhận đồng ý trên thư nào họ sẽ nhận được, và theo thứ tự mà họ sẽ nhận được chúng. Phần 15.5 thảo luận về vấn đề của bản thỏa thuận nói chung, chủ yếu trong các hình thức được biết đến như là sự đồng thuận và Byzantine thỏa thuận.
đang được dịch, vui lòng đợi..
