Mỗi quá trình cập nhật dấu thời gian vector của mình khi cung cấp bất kỳ thông báo, để duy trì số lượng tin nhắn tiền lệ quan hệ nhân quả. Nó làm điều này bằng cách tăng sự xâm nhập thứ j trong dấu thời gian của mình bằng một. Đây là một tối ưu hóa các hoạt động hợp nhất xuất hiện trong các quy tắc cho việc cập nhật đồng hồ vector tại mục 14.4. Chúng tôi có thể thực hiện việc tối ưu hóa trong quan điểm về điều kiện giao hàng trong các thuật toán của Hình 15.15, đảm bảo rằng chỉ mục thứ j sẽ tăng lên. Chúng tôi vạch ra những bằng chứng về tính đúng đắn của thuật toán này như sau. Giả sử rằng multicast (g, m) o multicast (g, mc). Hãy V và Vc là timestamps vector của m và mc, tương ứng. Nó là đơn giản để chứng minh quy nạp từ các thuật toán c rằng VV?. Đặc biệt, nếu quá trình pk multicast m, sau đó Vk> @ Vc kd> @. Hãy xem xét những gì sẽ xảy ra khi một số quá trình chính xác pi B-cung cấp mc (như trái ngược với Toco-đem nó) mà không có CO-cung cấp đầu tiên m. Bằng các thuật toán, Vi k> @ chỉ có thể tăng khi pi cung cấp một tin nhắn từ pk, khi nó tăng lên 1. Nhưng pi chưa nhận m, và do đó Vi k> @ không thể tăng Vk> @ - 1. Do đó, không thể cho pi CO-cung cấp mc, vì điều này sẽ yêu cầu Vi k> @ Vc kt> @, và vì thế Vi k> @ Vk t> @. Người đọc nên kiểm tra xem nếu chúng ta thay thế đáng tin cậy R-multicast nguyên thủy ở vị trí của B-đa, sau đó chúng ta có được một multicast đó là cả hai đáng tin cậy và quan hệ nhân quả ra lệnh. Hơn nữa, nếu chúng ta kết hợp các giao thức cho nhân quả multicast với sequencer- dựa trên giao thức giao hoàn toàn đặt hàng, sau đó chúng ta có được phân phối thông điệp đó là cả tổng số và quan hệ nhân quả. Sequencer cung cấp các thông điệp theo thứ tự quan hệ nhân quả và multicast các số thứ tự cho các tin nhắn trong thứ tự mà nó nhận được chúng. Các quy trình trong nhóm đích không cung cấp một thông điệp cho đến khi họ đã nhận được một thông báo đơn đặt hàng từ các chuỗi và thông điệp là tiếp theo trong chuỗi phân phối. Kể từ khi sequencer cung cấp các thông điệp để quan hệ nhân quả, và vì tất cả các quá trình khác cung cấp các tin nhắn trong thứ tự như các sequencer, đặt hàng thực sự là cả tổng số và quan hệ nhân quả. Nhóm chồng chéo • Chúng tôi đã xem xét các nhóm chỉ không chồng chéo trong các định nghĩa trước và các thuật toán cho FIFO, tổng số và quan hệ nhân quả ngữ nghĩa đặt hàng. Điều này giúp đơn giản hoá vấn đề, nhưng nó không phải là thỏa đáng, vì trong quá trình nói chung cần phải là thành viên của nhiều nhóm trùng nhau. Ví dụ, một quá trình có thể quan tâm đến các sự kiện từ nhiều nguồn khác nhau và do đó tham gia một bộ tương ứng của các nhóm sự kiện phân phối. Chúng tôi có thể mở rộng định nghĩa thứ tự các đơn đặt hàng toàn cầu [Hadzilacos và Toueg 1994], trong đó chúng ta phải xem xét rằng nếu thông điệp m là multicast để g, và nếu thông điệp mc là multicast GC, sau đó cả hai thông điệp được gửi đến các thành viên của gg c ?? : FIFO đặt hàng toàn cầu: Nếu một multicast vấn đề quy trình chính xác (g, m) và sau đó multicast (gc, mc), sau đó tất cả các quá trình chính xác trong gg ?? c mang mc sẽ cung cấp m trước khi mc. Quan hệ nhân quả sắp xếp toàn cầu: Nếu multicast (g, m) o multicast (gc, mc), nơi mà o là đã xảy ra, trước khi quan hệ gây ra bởi bất kỳ chuỗi các thông điệp multicast, sau đó bất kỳ quá trình chính xác trong gg ?? c mang mc sẽ cung cấp m trước khi mc.
đang được dịch, vui lòng đợi..