Causal order (CO) Causal order has many applications such as updating  dịch - Causal order (CO) Causal order has many applications such as updating  Việt làm thế nào để nói

Causal order (CO) Causal order has

Causal order (CO)



Causal order has many applications such as updating replicated data, allo- cating requests in a fair manner, and synchronizing multimedia streams. We explain here the use of causal order in updating replicas of a data item in the system. Consider Figure 6.11(a), which shows two processes P1 and P2 that issue updates to the three replicas R1(d), R2(d), and R3(d) of data item d. Message m creates a causality between send(m1) and send(m2). If P2 issues its update causally after P1 issued its update, then P2’s update should be seen by the replicas after they see P1’s update, in order to preserve the semantics




Figure 6.11 Updates to object replicas are issued by two processes.












(a)

P1 R1
R2
R3 P2
(b)












(c)


of the application. (In this case, CO is satisfied.) However, this may happen at some, all, or none of the replicas. Figure 6.11(b) shows that R1 sees P2’s update first, while R2 and R3 see P1’s update first. Here, CO is violated. Figure 6.11(c) shows that all replicas see P2’s update first. However, CO is still violated. If message m did not exist as shown, then the executions shown in Figure 6.11(b) and (c) would satisfy CO.
Given a system with FIFO channels, causal order needs to be explicitly enforced by a protocol. The following two criteria must be met by a causal ordering protocol:
• Safety In order to prevent causal order from being violated, a message M that arrives at a process may need to be buffered until all systemwide messages sent in the causal past of the send(M) event to that same desti- nation have already arrived.
Therefore, we distinguish between the arrival of a message at a process (at which time it is placed in a local system buffer) and the event at which the message is given to the application process (when the protocol deems it safe to do so without violating causal order). The arrival of a message is transparent to the application process. The delivery event corresponds to the receive event in the execution model.
• Liveness A message that arrives at a process must eventually be deliv-
ered to the process.
Both the algorithms we will study in this section allow each send event to unicast, multicast, or broadcast a message in the system.


The Raynal–Schiper–Toueg algorithm [22]
Intuitively, it seems logical that each message M should carry a log of all other messages, or their identifiers, sent causally before M’s send event, and sent to the same destination dest(M). This log can then be examined to ensure whether it is safe to deliver a message. All algorithms aim to reduce this log overhead, and the space and time overhead of maintaining the log information at the processes. Algorithm 6.2 gives a canonical algorithm that is representative of several algorithms that try to reduce the size of the local space and message space overhead by various techniques. In order to implement safety, the messages piggyback the control information that helps



joint application. Refining the notion of broadcasting, there is multicasting wherein a message is sent to a certain subset, identified as a group, of the processes in the system. At the other extreme is unicasting, which is the familiar point-to-point message communication.
Broadcast and multicast support can be provided by the network protocol stack using variants of the spanning tree. This is an efficient mechanism for distributing information. However, the hardware-assisted or network layer protocol assisted multicast cannot efficiently provide features such as the following:
• Application-specific ordering semantics on the order of delivery of messages.
• Adapting groups to dynamically changing membership.
• Sending multicasts to an arbitrary set of processes at each send event.
• Providing various fault-tolerance semantics.
If a multicast algorithm requires the sender to be a part of the destination group, the multicast algorithm is said to be a closed group algorithm. If the sender of the multicast can be outside the destination group, the multicast algorithm is said to be an open group algorithm. Open group algorithms are more general, and therefore more difficult to design and more expensive to implement, than closed group algorithms. Closed group algorithms cannot be used in several scenarios such as in a large system (e.g., on-line reservation or Internet banking systems) where client processes are short-lived and in large numbers. It is also worth noting that, for multicast algorithms, the number of groups may be potentially exponential, i.e., O(2n), and algorithms that have to explicitly track the groups can incur this high overhead.
In the remainder of this chapter we will examine multicast and broadcast mechanisms under varying degrees of strictness of assumptions on the order of delivery of messages. Two popular orders for the delivery of messages were proposed in the context of group communication: causal order and total order. Much of the seminal work on group communication was initiated by the ISIS project [4,5].


Causal order (CO)



