ВУЗ:
Составители:
Рубрика:
47
транзакцией В.
Транзакция А Время Транзакция В
-
Извлечение кортежа р
-
-
-
Обновление кортежа р
-
-
-
|
t
1
|
t
2
|
t
3
|
t
4
↓
-
-
-
Извлечение кортежа р
-
-
-
Обновление кортежа р
-
Рис. 5.1 Потеря в момент времени t
4
результатов обновления,
выполненного транзакцией А
Проблема незафиксированной зависимости
Проблема незафиксированной зависимости появляется, если с помощью некоторой
транзакции осуществляется извлечение (или, что еще хуже, обновление) некоторого
кортежа, который в данный момент обновляется другой транзакцией, но это обновление
еще не закончено. Таким образом, если обновление не завершено, существует некоторая
вероятность того, что оно не будет завершено никогда. (Более того, в подобном случае
может быть выполнен возврат к предыдущему состоянию кортежа с отменой выполнения
транзакции.) В таком случае в первой транзакции будут принимать участие данные,
которых больше не существует (в том смысле, что они “никогда” не существовали). Эта
ситуация показана на рис. 5.2 и 5.3.
В первом примере (рис. 5.2) транзакция А в момент времени t
2
встречается с
невыполненным обновлением (оно также называется невыполненным изменением). Затем
это обновление отменяется в момент времени t
3
. Таким образом, транзакция А
выполняется на основе фальшивого предположения, что кортеж р имеет некоторое значе-
ние в момент времени t
2
, тогда как на самом деле он имеет некоторое значение, суще-
ствовавшее еще в момент времени t
1
. В итоге после выполнения транзакции А будет
получен неверный результат. Кроме того, обратите внимание, что отмена выполнения
транзакции В может произойти не по вине транзакции B, а, например, в результате краха
системы. (К этому времени выполнение транзакции А может быть уже завершено, а
потому крушение системы не приведет к отмене выполнения транзакции.)
Транзакция А Время Транзакция В
-
-
-
Извлечение кортежа р
-
-
-
|
t
1
|
t
2
|
t
3
↓
-
Обновление кортежа р
-
-
-
Отмена выполнения
транзакции
-
Рис. 5.2. Транзакция А становится зависимой от невыполненного
изменения в момент времени t2
транзакцией В.
Транзакция А Время Транзакция В
- | -
Извлечение кортежа р t1 -
- | -
- t2 Извлечение кортежа р
- | -
Обновление кортежа р t3 -
- | -
- t4 Обновление кортежа р
- ↓ -
Рис. 5.1 Потеря в момент времени t4 результатов обновления,
выполненного транзакцией А
Проблема незафиксированной зависимости
Проблема незафиксированной зависимости появляется, если с помощью некоторой
транзакции осуществляется извлечение (или, что еще хуже, обновление) некоторого
кортежа, который в данный момент обновляется другой транзакцией, но это обновление
еще не закончено. Таким образом, если обновление не завершено, существует некоторая
вероятность того, что оно не будет завершено никогда. (Более того, в подобном случае
может быть выполнен возврат к предыдущему состоянию кортежа с отменой выполнения
транзакции.) В таком случае в первой транзакции будут принимать участие данные,
которых больше не существует (в том смысле, что они “никогда” не существовали). Эта
ситуация показана на рис. 5.2 и 5.3.
В первом примере (рис. 5.2) транзакция А в момент времени t2 встречается с
невыполненным обновлением (оно также называется невыполненным изменением). Затем
это обновление отменяется в момент времени t3. Таким образом, транзакция А
выполняется на основе фальшивого предположения, что кортеж р имеет некоторое значе-
ние в момент времени t2, тогда как на самом деле он имеет некоторое значение, суще-
ствовавшее еще в момент времени t1. В итоге после выполнения транзакции А будет
получен неверный результат. Кроме того, обратите внимание, что отмена выполнения
транзакции В может произойти не по вине транзакции B, а, например, в результате краха
системы. (К этому времени выполнение транзакции А может быть уже завершено, а
потому крушение системы не приведет к отмене выполнения транзакции.)
Транзакция А Время Транзакция В
- | -
- t1 Обновление кортежа р
- | -
Извлечение кортежа р t2 -
- | -
- t3 Отмена выполнения
- ↓ транзакции
-
Рис. 5.2. Транзакция А становится зависимой от невыполненного
изменения в момент времени t2
47
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »
