Базы данных - модели, разработка, реализация


         

Параллельное выполнение транзакций - часть 10


Это требование порождает двухфазный протокол синхронизационных захватов - 2PL(two phase lock) или 2PC (two phase commit). В соответствии с этим протоколом выполнение транзакции разбивается на две фазы:

  • первая фаза транзакции - накопление захватов;
  • вторая фаза (фиксация или откат) - освобождение захватов.
  • В языке SQL введен оператор явной блокировки таблицы, который позволяет точно задать тип блокировки для всей таблицы. Синтаксис операции блокировки имеет вид:

  • LOCK TABLE имя_таблицы IN {SHARED | EXCLUSIVE} MODE
  • Имеет смысл блокировать таблицу полностью, когда выполняется операция множественной модификации одной таблицы, то есть когда в ней изменяется большое количество строк. Эта операция иногда называется пакетным обновлением.

    Конечно, у блокировки таблицы есть тот недостаток, что все остальные транзакции должны ждать окончания обновления таблицы. Но режим пакетного обновления одной таблицы работает достаточно быстро, и общая производительность выполнения множества транзакций может даже повыситься в этом случае.

    240

    231 :: 232 :: 233 :: 234 :: 235 :: 236 :: 237 :: 238 :: 239 :: 240 :: Содержание




    Содержание  Назад  Вперед