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