Главная » Просмотр файлов » Введение в системы БД

Введение в системы БД (542480), страница 145

Файл №542480 Введение в системы БД (Введение в системы БД) 145 страницаВведение в системы БД (542480) страница 1452015-08-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 145)

Прн строгом описании протокола имеют место небольшие отличия, связанные с выполнением операций вставки и удаления, однако здесь они опущены. 3. Если запрашиваемая со стороны транзакции В блокировка отвергается из-за конфликта с блокировкой, уже установленной со стороны транзакции А, то транзакция В переводится в состояние ожилания. Причем транзакция В будет находиться в состоянии ожидания до тех пор, пока не будет снята блокировка, установленная ранее транзакцией А. Замечание.

Система обязательно должна гарантировать, что транзакция В не будет находиться в состоянии ожидания бесконечно долго (иногда эту ситуацию называют зависанием). Самым простым способом получения подобной гарантии является организация обработки запросов на блокировку по принципу "первым поступил — первым обработан". 4.

Х-блокировки сохраняются вплоть до конца выполнения установившей их транзакции (до ее фиксации (ООИИ1Т) или отката (ВОЬЬВАОК)). В-блокировки также обычно сохраняются вплоть до окончания транзакции, однако в этом случае следует учесть замечания, изложенные в разделе !5.7. 571 Глава з 5. Параллельность 1 Описыкаемый здесь протокол ллллктсл примером протокола даухзразндй блокировки (более подробно дн рассматриваетсл к разделе 15 б) 15.4.

Устранение трех проблем параллельности Теперь можно вновь вернуться к рассмотрению трех проблем параллельности, описанных в разделе 15.2, и проанализировать, как они решаются с помощью механизма блокировок, предложенного в предыдущем разделе. Проблема потери результатов обновления На рис. 15.б приведена новая версия процесса, представленного на рис. 15.1, которая изменена в соответствии с требованиями протокола блокировки, описанного в разделе 15.3.

Операция обновления дпя транзакции А в момент 83 не будет выполнена, поскольку она является неявным запросом на установку Х-блокировки дпя кортежа ~, Однако этот запрос вступает в конфликт с Я-блокировкой, уже установленной дпя данного кортежа транзакцией В. В результате транзакция А будет переведена в состояние ожидания. По аналогичным причинам транзакция В будет переведена в состояние ожидания в момент 84. Хотя в этом случае результаты обоих обновлений утрачены не будут, решение данной проблемы с помощью механизма блокировки окажется возможным только при решении другой, вновь возникшей проблемы.

