Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РСБДтЗ / Курс лекций РСБДиЗ.doc
Скачиваний:
135
Добавлен:
05.03.2016
Размер:
1.63 Mб
Скачать

Взаимоблокировки

Возможна ситуация, когда две транзакции блокируют друг друга так, что продолжение работы не возможно без принудительного завершения одной из транзакций.

Пример:

create table t(i number, j number, s_i varchar2(100), s_j varchar2(100));

сеанс #1

сеанс №2

begin tran

begin tran

Update t set s_i =

'строка' where i = 1

Update t set s_j =

'строка' where j = 1

Update t set s_j =

'строка' where j = 1

ожидание

Update t set s_i =

'строка' where i = 1

ожидание

Для разрешения подобной ситуации монитор транзакций выбирает одну из транзакций для принудительного завершения.

8. Лекция: Репликация данных. Виды и свойства репликации. Сравнение механизмов репликации в ms sql Server 2005 и oracle Server 10g

Одной из основных характеристикхранилища данных является модель его непротиворечивости, в которой определяются какие правила необходимо соблюдать, чтобы хранилище возвращало разным процессам правильные результаты. Выделяют следующие модели непротиворечивости [1]: строгая, линеаризуемая, последовательная, причинная,FIFO, слабая, свободная и поэлементная. Рассматривается репликативный аспект последовательной, слабой и FIFOмоделей непротиворечивости. Этот выбор обусловлен тем, что первые две модели обеспечивают глобальную сериализуемостьопераций, а последняя - довольно легко реализуема и является менее жесткой, чем первые две. В[1] приведены определения всех вышеперечисленных моделейнепротиворечивости, здесь же приводятся определения только рассматриваемых моделей, необходимые для дальнейшего изложения.

Последовательная непротиворечивость определяется следующим правилом:

Результат любого действия такой же, как если бы операции (чтения и записи) всех процессов в хранилище данных выполнялись бы в некотором последовательном порядке, причем операции каждого отдельного процесса выполнялись бы в некотором последовательном порядке, определяемом его программой.

Непротиворечивость FIFO определяется следующим правилом:

Операции записи, осуществляемые единичным процессом, наблюдаются всеми остальными процессами в том порядке, в котором они осуществляются, но операции записи, происходящие в различных процессах, могут наблюдаться разными процессами в разном порядке.

Слабая непротиворечивость

Для определения слабой непротиворечивости вводится понятие переменной синхронизации. Переменная синхронизации (S) имеет ассоциированный с ней набор реплицируемых данных и позволяет выполнять над собой единственную операцию synchronize(S). В ходе выполнения этой операции изменения сделанные процессом в локальной копии данных распространяются на все остальные копии данных, ассоциированные с переменной синхронизации. Также в ходе этой операции локальная копия обновляется данными из остальных копий.

Модель слабой непротиворечивости имеет три свойства:

  • Доступ к переменным синхронизации, ассоциированными с хранилищем данных, осуществляется на условиях последовательнойнепротиворечивости.

  • С переменной синхронизации не может быть произведена ни одна операция до полного и повсеместного завершения предшествующих ей операций чтения и записи над элементами данных.

  • С элементами данных не может быть произведена ни одна операция до полного завершения всех операций с переменными синхронизации.

Протокол непротиворечивости представляет собой конкретную реализацию соответствующей модели. Принято выделять следующие группы протоколов непротиворечивости [1]: на базе первичной копии, реплицируемой записи, согласования кэшей.

Соседние файлы в папке РСБДтЗ