Векторные часы разных реализаций
Хорошо известно, что векторные часы обнаруживают причинные зависимости между событиями, но существуют разные методы реализации. Каковы различия (преимущества / недостатки) между:
- тиканье только при отправке (до).
- тиканье только при отправке (после).
- тикают при получении и тикают перед отправкой
- тикают при получении и тикают после отправки
1 ответ
Предполагается поставить галочку прямо перед отправкой, а также поставить галочку прямо перед получением. Слово прямо перед здесь означает, что событие, представленное как отправка/получение, будет иметь метку времени векторных часов сразу после того, как векторные часы только что были обновлены тиком.
Причина в том, что есть 2 процесса: процесс-отправитель и процесс-получатель.
Он должен отметить событие отправки, чтобы процесс-отправитель знал, что событие отправки только что произошло. Соответственно, ему также необходимо отметить событие получения, чтобы процесс-получатель знал, что только что произошло событие получения.
В противном случае это нарушило бы отношение Лампорта «произошло до» как в отправителе, так и в получателе, если там не возникнет тик.