Эта новая проблема называется взаимной блокировкой и обсуждается в разделе 15.5. Время Транзакция В Транзакция й Извлечение кортежа б (установка Б-блокировки для с) Рис. 15.б, Хогпя обновпения не утрачиваются, в момент С4 возникает взаиинан блокировка Проблема зависимости от незафиксированных результатов На рис. 15.7 и 15.8 приведены измененные версии примеров, представленных на рис. 15.2 и 15.3 соответственно. Они демонстрируют чередование выполнения операций транзакций согласно описанному выше протоколу блокировки. Операция транзакции А в момент 82 (извлечение на рис. 15.7 и обновление на рис.

15.8) выполнена не будет. Суть в том, что она сопровождаешься выдачей неявного запроса на блокировку кортежа с и этот запрос вступает в конфликт с Х-блокировкой, уже установленной для данного кортежа транзакцией В. В результате транзакция й будет переведена в состояние ожидания, продолжающееся до тех пор, пока выполнение транзакции В не будет закончено (до фиксации или отката транзакции В). При этом установленная транзакцией В блокировка будет 572 Часть 1К Управление транзакз(иязии Обновление кортежа С (запрос Х-блокировки для кортежа б) Ожидание Ожидание Ожидание Ожидание Ожидание с1 82 Извлечение кортежа б (установка Я-блокировки для б) с3 84 Обновление кортежа б (запрос Х-блокировки для кортежа С) Ожидание Ожидание снята и транзакция й сможет продолжить свое выполнение.

Причем теперь транзакция А будет иметь дело уже с некоторым зафиксированным значением (либо существовавшим до начала выполнения транзакции В в случае ее отката, либо полученным после выполнения транзакции В). В любом случае транзакция А больше не зависит от незафиксированных результатов выполнения параллельной транзакции. Время Транзакция В Транзакция А Обновление кортежа С (установка Х-блокировки для С) Окончание или отмена выполнения (отмена Х-блокировки для С) Рис. 15.7. Транзакция А не может получить доступ к незафиксированным результатом изменения картежа г в момент 12 Время Транзакция В Транзакция А Обновление кортежа С (установка Х-блокировки для С) Окончание или отмена выполнения (отмена Х-блокировки для С) Рис, 15.8.

Транзакция А не молсвт обновить незафиксированный результат изменения кортежа С в ма.ивнт С2 Проблема несогласованной обработки данных На рнс. 15.9 приведена измененная версия примера, представленного на рис. 15,4. В новой версии чередование операций транзакций осуществляется в соответствии с протоколом блокировки, описанным в разделе 15.3. Операция обновления транзакции В в момент Сб выполнена не будет. Причина в том, что она предусматривает неявный запрос на установку Х- блокировки для кортежа АСС 1, который вступает в конфликт с Я-блокировкой этого кортежа, уже усгановленной транзакцией А.

В результате транзакция В переводится в состояние ожида- 573 Глава 15. Параллельность Извлечение кортежа С (установка Я-блокировки для С) Ожидание Ожидание Ожидание Итог: извлечение кортежа С (установка Я-блокировки для С) Обновление кортежа С (установка Х-блокировки для С) Ожидание Ожидание Ожидание Итог: обновление кортежа С (установка Х-блокировки для С) С1 С2 СЗ С4 С1 С2 С3 С4 АСС 1 40 АСС 2 50 АСС 3 30 Время Транзакция А Транзакция В 01 02 03 14 05 бб 07 Извлечение кортежа АСС 1: (установка Б-блокировки для кортежа АСС 1) ешз = 40 Извлечение кортежа АСС 2: (установка Я-блокировки для кортежа АСС 2) аци = 90 Извлечение кортежа АСС 3: (установка Я-блокировки для кортежа АСС 3) Обновление кортежа АСС 3: (установка Х-блокировки для кортежа АСС 3) 30 -+ 20 Извлечение кортежа АСС 1; (установка Я-блокировки для кортежа АСС 1) Обновление кортежа АСС 1: (установка Х-блокировки для кортежа АСС 1) Ожидание Ожидание Ожидание Ожидание Ожидание Ожидание Извлечение кортежа АСС 3: (установка Б-блокировки для кортежа АСС 3) Ожидание Ожидание Рис.

75.9. Проблема несогласованной обработки данных устраняетсл, но в гломент с7 возникает другая проблема — взаимная блокировка 574 Часть 1К Управление транзакг(иягии ния. Аналогично этому операция выборки транзакции А в момент 07 также выполнена не будет.

Суть в том, что она сопровождается выдачей неявного запроса на установку Я- блокировки для кортежа АСС 3, а этот запрос вступает в конфликт с Х-блокировкой, уже установленной для данного кортежа транзакцией В. В результате транзакция А также переводится в состояние ожидания. Можно сделать вывод, что хотя механизм блокировки и помогает решить исходную проблему (а именно — проблему несогласованной обработки данных), одновременно он приводит к возникновению другой проблемы (а именно — проблемы взаимной блокировки, которая обсуждается в следующем разделе).

15.5. Взаимная блокировка Как было показано выше, механизм блокировки можно использовать для разрешения трех основных проблем, возникающих при параллельной обработке кортежей транзакциями. К сожалению, использование блокировок приводит к возникновению пру~ой проблемы — взаимной блокировке транзакций. Выше были приведены два примера по- лобных ситуаций.

На рис. 15.10 показана обобщенная схема возникновения данной проблемы, на которой г1 и г2 представляют любые блокируемые объекты, необязательно являющиеся кортежами базы данных (подробности приводятся в разделе 15.8), а выражения типа "блокировка... без совместного доступа" обозначают любые операции установки блокировки (без совместного доступа), заданные как явно, так и неявно. Время Транзакция В Транзакция й с1 с2 г3 с4 Блокировка г1 без совместного доступа Блокировка г2 без совместного доступа Блокировка г2 без совместного доступа Ожидание Ожидание Ожидание Ожидание Ожидание Блокировка г1 без совместного доступа Ожидание Ожидание Рис. ! 5.! О.

Скача возникновения взаич ной блокировки ЗИнагда в литературе ситуация взаимной блокировки упоминается под названиелг "тупиковая ситуация", 575 Глава 15. Параллельность Взаимная блокировка имеет место в том случае, когда две или более транзакций одновременно находятся в состоянии ожидания, причем для продолжения работы каждая из них ожидает прекращения выполнения другой транзакцииз. На рис. 15.10 показана взаимная блокировка для двух транзакций, однако, в принципе, возможны ситуации взаимной блокировки с участием трех, четырех и более транзакций. Тем не менее проведенные с системой Яуз!ещ к эксперименты показали, что на практике ситуации взаимнрй блокировки с участием более двух транзакций почти никогда не встречаются 115.4).

Желательно, чтобы при возникновении взаимной блокировки система могла обнаружить ее и найти из нее выход. Для обнаружения ситуации взаимной блокировки следует организовать поиск замкнутых петель в графе ожидания (т.е. в графе, представля1ошем транзакции, которые ожидают окончания выполнения других транзакций: см. упр. 15.4). Устранение взаимной блокировки заключается в выборе одной из участвующих ~в ней транзакций (т.е. той, которая входит в состав петли на графе ожидания) в качестве жертвы и ее откате. В результате будут сняты все установленные ею блокировки и выполнение других транзакций можно будет продолжить. Замечание.

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

Характеристики

Тип файла
DJVU-файл
Размер
10,05 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее