Изменения

Перейти к: навигация, поиск

Транзакции. Параллельное исполнение. Блокировки

1586 байт добавлено, 19:34, 4 сентября 2022
м
rollbackEdits.php mass rollback
может быть немедленно удовлетворен.
3. Если транзакция А владеет разделяемой блокировкой (S) кортежа t, то выполнявыполняютсяются следующие условия:
* запрос некоторой другой транзакции в на получение блокировки X кортежа t не может быть немедленно удовлетворен;
* запрос некоторой другой транзакции в на получение блокировки S кортежа t может и должен быть немедленно удовлетворен (это означает, что с этого времени времени транзакция в также будет владеть блокировкой S кортежа). ==Протокол блокировки==1. Транзакция, в которой требуется выполнить выборку кортежа, должна вначале приобрести блокировку S на этот кортеж. 2. Транзакция, в которой требуется выполнить обновление кортежа, должна вначале приобрести X блокировку на этот кортеж. В ином случае, если она уже владеет блокировкой S на этом кортеже, как происходит в ситуации, когда выполняется последовательность операций выборки и обновления (RETRIEVE и UPDATE), то эта транзакция должна повысить уровень блокировки S до уровня X. 3. Если запрос на блокировку от транзакции в не может быть немедленно удовлетворен из-за того, что он конфликтует с блокировкой, которой уже владеет транзакция А, то в переходит в состояние ожидания. Транзакция в ожидает до тех пор, пока не появится возможность удовлетворить ее запрос на блокировку, а это может произойти не раньше, чем транзакция А освободит блокировку.
1632
правки

Навигация