Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Управление параллельным выполнением транзакций




Журнал транзакции

Для отслеживания всех транзакций, выполняющихся в БД, используется журнал транзакций. Информация, которая содержится в этом журнале, может быть применена для восстановления БД в случае неожиданного прерывания выполнения программы или системного сбоя или в случае отмены транзакции с помощью оператора ROLLBACK.

В журнале транзакции хранится следующая информация:

1. Запись о начале транзакции.

2. Для каждого компонента (SQL оператора) хранятся:

a. Тип выполняемой операции

b. Имена объектов, на которые влияет транзакция(названия таблиц).

c. Значения «до», как минимум, и «после» для обновляемых полей.

d. Указатели на предыдущую и последующую запись для такой же транзакции.

3. Запись о завершении транзакции.

Использование журнала транзакций увеличивает непроизводительные издержки при работе СУБД, однако возможность восстановления поврежденной СУБД стоит того.

Пример журнала транзакции:

TRL ID TRX NUM пред PTR след PTR Операции Объект БД Идентификатор столбца Атрибут «до»
    null   START начало транзакции    
        UPDATE TOVAR QUANT  
        UPDATE SKLAD CQUANT  
      null COMMIT конец транзакции    

1. TRL ID – идентификатор записи в журнале транзакции.

2. TRX NUM – номер транзакции

3. Ссылка на предыдущий идентификатор записи в журнале транзакции

4. Ссылка на следующий идентификатор записи в журнале транзакции

Журнал транзакций сам по себе представляет БД, управляемую с помощью СУБД, как и любая БД.

Поскольку в журнале транзакций содержится весьма важная информация, то обычно СУБД поддерживают размещение журналов на нескольких дисках или других устройствах хранения данных для уменьшения риска потери информации при сбое системы.

Управление параллельным выполнением транзакций – это координирование их одновременного выполнения в многопользовательских БД. Контроль параллельного выполнения очень важен, т.к. параллельное выполнение транзакций может стать причиной проблем с целостностью и непротиворечивостью данных.

Тремя основными проблемами можно считать:

1. Потерю изменений.

2. Несвязанность данных

3. Неоднозначность поиска

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

Несвязанность данных возникает в случае, когда две транзакции Т1 и Т2 выполняются параллельно и первая транзакция Т1 отменяется после того, как вторая транзакция Т2 уже получила доступ к несвязным данным.

Неоднозначность поиска возникает, когда транзакции Т1 и Т2 выполняются параллельно и в транзакции Т1 выполняется агрегатная функция на множеством данных, в то время как другая транзакция Т2 обновляет эти данные. Проблема состоит в том, что транзакция Т1 может считывать некоторые данные перед их изменением, а другие данные после их изменения.

Планировщик транзакций устанавливает порядок, в котором выполняются операции параллельных транзакций, чтобы избежать их конфликта. Планировщик может чередовать выполнение операций различных транзакций и обеспечивать их правильную последовательность. Эта последовательность определяется специальными алгоритмами параллельного выполнения, такими как блокировки или метки времени. Если невозможно спланировать выполнение транзакции, то все транзакции будут выполняться по принципу FIFO, что может привести к увеличению времени отклика в многопользовательских СУБД. Поэтому необходимо применение специальных методов, которые позволили бы увеличить общую производительность системы, выполняя транзакции параллельно. Так например, можно было бы позволить транзакциям Т1 и Т2 оперировать одними и теми же данными в случае отсутствия конфликтов.

Рассмотрим возможные конфликты между транзакциями с помощью матрицы конфликтов:

Т1 Т2
R R
R W
W R
W W

R-read, W - write

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

Рассмотрим методы устранения конфликтующих ситуаций параллельных транзакций:




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 560; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.