Часы Лэмпорта — алгоритм определения порядка событий в распределённой системе (логические часы), разработанный Лэсли Лэмпортом в 1978 году, является прообразом векторных часов.
Так как синхронизировать все узлы полностью невозможно, на множестве событий вводится отношение частичного порядка. Часы Лэмпорта присваивают каждому событию единственное число, монотонно увеличивая счётчик каждого процесса согласно следующим правилам:
- счётчик увеличивается перед каждым внутренним событием процесса;
- при отправке сообщения значение счётчика прикрепляется к сообщению;
- при получении сообщения значение счётчика процесса-получателя выставляется в максимум текущего и полученного значения и увеличивается на 1.
Литература
править- Leslie Lamport. Time, clocks, and the ordering of events in a distributed system (англ.) // Communications of the ACM : journal. — 1978. — Vol. 21, no. 7. — P. 558—565. — doi:10.1145/359545.359563.
- Жуклинец И.А., Хотимский Д.А. Логическое время в распределенных программных системах // Программирование. — 2000. — № 6. — С. 3—19.
- Косяков М. С. Введение в распределенные вычисления. –. — СПб.: НИУ ИТМО, 2014. — С. 68—75. — 155 с.
- Chapter 3: Logical Time // Ajay Kshemkalyani and Mukesh Singhal, Distributed Computing: Principles, Algorithms, and Systems, Cambridge University Press, 2008 (Scalar Time)
Для улучшения этой статьи желательно:
|