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

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

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

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

Три проблемы параллельности Прежде всего следует рассмотреть проблемы, которые обязательно должны устраняться любым из предлагаемых методов управления параллельностью. При обработке транзакций в общем случае возможны три типа ситуаций, при которых параллельное выполнение транзакций, каждая из которых сама по себе является корректной, из-за взаимных помех способно привести к неправильному результату. Обратите внимание, что вносящая помеху транзакция сама по себе может быть вполне корректной, а неправильный конечный результат возникает из-за бесконтрольного чередования операций двух правильных транзакций. (Выражение "правильная транзакция" здесь означает, что эта транзакция не нарушает золотое правило, описанное в главе 8.) Ниже приводятся трн проблемы, возникающие при параллельной обработке транзакций.

° Потеря резулыпатов обновления ° Зависимость от незафиксированных резулыпатов ° Несогласованная обработка данных Проблема потери результатов обновления Рассмотрим ситуацию, показанную на рис. 15.1. Здесь транзакция А считывает некоторый кортеж с в момент с1, а транзакция В считывает этот же кортеж 1 в момент 12. Далее транзакция А обновляет кортеж б в момент 13 (исходя из значений, считанных в момент 11), а транзакция В обновляет тот же кортеж с в момент с4 (исходя из значений, считанных в момент с2 и аналогичных значениями, которые были считаны в момент с1). Можно видеть, что результат операции обновления, выполненной транзакцией А, будет утерян, поскольку в момент ь4 он будет перезаписан в результате операции обновления, выполняемой транзакцией В.

Заиечание. Здесь и далее в этой главе вновь делается допущение, что имеет смысл говорить об "обновлении кортежа". Проблема зависимости от незафиксированных результатов Проблема зависимости от незафиксированных результатов может возникнуть в том случае, если любой транзакции разрешено считывание [или, что еше хуже, обновление) кортежа, который только что был обновлен другой транзакцией, но результаты выполне- 567 Глава з 5. Параллельность ния этой транзакции еше не были зафиксированы. Если некоторое обновление не зафиксировано, всегда существует определенная вероятность, что оно не будет зафиксировано никогда из-за отката данной транзакции. В этом случае первая транзакция будет обрабатывать данные, которые уже не существуют (и, в сущности, никогда не сушествовали).

Данная ситуация представлена на рис. 15.2 и 15.3. Рис. 15. !. Потеря в мачент ь4 результатов обновления, выполненного транзакцией А Рис. !5.2. В мочент с2 транзакция А оказывается зависимой от незафиксированных ре- зультатов обновления Рис. !5.3. Транзакция А обновляет незафиксированное изменение в момент 12, но ре- зультаты этого обновления утрачиваются в момент С3 В первом примере (см. рис. 15.2) транзакция А в момент С2 получает доступ к незафиксированным результатач обновления (иногда называемым незафиксированным изменвпивч).

Затем это обновление в момент ь3 отменяется. В результате транзакция А выполняется, исходя из ошибочного предположения, что кортеж с имеет значение, которое он имел в момент т.2, тогда как на самом деле он сохранил свое прежнее значение, которое имел в момент с1. В итоге в результате выполнения транзакции А будет получен не- 568 Часть Лг управление транзакциями верный результат. Кроме того, следует учитывать, что откат транзакции В может произойти не по вине транзакции В, а, например, в результате сбоя системы.

