Open In App

Schiper Eggli Sandoz Protocol

Schiper Eggli Sandoz Protocol is used to maintain the casual ordering of the messages i.e. the message which is sent first should be received first. This is the contrast to maintaining a vector clock based on the number of messages sent to each type of process, this protocol’s vector clock can be increased at any rate it chooses and is unrelated to the number of messages that are currently outstanding.

Transmitting a Message:

Received a Message:

1. Any type of message cannot be delivered if it is preceded by a message which is mentioned in the list of timestamps.



2. Alternately, there are following actions may be taken to convey a message:

 

Here,  C3:1 – C3:2, and so they should be received at each receiver in that order. C1:1 – C3:1, and so they should be received at each receiver in that order. It is acceptable to receive C3:1 and C2:1 in different orders at various receivers because they are concurrent.



Advantages:

Some main advantages of using this protocol in the design of distributed systems are as  follows:

  1. The goal is to ensure that the same causal relationship between “message send” and “message receive” events corresponds. (Or, all messages are handled in the chronological order in which they were generated.)
  2. Upon sending messages, each process raises its vector clock by one.
  3. If a process has received all messages before it, then the message has been delivered to that process.
  4. The happened-before relation of the corresponding sendings cannot be violated by the order in which messages are delivered for any process.
  5. A rise in concurrency logical time, which can be tracked with less infrastructure and expense, could take the place of real-time.

Disadvantages:

Some main Disadvantages of using this protocol in the design of distributed systems are as  follows:

  1. Any process that alters the relationship between what happened before and the corresponding sendings cannot affect the order in which messages are delivered.
  2. A programmer must perform all tasks.
  3. It is slower because the connection setup takes some time.
  4. Cooperative operations are typically needed for data transfer, which can be challenging to accomplish.
  5. Voice or video calls or other real-time applications cannot be made using it.
Article Tags :