Протокол Schiper Eggli Sandoz
Протокол Schiper Eggli Sandoz используется для поддержания причинно-следственной упорядоченности сообщений, т. е. сообщение, отправленное первым, должно быть получено первым. Это контрастирует с поддержанием векторных часов на основе количества сообщений, отправленных каждому типу процесса, векторные часы этого протокола могут увеличиваться с любой скоростью, которую он выбирает, и не связаны с количеством сообщений, которые в настоящее время находятся в обработке.
Передача сообщения:
- Перед отправкой любого типа сообщения включается список всех временных меток сообщений, отправленных другим процессам.
- Временная метка каждого типа сообщения должна быть сохранена в определенном месте.
Получил сообщение:
1. Сообщение любого типа не может быть доставлено, если ему предшествует сообщение, указанное в списке меток времени.
2. В качестве альтернативы для передачи сообщения могут быть предприняты следующие действия:
- Там мы включаем в сообщение следующий список временных меток:
- Добавьте в наш список процессов знания о сообщениях, предназначенных для всех остальных процессов. если мы еще не знали о каких-либо других сообщениях, предназначенных для одного процесса. Если мы ставим метку времени в новом списке, который выше, чем ранее сохраненный, это соответствующим образом корректирует нашу метку времени.
- Нам нужно обновить логические часы в вашем регионе.
- Теперь мы проверяем, все ли локально буферизованные сообщения могут быть доставлены или нет.
Здесь C3:1 – C3:2, поэтому они должны быть получены каждым приемником именно в таком порядке. C1:1 – C3:1, поэтому они должны быть получены каждым приемником именно в таком порядке. Допустимо получать C3:1 и C2:1 в разном порядке на разных получателях, потому что они параллельны.
Преимущества:
Некоторые основные преимущества использования этого протокола при проектировании распределенных систем заключаются в следующем:
- Цель состоит в том, чтобы обеспечить соответствие одной и той же причинно-следственной связи между событиями «отправка сообщения» и «получение сообщения». (Или все сообщения обрабатываются в хронологическом порядке, в котором они были созданы.)
- При отправке сообщений каждый процесс увеличивает свои векторные часы на единицу.
- Если процесс получил все сообщения до него, то сообщение было доставлено этому процессу.
- Отношение «произошло до» соответствующих отправлений не может быть нарушено порядком, в котором сообщения доставляются для любого процесса.
- Увеличение логического времени параллелизма, которое можно отслеживать с меньшими затратами на инфраструктуру и расходы, может занять место реального времени.
Недостатки:
Вот некоторые основные недостатки использования этого протокола при проектировании распределенных систем:
- Любой процесс, изменяющий отношение между тем, что произошло раньше, и соответствующими отправками, не может повлиять на порядок доставки сообщений.
- Программист должен выполнять все задачи.
- Это медленнее, потому что установка соединения занимает некоторое время.
- Для передачи данных обычно требуются совместные операции, что может быть сложно выполнить.
- Голосовые или видеозвонки или другие приложения в реальном времени не могут быть сделаны с его помощью.