Введение

В информатике алгоритм управления параллелизмом на основе меток времени является оптимистичным методом управления параллелизмом. Он используется в некоторых базах данных для безопасной обработки транзакций, использующих метки времени.

Предположения

Каждое значение метки времени уникально и точно отражает конкретный момент времени. Метка времени с большим значением соответствует более позднему моменту времени, чем метка времени с меньшим значением.

Физически нереализуемый

Поведение физически нереализуемо, если результаты транзакций не могли бы произойти, если бы транзакции были мгновенными. Существуют только две ситуации, приводящие к физически нереализуемому поведению:

Транзакция T пытается прочитать X, но TS(T) < WT(X). Причина: это означает, что X был изменен другой транзакцией после начала работы T. Транзакция T пытается записать X, но TS(T) < RT(X). Причина: это означает, что другая транзакция прочитала X до того, как T успела его изменить.

Разрешение временной метки

Это минимальный промежуток времени между двумя соседними временными метками. Если разрешение временной метки слишком велико (крупное), возрастает вероятность того, что две или более временных меток окажутся равными, что может привести к фиксации некоторых транзакций в неправильном порядке. Например, в системе, генерирующей сто уникальных временных меток в секунду, два события, произошедшие с разницей в 2 миллисекунды, могут получить одинаковую временную метку, несмотря на то, что они произошли в разное время.

Закрытие отметки времени

Несмотря на то, что эта техника не использует блокировки, и объект не блокируется от конкурентного доступа на протяжении всей транзакции, запись каждой временной метки для объекта требует кратковременной блокировки самого объекта или его прокси.