Causal order has many applications such as updating replicated data, allo- cating requests in a fair manner, and synchronizing multimedia streams. We explain here the use of causal order in updating replicas of a data item in the system. Consider Figure 6.11(a), which shows two processes P1 and P2 that issue updates to the three replicas R1(d), R2(d), and R3(d) of data item d. Message m creates a causality between send(m1) and send(m2). If P2 issues its update causally after P1 issued its update, then P2’s update should be seen by the replicas after they see P1’s update, in order to preserve the semantics



An optimal CO algorithm stores in local message logs and propagates on messages, information of the form “d is a destination of M” about a message M sent in the causal past, as long as and only as long as:
(Propagation Constraint I) it is not known that the message M is delivered to d, and
(Propagation Constraint II) it is not known that a message has been sent to d in the causal future of Send(M), and hence it is not guaranteed using a reasoning based on transitivity that the message M will be delivered to d in CO.

The Propagation Constraints also imply that if either (I) or (II) is false, the information “d ∈ M.Dests” must not be stored or propagated, even to
remember that (I) or (II) has been falsified. Stated differently, the information “d ∈ Mi,a.Dests” must be available in the causal future of event ei,a, but:
• not in the causal future of Deliverd(Mi,a), and
• not in the causal future of ek,c, where d ∈ Mk,c.Dests and there is no other
message sent causally between Mi,a and Mk,c to the same destination d.
In the causal future of Deliverd(Mi,a), and Send(Mk,c), the information is redundant; elsewhere, it is necessary. Additionally, to maintain optimality, no other information should be stored, including information about what messages have been delivered. As information about what messages have been delivered (or are guaranteed to be delivered without violating causal order) is necessary for the Delivery Condition, this information is inferred using a set-operation based logic.
The Propagation Constraints are illustrated with the help of Figure 6.12. The message M is sent by process i at event e to process d. The information
“d ∈ M.Dests”:
• must exist at e1 and e2 because (I) and (II) are true;
• must not exist at e3 because (I) is false;
• must not exist at e4, e5, e6 because (II) is false;
• must not exist at e7, e8 because (I) and (II) are false.
Information about messages (i) not known to be delivered and (ii) not guaranteed to be delivered in CO, is explicitly tracked by the algorithm using (source, timestamp, destination) information. The information must be deleted as soon as either (i) or (ii) becomes false. The key problem in designing an optimal CO algorithm is to identify the events at which (i) or (ii) becomes false. Information about messages already delivered and messages guaranteed to be delivered in CO is implicitly tracked without storing or propagating it, and is derived from the explicit information. Such implicit information is used for determining when (i) or (ii) becomes false for the explicit information being stored or carried in messages.




Figure 6.12 Illustrating the necessary and sufficient
conditions for causal d
ordering [21].

i





Message sent to d
Border of causal future of corresponding event


Event at which message is sent to d, and there is no such event on any causal path between event e and this event
Info "d is a dest. of M" must exist for correctness

Info "d is a dest. of M" must not exist for optimality


The algorithm is given in Algorithm 6.3. Procedure SND is executed atomi- cally. Procedure RCV is executed atomically except for a possible interruption in line 2a where a non-blocking wait is required to meet the Delivery Condi- tion. Note that the pseudo-code can be restructured to complete the processing of each invocation of SND and RCV procedures in a single pass of the data structures, by always maintaining the data structures sorted row–major and then column–major.

