Quan hệ nhân quả thứ tự (CO) Quan hệ nhân quả để có nhiều ứng dụng chẳng hạn như cập nhật dữ liệu sao chép, allo-cating yêu cầu một cách công bằng, và đồng bộ dòng đa phương tiện. Chúng tôi ở đây giải thích việc sử dụng của nhân quả trong việc cập nhật các bản sao của một mục dữ liệu trong hệ thống. Xem xét con số 6.11(a), trong đó cho thấy hai quá trình P1 và P2 rằng vấn đề cập nhật để các bản sao ba R1(d), R2(d), và R3(d) của dữ liệu mục mất tin nhắn m tạo ra một quan hệ nhân quả giữa send(m1) và send(m2). Nếu P2 vấn đề cập nhật của nó nào sau khi P1 phát hành Cập Nhật của nó, sau đó Cập Nhật của P2 nên được nhìn thấy bởi các bản sao sau khi họ nhìn thấy Cập Nhật của P1, để bảo vệ ngữ nghĩa Con số 6,11 Cập Nhật cho đối tượng bản sao được cấp bởi hai quá trình. (a) P1 R1R2R3 P2(b) (c) của ứng dụng. (Trong trường hợp này, CO là hài lòng.) Tuy nhiên, điều này có thể xảy ra tại một số, tất cả, hoặc không có các bản sao. Con số 6.11(b) cho thấy rằng R1 thấy của P2 Cập Nhật đầu tiên, mặc dù R2 và R3 thấy P1 của Cập Nhật đầu tiên. Ở đây, CO là vi phạm. Con số 6.11(c) cho thấy rằng tất cả bản sao xem Cập Nhật đầu tiên của P2. Tuy nhiên, cô vẫn còn là vi phạm. Nếu tin nhắn m không tồn tại như hiển thị, sau đó xử tử Hiển thị trong hình 6.11(b) và (c) có thể đáp ứng CO.Đưa ra một hệ thống với FIFO kênh, quan hệ nhân quả thứ tự phải được thi hành một cách rõ ràng bởi một giao thức. Hai tiêu chí sau đây phải được đáp ứng bởi một causal đặt hàng giao thức:• An toàn trong trật tự để ngăn không cho đơn đặt hàng quan hệ nhân quả bị xâm phạm, một tin nhắn M đến lúc một quá trình có thể cần phải được đệm cho đến khi tất cả các tin nhắn systemwide gửi trong quá khứ quan hệ nhân quả của các sự kiện send(M) để cùng desti-quốc gia đã có đến.Vì vậy, chúng tôi phân biệt giữa sự xuất hiện của một tin nhắn tại một quá trình (khi nó được đặt trong một hệ thống cục bộ đệm) và sự kiện mà thư được trao cho quá trình ứng dụng (khi giao thức xét thấy nó an toàn để làm như vậy mà không vi phạm trật tự quan hệ nhân quả). Sự xuất hiện của một tin nhắn là trong suốt cho trình ứng dụng. Các sự kiện giao hàng tương ứng với các sự kiện nhận được trong thực hiện mô hình.• Liveness A thư mà đến lúc một quá trình cuối cùng phải là deliv-ered cho quá trình.Các thuật toán cả hai chúng tôi sẽ nghiên cứu trong phần này cho phép mỗi sự kiện gửi đến unicast, phát đa hướng, hoặc phát sóng một tin nhắn trong hệ thống. Thuật toán Raynal-Schiper-Toueg [22]Trực giác, nó có vẻ hợp lý rằng mỗi tin nhắn M nên mang theo một bản ghi của tất cả các tin nhắn, hoặc định dạng của họ, gửi nào trước khi M của gửi sự kiện, và gửi đến cùng một đích dest(M). Đăng nhập này sau đó có thể được kiểm tra để đảm bảo cho dù đó là an toàn để đưa ra thông báo. Tất cả các thuật toán nhằm mục đích giảm chi phí đăng nhập này, và không gian và thời gian chi phí của việc duy trì các thông tin đăng nhập tại các quá trình. Thuật toán 6.2 cho một thuật toán kinh điển là đại diện của một số thuật toán mà cố gắng để giảm kích thước của các địa phương space và tin nhắn không gian trên không bằng kỹ thuật khác nhau. Để thực hiện an toàn, các thông điệp piggyback kiểm soát thông tin giúp ứng dụng chung. Tinh chỉnh các khái niệm của phát sóng, có là multicasting trong đó thư được gửi đến một nhóm nhất định, được xác định là một nhóm, các quá trình trong hệ thống. Ở cực khác là unicasting, đó là giao tiếp thông điệp điểm-điểm quen thuộc.Hỗ trợ quảng bá và phát đa hướng có thể được cung cấp bởi ngăn xếp giao thức mạng bằng cách sử dụng các biến thể của cây khung. Đây là một cơ chế hiệu quả để phân phối thông tin. Tuy nhiên, hỗ trợ phần cứng hoặc mạng lớp giao thức hỗ trợ multicast hiệu quả không thể cung cấp các tính năng như sau:• Dành riêng cho ứng dụng biểu ngữ nghĩa trên thứ tự của giao hàng của tin nhắn.• Thích ứng nhóm để tự động thay đổi thành viên.• Gửi multicast để một tập tùy ý của các quá trình từng gửi sự kiện.• Cung cấp các lỗi khoan dung ngữ nghĩa.Nếu một thuật toán phát đa hướng yêu cầu người gửi phải là một phần của nhóm đích, các thuật toán phát đa hướng được gọi là một thuật toán đóng nhóm. Nếu người gửi phát đa hướng có thể bên ngoài nhóm đích, các thuật toán phát đa hướng được gọi là một thuật toán nhóm mở. Mở nhóm thuật toán là thuật toán tổng quát hơn, và do đó khó khăn hơn để thiết kế và đắt tiền hơn để thực hiện, hơn đóng nhóm. Đóng nhóm thuật toán không thể được sử dụng trong một số tình huống như trong một hệ thống lớn (ví dụ, tại trên mạng hoặc Internet hệ thống ngân hàng) nơi khách hàng quá trình là ngắn ngủi và số lượng lớn. Nó cũng là cần lưu ý rằng, đối với thuật toán phát đa hướng, số lượng các nhóm có thể có khả năng mũ, ví dụ, O(2n), và thuật toán phải rõ ràng theo dõi các nhóm có thể phải chịu chi phí cao này.Phần còn lại của chương này, chúng tôi sẽ xem xét cơ chế phát đa hướng và phát sóng theo mức độ khác nhau của strictness của các giả định trên thứ tự của giao hàng của tin nhắn. Hai phổ biến đơn đặt hàng cho việc phân phối các tin nhắn đã được đề xuất trong bối cảnh của truyền thông Nhóm: quan hệ nhân quả và tất cả. Phần lớn các tác phẩm hội thảo về truyền thông nhóm đã được khởi xướng bởi dự án ISIS [4,5]. Quan hệ nhân quả thứ tự (CO) Quan hệ nhân quả để có nhiều ứng dụng chẳng hạn như cập nhật dữ liệu sao chép, allo-cating yêu cầu một cách công bằng, và đồng bộ dòng đa phương tiện. Chúng tôi ở đây giải thích việc sử dụng của nhân quả trong việc cập nhật các bản sao của một mục dữ liệu trong hệ thống. Xem xét con số 6.11(a), trong đó cho thấy hai quá trình P1 và P2 rằng vấn đề cập nhật để các bản sao ba R1(d), R2(d), và R3(d) của dữ liệu mục mất tin nhắn m tạo ra một quan hệ nhân quả giữa send(m1) và send(m2). Nếu P2 vấn đề cập nhật của nó nào sau khi P1 phát hành Cập Nhật của nó, sau đó Cập Nhật của P2 nên được nhìn thấy bởi các bản sao sau khi họ nhìn thấy Cập Nhật của P1, để bảo vệ ngữ nghĩa Một thuật toán tối ưu CO lưu trữ trong các bản ghi thông báo địa phương và lan truyền trên thư, thông tin của các hình thức "d là một điểm đến m" về một tin nhắn M gửi trong quá khứ quan hệ nhân quả, như là dài như và chỉ miễn là:(Hạn chế tuyên truyền tôi) nó không biết rằng M thông báo được gửi đến d, và(Tuyên truyền khó khăn II) nó không biết rằng một tin nhắn đã được gửi đến d trong tương lai quan hệ nhân quả của Send(M), và do đó nó không được đảm bảo bằng cách sử dụng một lý luận dựa trên transitivity tin nhắn M sẽ được gửi đến d trong CO.Các khó khăn tuyên truyền cũng ngụ ý rằng nếu một trong hai (I) hoặc (II) là sai, thông tin "d ∈ M.Dests" không phải được lưu trữ hoặc tuyên truyền, ngay cả khi đếnHãy nhớ rằng (I) hoặc (II) đã được giả mạo. Nói một cách khác nhau, các thông tin "d ∈ Mi,a.Dests" phải có sẵn trong tương lai quan hệ nhân quả của sự kiện ei, một, nhưng:• không trong tương lai quan hệ nhân quả của Deliverd(Mi,a), và• không trong tương lai quan hệ nhân quả của ek, c, nơi d ∈ Mk,c.Dests và có là không có kháctin nhắn được gửi nào giữa Mi, một và Mk, c đến cùng một đích d.Trong tương lai quan hệ nhân quả của Deliverd(Mi,a), và Send(Mk,c), các thông tin là dự phòng; ở những nơi khác, nó là cần thiết. Ngoài ra, để duy trì điều, không có thông tin khác cần được lưu giữ, bao gồm thông tin về những gì các thư đã được gửi. Như thông tin về những thông điệp có được chuyển giao (hoặc được đảm bảo sẽ được chuyển giao mà không vi phạm trật tự quan hệ nhân quả) là cần thiết cho tình trạng giao hàng, thông tin này suy ra bằng cách sử dụng một thiết lập hoạt động dựa trên logic.Các khó khăn tuyên truyền được minh họa với sự giúp đỡ của con số 6,12. Tin nhắn M được gửi bởi quá trình tôi tại sự kiện e để quá trình d. Thông tin"d ∈ M.Dests":• phải tồn tại ở e1 và e2 vì (I) và (II) là có thật;• không phải tồn tại e3 vì (I) là sai;• không phải tồn tại ở e4, e5, e6 vì (II) là sai;• không phải tồn tại ở e7, e8 vì (I) và (II) là sai.Thông tin về tin nhắn (i) không được biết đến để được giao hàng và (ii) không được bảo đảm sẽ được chuyển giao trong CO, một cách rõ ràng được theo dõi bởi các thuật toán sử dụng (nguồn, dấu thời gian, điểm đến) thông tin. Các thông tin phải được xóa ngay sau khi một trong hai (i) hoặc (ii) trở thành sai. Vấn đề quan trọng trong việc thiết kế một thuật toán CO tối ưu là để xác định các sự kiện tại đó (i) hoặc (ii) trở nên sai. Thông tin về tin nhắn đã gửi và thư bảo đảm sẽ được chuyển giao trong CO ngầm theo dõi mà không cần lưu trữ hoặc tuyên truyền nó, và có nguồn gốc từ thông tin rõ ràng. Thông tin tiềm ẩn như vậy được sử dụng để xác định khi (i) hoặc (ii) trở thành sai để rõ ràng thông tin được lưu trữ hoặc mang trong thư. 6,12 hình minh họa cần và đủCác điều kiện cho quan hệ nhân quả dĐặt hàng [21].tôiTin nhắn gửi đến dCác biên giới của tương lai quan hệ nhân quả của sự kiện tương ứngSự kiện tại tin nhắn đó được gửi đến d, và đó là không có trường hợp như vậy trên bất kỳ đường dẫn quan hệ nhân quả giữa sự kiện e và sự kiện nàyThông tin "d là một đích. m"phải tồn tại cho đúng đắnThông tin "d là một đích. m"phải tồn tại cho điềuCác thuật toán được đưa ra trong thuật toán 6.3. Thủ tục SND là thực hiện atomi-cally. Thủ tục RCV được thực hiện atomically ngoại trừ một gián đoạn thể trong dòng 2a nơi một phòng không chặn chờ đợi là cần thiết để đáp ứng phân phối Condi - tion. Lưu ý rằng mã giả có thể được tái cấu trúc để hoàn thành việc xử lý của mỗi invocation SND và RCV thủ tục trong một vượt qua của các cấu trúc dữ liệu, bằng cách luôn luôn duy trì cấu trúc dữ liệu được sắp xếp hàng-thiếu tá và sau đó cột-thiếu tá.1. rõ ràng theo dõi theo dõi (nguồn, dấu thời gian, điểm đến) informa-tion cho tin nhắn (i) không được biết đến để được giao hàng và (ii) không được bảo đảm sẽ được chuyển giao trong CO, được thực hiện một cách rõ ràng bằng cách sử dụng lĩnh vực l.Dests mục trong Nhật ký địa phương tại các nút và o.Dests lĩnh vực mục trong thư. Bộ li,a.Dests và oi,a.Dests chứa các thông tin rõ ràng của các điểm đến để mà Mi, mộtkhông được bảo đảm sẽ được chuyển giao trong CO và không được tìm thấy sẽ được chuyển giao. Thông tin về "d ∈ Mi,a.Dests" tuyên truyền tối đa các sớm nhấtCác sự kiện trên tất cả các đường dẫn quan hệ nhân quả từ (tôi, một) lúc mà nó được biết đến đó Mi, một sẽ được gửi đến d hoặc được đảm bảo sẽ được chuyển giao cho d trong CO.2. tiềm ẩn theo dõi theo dõi các thông điệp là (i) đã deliv-ered hoặc (ii) guarante
đang được dịch, vui lòng đợi..
