
Рейтинг 1 / 26. Транзакции и параллелизм. Проблемы параллельной работы транзакций
.docxТранзакции и параллелизм
Работа транзакций в смеси
Транзакция рассматривается как последовательность элементарных атомарных операций. Атомарность отдельной элементарной операции состоит в том, что СУБД гарантирует, что, с точки зрения пользователя, будут выполнены два условия:
-
Эта операция будет выполнена целиком или не выполнена вовсе (атомарность - все или ничего).
-
Во время выполнения этой операции не выполняются никакие другие операции других транзакций (строгая очередность элементарных операций).
-
Элементарные операции различных транзакций могут выполняться в произвольной очередности (конечно, внутри каждой транзакции последовательность элементарных операций этой транзакции является строго определенной). Например, если есть несколько транзакций, состоящих из последовательности операций элементарных:
-
,
,
-
то реальная последовательность, в которой СУБД выполняет эти транзакции может быть, например, такой:
-
.
-
Определение 1. Набор из нескольких транзакций, элементарные операции которых чередуются друг с другом, называется смесью транзакций.
-
Определение 2. Последовательность, в которой выполняются элементарные операции заданного набора транзакций, называется графиком запуска набора транзакций.
-
Замечание. Очевидно, что для заданного набора транзакций может быть несколько (вообще говоря, достаточно много) различных графиков запуска.
Проблемы параллельной работы транзакций
Различают три основные проблемы параллелизма:
-
Проблема потери результатов обновления.
-
Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное считывание).
-
Проблема несовместимого анализа.