Общие принципы построения логических часов
В обычной жизни мы говорим, что некоторое событие произошло в 9:30, если оно наступило после того, как наши часы показали 9:30, и до того, как показания часов изменились на 9:31. При этом с каждым
интересующим нас событием мы ассоциируем отметку времени (англ.
timestamp), соответствующую этому событию.
Описание принципов построения логических часов мы также начнем с понимания того, что такие часы должны обеспечивать механизм, позволяющий каждому событию в распределенной системе приписывать некоторое числовое значение, которое можно интерпретировать как время наступления этого события. Поэтому логическими часами (англ. logical clock) назовем всякую функцию Θ, отображающую множество событий распределенного вычисления в некоторое упорядоченное множество (T, <), где Т представляет собой совокупность допустимых значений логического времени (англ. time domain). В распределенных системах каждый процесс Pi может управлять работой только своих часов Θi независимо от часов других процессов. При этом отметка логического времени события ei, происходящего в процессе Pi, будет определяться показаниями часов этого процесса на момент наступления ei, т.е. Θ(ei) = Θi(ei) для всех событий ei процесса Pi. Как было указано выше, показания часов Θi должны изменяться между наступлением событий процесса Pi, т.е. сам факт изменения показаний Θi событием не является.
Несмотря на то, что такие часы работают в независимых процессах, отметки логического времени, назначаемые событиям, должны удовлетворять фундаментальному условию монотонного возрастания времени. А именно, все события, принадлежащие конусу прошлого любого события ei, должны быть отмечены временем меньшим, чем время Θ(ei) события ei. И наоборот, все события из конуса будущего события ei должны иметь время наступления большее, чем Θ(ei):
ei, ej' : ei → ej' Θ(ei) < Θ(ej').
Данное требование монотонного возрастания времени называют условием непротиворечивости логических часов (англ. clock consistency) или условием непротиворечивости отметок времени событий. Оно отражает последовательную природу выполнения каждого отдельного процесса и соглашение о том, что на передачу любого сообщения затрачивается ненулевое конечное время. Действительно, из определения отношения причинно-следственного порядка следует, что требование непротиворечивости логических часов будет выполнено при выполнении следующих двух условий:
Do'stlaringiz bilan baham: |