Проблема потери результатов обновления

Рассмотрим ситуацию, показанную на рис. 15.2, в такой интерпретации: транзакция A извлекает некоторый кортеж p в момент времени t1; транзакция B извлекает некоторый кортеж p в момент времени t2; транзакция A обновляет некоторый кортеж p (на основе значений, полученных в момент времени t1) в момент времени t3; транзакция B обновляет тот же кортеж р (на основе значений, полученных в момент времени t2, которые имеют те же значения, что и в момент времени t1) в момент времени t4. Однако результат операции обновления, выполненной транзакцией A, будет утерян, поскольку в момент времени t4 она не будет учтена и потому будет "отменена" операцией обновления, выполненной транзакцией B.

 

Транзакция A Время Транзакция B
Извлечение кортежа р t1
t2 Извлечение кортежа р
Обновление кортежа р t3
t4 Обновление кортежа р

 

рис. 15.2. Потеря в момент времени t4 результатов обновления, выполненного транзакцией A.