292
правки
Изменения
Нет описания правки
* Есть один процесс-координатор, ответственный за поиск согласованного среза;
* Остальные процессы обычные, их задача проверять свои локальные предикаты;
* Всякий раз, когда впервые с момента последнего отправленного сообщения локальный предикат становится true, оповещаем об этом координатора, указывая свое векторное время(впервые — чтобы не спамить, состояния процесса между посылками сообщений для системы неотличимы);
* Координатор поддерживает в памяти срез-кандидат и очередь необработанных сообщений от каждого процесса;
* Срез-кандидат согласован тогда и только тогда, когда все соответствующие вектора попарно несравнимы;