RG q654 CHƯƠNG 15 ĐIỀU PHỐI VÀ THỎA THUẬN: = S. Nếu SR g q + 1! , nó đặt các thông điệp trong hàng đợi giữ lại cho đến khi các tin nhắn can thiệp đã được chuyển giao và SR g q + 1 =. Kể từ khi tất cả các thư từ người gửi nhất định được phân phối trong trình tự giống, và kể từ khi gửi một tin nhắn là bị trì hoãn cho đến khi số thứ tự của nó đã đạt tới, các điều kiện cho FIFO đặt hàng là rõ ràng hài lòng. Nhưng điều này là do đó chỉ theo giả định rằng các nhóm là không chồng chéo. Lưu ý rằng chúng tôi có thể sử dụng bất kỳ thực hiện B-multicast trong giao thức này. Hơn nữa, nếu chúng tôi sử dụng một nguyên thủy R-multicast đáng tin cậy thay vì B-multicast, sau đó chúng tôi có được một phát đa hướng FIFO đáng tin cậy. Thực hiện tổng số thứ tự • phương pháp tiếp cận cơ bản để thực hiện tất cả đặt hàng để chỉ định hoàn toàn ra lệnh cho các định danh phát đa hướng thư để làm cho mỗi quá trình cùng quyết định đặt hàng dựa trên các từ định danh. Các thuật toán phân phối là rất tương tự như một trong chúng tôi mô tả cho FIFO đặt hàng; sự khác biệt là quá trình giữ số thứ tự cụ thể nhóm chứ không phải là số thứ tự cụ thể quá trình. Chúng tôi chỉ xem xét làm thế nào để hoàn toàn thư được gửi đến nhóm không chồng chéo. Chúng tôi gọi các hoạt động phát đa hướng đến-multicast và để cung cấp. Chúng tôi thảo luận về hai phương pháp chính để gán định danh cho tin nhắn. Đầu tiên này là cho một quá trình được gọi là một sequencer để gán cho chúng (hình 15.13). Một quá trình muốn đến-multicast một m thông báo nhóm g gắn một định danh duy nhất id(m) vào nó. Các thư cho g được gửi đến sequencer cho g, sequencer(g), cũng như các thành viên của g. (sequencer có thể được chọn để trở thành một thành viên của g.) Sequencer(g) quá trình duy trì một sg số thứ tự cụ thể nhóm, mà nó sử dụng để chỉ định ngày càng tăng và trình tự liên tiếp số-các tin nhắn mà nó mang lại B. Nó thông báo số thứ tự bởi B-multicasting thứ tự thư để g (xem hình 15.13 cho các chi tiết). Thư sẽ vẫn còn trong hàng đợi trở lại giữ vô thời hạn cho đến khi nó có thể là đến-gửi theo thứ tự số tương ứng. Kể từ khi số thứ tự cũng được định nghĩa (bởi sequencer), các tiêu chí để đặt mua tất cả được đáp ứng. Hơn nữa, nếu các quá trình sử dụng một biến thể ra lệnh cho FIFO của B-multicast, sau đó phát đa hướng hoàn toàn đặt hàng cũng nào đã ra lệnh. Chúng tôi để người đọc để hiển thị này. Vấn đề rõ ràng với một chương trình sequencer dựa trên là sequencer có thể trở thành một nút cổ chai và là một điểm quan trọng của sự thất bại. Thuật toán thực tế tồn tại địa chỉ đó là vấn đề của sự thất bại. Chang và Maxemchuk [1984] đầu tiên đề xuất một giao thức phát đa hướng sử dụng một sequencer (mà họ gọi là một trang web mã thông báo). Kaashoek et al. [1989] phát triển một giao thức dựa trên sequencer cho hệ thống Amoeba. Các giao thức này đảm bảo rằng thư là trong hàng đợi trở lại giữ tại f + 1 nút trước khi nó được phân phối; lên đến f thất bại như vậy có thể được dung thứ. Giống như Chang và Maxemchuk, Birman et al. [1991] cũng sử dụng một trang web đang nắm giữ mã thông báo hoạt động như một sequencer. Kỷ niệm có thể được thông qua quá trình trình do đó, ví dụ, nếu chỉ một quá trình gửi multicast đã ra lệnh hoàn toàn quá trình đó có thể hoạt động như sequencer, tiết kiệm thông tin liên lạc. Giao thức của Kaashoek et al. sử dụng dựa trên phần cứng multicast-có sẵn trên một Ethernet, ví dụ-chứ không phải là giao tiếp điểm-điểm đáng tin cậy. Trong các biến thể đơn giản nhất của giao thức của họ, quá trình gửi tin nhắn để được phát đa hướng sequencer, một trong-một. Multicast sequencer thư riêng của mình, cũng như nhận dạng và chuỗi số. Điều này có lợi thế mà các thành viên khác của các
đang được dịch, vui lòng đợi..
