Контроль конкурентного доступа на основе временных меток
Timestamp-based concurrency control
Управление параллелизмом на основе меток времени: оптимистичный метод контроля транзакций в базах данных. Уникальные метки времени обеспечивают безопасность.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
В информатике алгоритм управления параллелизмом на основе меток времени является оптимистичным методом управления параллелизмом. Он используется в некоторых базах данных для безопасной обработки транзакций, использующих метки времени.
In computer science, a timestamp based concurrency control algorithm is a optimistic concurrency control method. It is used in some databases to safely handle transactions using timestamps.
Предположения
Каждое значение метки времени уникально и точно отражает конкретный момент времени. Метка времени с большим значением соответствует более позднему моменту времени, чем метка времени с меньшим значением.
Every timestamp value is unique and accurately represents an instant in time. A higher valued timestamp occurs later in time than a lower valued timestamp.
Физически нереализуемый
Поведение физически нереализуемо, если результаты транзакций не могли бы произойти, если бы транзакции были мгновенными. Существуют только две ситуации, приводящие к физически нереализуемому поведению:
The behavior is physically unrealizable if the results of transactions could not have occurred if transactions were instantaneous. The following are the only two situations that result in physically unrealizable behavior:
Транзакция T пытается прочитать X, но TS(T) < WT(X). Причина: это означает, что X был изменен другой транзакцией после начала работы T. Транзакция T пытается записать X, но TS(T) < RT(X). Причина: это означает, что другая транзакция прочитала X до того, как T успела его изменить.
Transaction T tries to read X but TS(T) < WT(X). Reason: It means that X has been written to by another transaction after T began. Transaction T tries to write X but TS(T) < RT(X). Reason: It means that a later transaction read X before it was written by T.
Разрешение временной метки
Это минимальный промежуток времени между двумя соседними временными метками. Если разрешение временной метки слишком велико (крупное), возрастает вероятность того, что две или более временных меток окажутся равными, что может привести к фиксации некоторых транзакций в неправильном порядке. Например, в системе, генерирующей сто уникальных временных меток в секунду, два события, произошедшие с разницей в 2 миллисекунды, могут получить одинаковую временную метку, несмотря на то, что они произошли в разное время.
This is the minimum time elapsed between two adjacent timestamps. If the resolution of the timestamp is too large (coarse), the possibility of two or more timestamps being equal is increased and thus enabling some transactions to commit out of correct order. For example, for a system that creates one hundred unique timestamps per second, two events that occur 2 milliseconds apart may be given the same timestamp even though they occurred at different times.
Закрытие отметки времени
Несмотря на то, что эта техника не использует блокировки, и объект не блокируется от конкурентного доступа на протяжении всей транзакции, запись каждой временной метки для объекта требует кратковременной блокировки самого объекта или его прокси.
Even though this technique is a non locking one, in as much as the object is not locked from concurrent access for the duration of a transaction, the act of recording each timestamp against the Object requires an extremely short duration lock on the Object or its proxy.