(К этому времени выполнение транзакции А может быть уже завершено, а потому сбой системы не приведет к откату транзакции А.) Второй пример, приведенный на рис. 15.3, иллюстрирует еше более неприятный случай. В момент с2 транзакция А вновь оказывается зависимой от незафиксированного изменения. Более того, в момент В3 все ее результаты фактически утрачиваются, поскольку откат транзакции В приводит к восстановлению исходного состояния кортежа (., которое он имел в момент Г1.

Это еше один вариант проблемы потери результатов обновления. Проблема несогласованной обработки данных На рис. 15гй показаны транзакции А и В, которые обрабатывают кортежи, содержащие сведения об остатках на счетах (АСС). При этом транзакция А суммирует текущие остатки на счетах, а транзакция В выполняет перевод суммы в $10 со счета 3 на счет 1. Полученный в итоге выполнения транзакции А результат $110, очевидно, неверен, и если он будет помещен в базу данных, то она окажется в противоречивом состоянии'.

В таком случае говорят, что транзакция А выполняет несогласованную обработку данных, в результате чего получается противоречивый результат. Обратите внимание на следующее отличие этого примера от предыдущего: здесь не идет речь о зависимости транзакции А от незафиксированных результатов транзакции В, так как последняя выполнила и зафиксировала все свои обновления до того, как транзакция А считала значение остатка для счета АСС 3. 1 5.3. Блокировка Как упоминалось в разделе 15.1, описанные в предыдущем разделе проблемы могут быть разрешены с помощью механизма управления параллельным выполнением процессов, называемого блокировкой.

Основная идея очень проста: в случае, когда прн выполнении некоторой транзакции необходимо иметь гарантии, что определенный объект базы данных (обычно это кортеж) не будет непредсказуемо изменен без ведома данной транзакции (как это имело место выше), требуемый объект блокируется. Эффект выполнения блокировки состоит в том, что доступ к объекту со стороны других транзакций запрещается, а это позволяет предотвратить его неконтролируемое изменение. В результате установившая блокировку транзакция сможет выполнять всю необходимую обработку, имея полную гарантию, что обрабатываемый объект будет оставаться в неизменном состоянии настолько долго, насколько потребуется.

Ниже работа механизма блокировки описана более подробно. !. Прежде всего предположим, что в системе поддерживается два типа блокировок: эксклюзивная блокировка, или Х-блокировка, не допускающая совместного доступа, и разделяемая блокировка, или Б-блокировка, разрешающая совместный доступ. З В отношении этой аозиолсности (т.е.

записи результатов а базу данных) предполагается, что не сущестаует никакич ограничений целостности, запрещающих подобную запас 5б9 Глава 15. Параялельноать АСС 1 40 АСС 2 00 АСС 3 80 Время Транзакция В Транзакция А ! с1 ! ! с2 с3 с4 ! 85 ! Вб 87 88 Извлечение кортежа АСС 1: аци = 40 Извлечение кортежа АСС 2: вци = 90 Извлечение кортежа АСС 3: Обновление кортежа АСС 3: 30 -э 20 Извлечение кортежа АСС 1: Обновление кортежа АСС 1: 40 -э 50 Фиксация результатов транзакции Извлечение кортежа АСС 3: вци = 110 (а не 120) Рис, ! 5, 4 Транзакция А получила противоречивый результат 570 Часть 1К Управление транзакг(ияяги Замечание. Х- и Б-блокировки иногда называют блокировками для записи и чтения соответственно.

Здесь предполагается, что возможны только Х- и В-блокировки, хотя в разделе 15.8 приводятся примеры блокировок лругих типов. Кроме того, предполагается, что единственным типом "блокируемого объекта" являются кортежи, хотя примеры других типов таких объектов описаны, опять же, в разделе 15.8. 2. Если транзакция А заблокировала кортеж с без возможности взаимного доступа (Х- блокировка), то запрос другой транзакции В на блокировку этого же кортежа ь будет отменен.

3. Если транзакция А заблокировала кортеж 8 с возможностью взаимного доступа (8- блокировка), то: ' запрос со стороны некоторой транзакции В на выполнение Х-блокировкн кортежа с будет отвергнут; ' запрос со стороны некоторой транзакции В на выполнение 8-блокировки кортежа 0 будет принят (т.е. для транзакции В также будет установлена $-блокировка кортежа 8). Этп правила можно наглядно представить в виде матрицы совместимости типов блокирован, показанной на рис.

15.5. Эта матрица интерпретируется следуюшим образом. Рассмотрим некоторый кортеж с и предположим, что транзакция А блокирует кортеж 1 различными типами блокировки (что обозначено в заголовках столбцов соответственно символами Я и Х, тогда как отсутствие блокировки — прочерком). Предположим также, что некоторая транзакция В запрашивает блокировку кортежа С, тип которой на рис. 15.5 указан в первом слева столбце матрицы. (Для полноты картины в таблице также приведен случай отсутствия блокировки.) В остальных ячейках матрицы символ )ч отмечает конфликтную ситуацию (запрос со стороны транзакции В не может быть удовлетворен, и эта транзакция переводится в состояние ожидания), а т' — допустимую ситуацию (запрос со стороны транзакции В удовлетворяется). Очевидно, что данная матрица является симметричной.

Я )з! Х з' х' з' У Рис. !5.5. Матрица совместимости для Х- и Б-блакиравак Теперь следует ввести понятие протокол доступа к данным (или протокол блокировки), который с помощью описанных выше Х- и $-блокировок позволит избежать возникновения проблем, обсуждавшихся в разделе 15.2з. 1. Прежде чем считать какой-либо кортеж, транзакция должна установить для него бблокировку. 2. Прежде чем обновить какой-либо кортеж, транзакция должна установить для него Х-блокировку. Если транзакция уже установила для кортежа Б-блокировку (что возможно в случае последовательного выполнения операций ВебгТече и УрдаСе), необходимо расширить 8-блокировку до уровня Х-блокировки. Замечание.

В транзакциях запросы на установку блокировки обычно задаются неявным образом; например, запрос на выборку кортежа подразумевает неявный запрос на установку для него Б-блокировки, а запрос на обновление кортежа — неявный запрос на установку для него Х-блокировкн. При этом под термином "обновление" (как и ранее) подразумеваются, помимо операций ОРЭАТЕ, также операции 1НБЕЕТ (вставка) и ОЕЬЕТЕ (удаление).

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

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

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

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