và ra lệnh tất cả được đảm bảo. Thuật toán này có độ trễ cao hơn sequencer dựa trên thuật toán phát đa hướng: ba tin nhắn được gửi serially giữa người gửi và nhóm trước khi thư có thể được chuyển giao. Lưu ý rằng tổng số thứ tự lựa chọn thuật toán này là không còn được đảm bảo là nào hoặc ra lệnh cho FIFO: bất kỳ hai thư được gửi trong một đơn đặt hàng tùy ý về cơ bản tất cả, chịu ảnh hưởng bởi sự chậm trễ giao tiếp. Để các phương pháp tiếp cận để triển khai thực hiện tất cả đặt hàng, hãy xem Melliar-Smith và ctv [1990], Garcia-Molina và Spauster [1991] và Hadzilacos và Toueg [1994]. Chúng tôi thực hiện quan hệ nhân quả • đặt hàng tiếp theo cho một thuật toán cho không chồng chéo đóng nhóm dựa trên đó phát triển bởi Birman et al. [1991], Hiển thị trong Con số 15,15 Causal đặt hàng bằng cách sử dụng véc tơ timestampsCác thuật toán cho nhóm thành viên () trên khởi tạo: = 0 (); CO-phát đa hướng tin nhắn m để nhóm g: =; B-multicast(g, <, m>); Ngày B-deliver(<, m>) từ (), với g = group(m) place <, m > trong hàng đợi trở lại giữ; chờ đợi cho đến khi và (); Đồng cung cấp m; sau khi gỡ bỏ nó từ hàng đợi giữ lại: =; Pi tôi 12} N = Vi g j > @ j 12} N = Vi g tôi > @ Vi g tôi > @+ 1 Vi g Vj g pj j tôi z Vj g Vj g j > @ Vi g j > @+ 1 = Vj g k > @ Vi g k d > @ kj z Vi g j > @ Vi g j > @+ 1Con số 15,15, trong đó các hoạt động phát đa hướng ra lệnh nào là đồng multicast và đồng phân phối. Các thuật toán mất tài khoản của mối quan hệ đã xảy ra trước chỉ khi nó được thành lập bởi phát đa hướng thư. Nếu các quá trình gửi một tin nhắn với nhau, sau đó chúng sẽ không được chiếm. Mỗi quá trình pi (i 12} N =) duy trì riêng của mình dấu thời gian vector (xem phần 14.4). Các mục trong dấu thời gian đếm số lượng các tin nhắn phát đa hướng từ mỗi quá trình rằng đã xảy ra trước tiếp theo tin nhắn để được phát đa hướng. Để CO-multicast thư để bảng g, quá trình thêm 1 đến mục nhập của nó trong dấu thời gian và B-multicast thư cùng với dấu thời gian của nó để g. Khi một quá trình pi B-cung cấp một thông điệp từ pj, nó phải đặt nó trong hàng đợi giữ trở lại trước khi nó kết hợp có thể cung cấp nó-đó là, cho đến khi nó được đảm bảo rằng nó đã gửi bất kỳ thông điệp nào nào trước đó. Để thiết lập này, pi waits cho đến khi (a) nó đã gửi bất kỳ thư trước đó được gửi bởi pj, và (b) nó đã gửi bất kỳ thư nào đó pj có phát lúc đó nó phát đa hướng thư. Cả hai của những điều kiện có thể được phát hiện bằng cách kiểm tra vectơ timestamps, như minh hoạ trong hình 15,15. Lưu ý rằng một quá trình có thể ngay lập tức đồng cung cấp cho chính nó bất kỳ thông báo rằng nó CO-multicast, mặc dù điều này không được mô tả trong hình 15,15.
đang được dịch, vui lòng đợi..
