Методы использования временных отметок (timestamp), применяемые для контроля целостности данных, совершенно отличаются от методов с использованием блокировок. Не требуется применение каких-либо блокировок, и, следовательно, исключается возможность возникновения взаимных блокировок процессов. Методы блокировки обычно устраняют возможные конфликты посредством перевода транзакций в состояние ожидания. Методы с использованием временных отметок не предусматривают какого-либо ожидания – вовлеченные в конфликт транзакции просто отменяются, после чего запускаются заново.
Временная отметка этоуникальный идентификатор, создаваемый СУБД с целью обозначения относительного момента времени запуска транзакции.
Временная отметка может быть создана с использованием системных часов для фиксации момента запуска транзакции либо посредством увеличения значения некоторого логического счетчика при каждом запуске очередной транзакции.
Протокол управления параллельностью, основная цель которого состоит в установлении глобальной очередности выполнения транзакций, при которой более старые транзакции (транзакции с меньшимзначением временной отметки) имеют более высокий приоритет при разрешении возникающих конфликтов.
При использовании протокола временных отметок, если транзакция предпринимает попытку чтения или записи элемента данных, операция чтения или записи выполняется только в том случае, если последнее обновление требуемого элемента данныхбыло выполнено более старой транзакцией. В противном случае транзакция, запросившая операцию чтения/записи, отменяется и перезапускается с присвоением ей новой временной отметки. Новая временная отметка должна быть присвоена перезапускаемой транзакции для того, чтобы предотвратить ее попадание в цикл постоянной отмены и перезапуска. Без получения новой временной отметки транзакция с более старой временной отметкой не сможет завершить свою работу, поскольку более новая транзакция уже успела зафиксировать свои результаты в базе данных.
Помимо временных отметок для транзакций, в системе должны использоваться временные отметки для элементов данных. Каждый элемент данных должен иметь временную отметку чтения,содержащую временную отметку последней из транзакций, выполнивших его чтение, и временную отметку записи,содержащую временную отметку последней транзакции, записавшей (обновившей) содержимое этого элемента данных. Согласно протоколу с упорядочиванием по временным отметкам, обработка транзакции Т, имеющей временную отметку ts(T), выполняется следующим образом.