1. Explicit tracking Tracking of (source, timestamp, destination) informa- tion for messages (i) not known to be delivered and (ii) not guaranteed to be delivered in CO, is done explicitly using the l.Dests field of entries in local logs at nodes and o.Dests field of entries in messages. Sets li,a.Dests and oi,a.Dests contain explicit information of destinations to which Mi,a
is not guaranteed to be delivered in CO and is not known to be delivered. The information about “d ∈ Mi,a.Dests” is propagated up to the earliest
events on all causal paths from (i, a) at which it is known that Mi,a is delivered to d or is guaranteed to be delivered to d in CO.
2. Implicit tracking Tracking of messages that are either (i) already deliv- ered, or (ii) guarante
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
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..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Quan hệ nhân quả order (CO) tự nhân quả có nhiều ứng dụng như cập nhật dữ liệu nhân rộng, allo- yêu cầu Cating một cách công bằng, và đồng bộ hóa các luồng đa phương tiện. Chúng tôi giải thích ở đây việc sử dụng các lệnh hệ 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. Hãy xem hình 6.11 (a), trong đó cho thấy hai tiến trình P1 và P2 rằng bản cập nhật phát hành đến khi ba bản sao R1 (d), R2 (d), và R3 (d) của mục dữ liệu d. Tin nhắn m tạo ra một quan hệ nhân quả giữa send (m1) và gửi (m2). Nếu P2 vấn đề cập nhật của nhân quả sau khi P1 ban hành bản cập nhật của nó, sau đó cập nhật P2 nên được nhìn thấy bởi các bản sao sau khi họ thấy bản cập nhật P1, để bảo toàn ngữ nghĩa Hình 6.11 cập nhật để phản đối bản sao được cấp bởi hai quá trình. (a) P1 R1 R2 R3 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 ở một số người, tất cả, hoặc không có trong các bản sao. Hình 6.11 (b) cho thấy R1 thấy update P2 đầu tiên, trong khi cập nhật R2 và R3 see P1 đầu tiên. Ở đây, CO là vi phạm. Hình 6.11 (c) cho thấy rằng tất cả các bản sao thấy update P2 đầu tiên. Tuy nhiên, CO vẫn vi phạm. Nếu thông điệp m không tồn tại như hiển thị, sau đó hành quyết thể hiện trong hình 6.11 (b) và (c) sẽ đáp ứng CO. Với một hệ thống với kênh FIFO, trật tự nhân quả cần phải được thi hành một cách rõ ràng bằng một giao thức. Hai tiêu chí sau đây phải được đáp ứng bởi một giao thức nhân quả đặt hàng: • An toàn Để ngăn chặn trật tự nhân quả không bị vi phạm, một M tin rằng tới một quá trình có thể cần phải được đệm cho đến khi tất cả các thư gửi toàn hệ thống trong quá khứ quan hệ nhân quả của các gửi (M) sự kiện với cùng một quốc gia desti- đã đến. Vì vậy, chúng ta phân biệt giữa sự xuất hiện của một thông báo ở một quá trình (tại thời điểm đó nó được đặt trong một hệ thống đệm địa phương) và các sự kiện mà tại đó các thông điệp được đưa ra để quá trình ứng dụng (khi giao thức xét thấy an toàn để làm như vậy mà không vi phạm trật tự nhân quả). Sự xuất hiện của một thông báo là trong suốt đối với các quá trình ứng dụng. 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 Một tin nhắn mà tới một quá trình cuối cùng phải deliv- đến khía cạnh để quá trình. Cả hai thuật toán, chúng tôi sẽ nghiên cứu trong phần này cho phép mỗi sự kiện để gửi unicast, multicast, hoặc phát sóng một tin nhắn trong hệ thống. Các thuật toán RAYNAL-Schiper-Toueg [22] Bằng 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 khác, hoặc định danh của họ, gửi nhân quả trước khi gửi sự kiện M, và gửi đến các đích đến cùng (M). Nhật ký này sau đó có thể được kiểm tra để đảm bảo cho dù nó là an toàn để cung cấp một thông điệp. Tất cả các thuật toán nhằm mục đích giảm chi phí này ghi cũng như không gian và thời gian cần thiết của việc duy trì các thông tin đăng nhập vào những quá trình. Algorithm 6.2 đưa ra 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 để làm giảm kích thước của không gian và không gian thông địa phương trên không bằng các kỹ thuật khác nhau. Để thực hiện an toàn, các thông điệp cõng các thông tin điều khiển để ứng dụng doanh. Tinh chỉnh các khái niệm về truyền thông, có được multicasting trong đó một thông điệp được gửi đến một tập hợp nhất định, được xác định là một nhóm, các quá trình trong hệ thống. Ở một thái cực khác là unicasting, đó là thông điệp truyền thông quen thuộc point-to-point. Broadcast và hỗ trợ multicast có thể được cung cấp bởi các ngăn xếp giao thức mạng sử dụng các biến thể của cây bao trùm. Đây là một cơ chế hiệu quả để phân phối thông tin. Tuy nhiên, các multicast giao thức lớp phần cứng hỗ trợ hoặc mạng hỗ trợ có thể không có hiệu quả cung cấp các tính năng như sau: • ngữ nghĩa đặt ứng dụng-cụ thể về trình tự giao thông. • Thích ứng với các nhóm để tự động thay đổi thành viên. • Gửi multicast đến một thiết lập tùy ý về quy trình từng gửi sự kiện. • Cung cấp ngữ nghĩa lỗi khoan dung khác nhau. Nếu một thuật toán đa yêu cầu của người gửi là một phần của nhóm đích, các thuật toán multicast được cho là một thuật toán nhóm khép kín. Nếu người gửi multicast có thể nằm ngoài nhóm đích, các thuật toán multicast được cho là một thuật toán nhóm mở. Thuật toán nhóm mở là tổng quát hơn, và do đó khó khăn hơn để thiết kế và tốn kém hơn để thực hiện, hơn thuật toán nhóm khép kín. Thuật toán nhóm khép kín không thể được sử dụng trong một số kịch bản như trong một hệ thống lớn (ví dụ như, on-line hệ thống đặt phòng, ngân hàng Internet) nơi mà quá trình khách hàng là ngắn ngủi và với số lượng lớn. Nó cũng đáng chú ý là, đối với các thuật toán multicast, số lượng các nhóm có thể có khả năng theo cấp số nhân, nghĩa là O (2n), và các thuật toán mà phải theo dõi một cách rõ ràng các nhóm có thể phải chịu phí cao này. Trong phần còn lại của chương này chúng ta sẽ kiểm tra các cơ chế multicast và phát sóng thuộc mức độ khác nhau của sự nghiêm khắc của các giả định về trình tự giao thông. Hai lệnh phổ biến cho việc phân phối các tin nhắn đã được đề xuất trong bối cảnh truyền thông nhóm: Để nhân quả và tổng số thứ tự. 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 các dự án ISIS [4,5]. Để nhân quả (CO) tự nhân quả có nhiều ứng dụng như cập nhật dữ liệu nhân rộng, allo- yêu cầu Cating một cách công bằng, và đồng bộ hóa các luồng đa phương tiện. Chúng tôi giải thích ở đây việc sử dụng các lệnh hệ 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. Hãy xem hình 6.11 (a), trong đó cho thấy hai tiến trình P1 và P2 rằng bản cập nhật phát hành đến khi ba bản sao R1 (d), R2 (d), và R3 (d) của mục dữ liệu d. Tin nhắn m tạo ra một quan hệ nhân quả giữa send (m1) và gửi (m2). Nếu P2 vấn đề cập nhật của nhân quả sau khi P1 ban hành bản cập nhật của nó, sau đó cập nhật P2 nên được nhìn thấy bởi các bản sao sau khi họ thấy bản cập nhật P1, để bảo toàn ngữ nghĩa An tối ưu các cửa hàng giải thuật CO trong nhật ký tin địa phương và tuyên truyền về các thông điệp, thông tin của hình thành "d là điểm đến của M" về tin nhắn M gửi trong thời gian qua quan hệ nhân quả, miễn là và chỉ khi: (Tuyên truyền Constraint I) nó không được biết rằng thông điệp M là giao cho d và (Tuyên truyền Constraint II) nó không được biết đến là một thông điệp đã được gửi đến d trong tương lai quan hệ nhân quả của Gửi (M), và do đó nó không được đảm bảo bằng một lý luận dựa trên transitivity rằng thông điệp M sẽ được chuyển giao cho d trong CO. Các Tuyên truyền Các ràng buộc cũng ngụ ý rằng nếu một trong hai (I) hoặc (II) là sai, những thông tin "d ∈ M.Dests" phải không được lưu trữ hoặc truyền, thậm chí để nhớ rằng (I) hoặc (II) đã bị làm giả. Nói cách khác, những thông tin "d ∈ Mi, a.Dests" phải có sẵn trong tương lai quan hệ nhân quả của ei sự kiện, một, nhưng: • không phải trong tương lai quan hệ nhân quả của deliverd (Mi, a), và • không phải trong tương lai quan hệ nhân quả của ek, c, d ∈ nơi Mk, c.Dests và không có khác nhắn gửi nhân quả giữa Mi, một và Mk, c để cùng một điểm đến d. Trong tương lai quan hệ nhân quả của deliverd (Mi, a), và Send ( Mk, c), các thông tin dư thừa; ở những nơi khác, nó là cần thiết. Ngoài ra, để duy trì tối ưu, không có thông tin khác cần được lưu giữ, bao gồm cả thông tin về những thông điệp đã được giao. Khi thông tin về những thông điệp đã được giao (hoặc được đảm bảo để được cung cấp mà không vi phạm trật tự nhân quả) là cần thiết cho các Điều kiện giao hàng, thông tin này được suy ra bằng cách sử dụng một logic set-hoạt động dựa. Các ràng buộc tuyên truyền được minh họa với sự giúp đỡ của Hình 6.12 . Các tin M được gửi bởi quá trình tôi tại sự kiện điện tử để xử lý d. Các thông tin "d ∈ M.Dests": • phải tồn tại e1 và e2 vì (I) và (II) là đúng sự thật; • không phải tồn tại vì e3 (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ề các tin nhắn (i) không biết sẽ được chuyển giao và (ii) không được bảo đảm sẽ được giao trong CO, được theo dõi một cách rõ ràng bởi các thuật toán sử dụng (nguồn, dấu thời gian, địa điểm) 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. Các vấn đề quan trọng trong việc thiết kế một thuật toán tối ưu CO là xác định các sự kiện mà tại đó (i) hoặc (ii) trở thành sai. Thông tin về các tin nhắn đã được chuyển giao và các tin nhắn được bảo đảm sẽ được giao trong CO ngầm theo dõi mà không cần lưu trữ hoặc truyền bá nó, và bắt nguồn từ những thông tin rõ ràng. Thông tin ẩn như vậy được sử dụng để xác định khi (i) hoặc (ii) trở thành sai cho các thông tin rõ ràng được lưu trữ hoặc mang trong tin nhắn. Hình 6.12 Minh họa cho cần và đủ điều kiện cho nhân quả d đặt hàng [21]. i tin nhắn gửi đến d Border về tương lai quan hệ nhân quả của sự kiện tương ứng với sự kiện mà tại đó thông điệp được gửi đến d, và không có sự kiện như trên bất kỳ con đường quan hệ nhân quả giữa các sự kiện điện tử và sự kiện này Info "d là một dest. M" phải tồn tại cho đúng đắn Info "d là một dest. M "không phải tồn tại để tối ưu Các thuật toán được đưa ra trong Algorithm 6.3. Thủ tục SND được thực thi atomi- biệt. Thủ tục RCV được thực thi nguyên tử ngoại trừ một sự gián đoạn có thể có trong dòng 2a nơi chờ đợi không chặn là cần thiết để đáp ứng các điều kiện giao hàng tion. Lưu ý rằng các pseudo-code có thể được cơ cấu lại để hoàn thành việc xử lý của mỗi lời gọi thủ tục SND và RCV trong một pass duy nhất của cấu trúc dữ liệu, bằng cách luôn duy trì các cấu trúc dữ liệu được sắp xếp theo hàng lớn và sau đó cột lớn. 1. Tracking theo dõi rõ ràng của (nguồn, dấu thời gian, địa điểm) informa- tion cho các tin nhắn (i) không biết sẽ được chuyển giao và (ii) không được bảo đảm sẽ được giao trong CO, được thực hiện xong việc một cách rõ ràng bằng cách sử dụng các lĩnh vực l.Dests các mục trong bản ghi địa phương tại các nút và o.Dests lĩnh vực mục trong tin nhắn. Bộ li, a.Dests và oi, a.Dests chứa thông tin rõ ràng về địa điểm đến mà Mi, một không được bảo đảm sẽ được giao trong CO và không biết sẽ được chuyển giao. Các thông tin về "d ∈ Mi, a.Dests" được lan truyền đến sớm nhất các sự kiện trên tất cả các đường dẫn từ nhân quả (i, a) mà tại đó nó được biết rằng Mi, một là giao cho d hoặc là đảm bảo được giao cho d trong CO. 2. Theo dõi ngầm theo dõi các tin nhắn có hoặc là (i) đến khía cạnh đã deliv-, hoặc (ii) guarante
























































































































đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: