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

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

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

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

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

Уровни изоляции Грубо говоря, термин уровень изоляции используется для описания степени вмешательства параллельно выполняющихся транзакций в работу некоторой заданной транзакции. Однако для гарантированной упорядоченности используемых графиков за- 578 Часть 1г'. Управление транзакг)иями пуска нельзя допускать никакого постороннего вмешательства! Иначе говоря, уровень изоляции должен быть максимальным.

Тем не менее, как уже отмечалось в конце предыдушего раздела, в реальных системах по различным причинам обычно допускаются транзакции, которые работают на уровне изоляции ниже максимального. Заиечаззие. Уровень изоляции обычно рассматривается как некоторое свойство транзакиии. В лействительности нет никаких причин, по которым транзакция в одно и то же время не могла бы работать с различными уровнями изоляции для разных частей базы данных. Однако из соображений простоты здесь уровень изоляции будет рассматриваться всего лишь как некоторое свойство транзакции. Теоретически можно определи~ь по крайней мере пять уровней изоляции. Однако в [15.9), а также в стандарте языка $ф. их всего четыре, тогда как СУБД ОВ2 фирмы 1ВМ поддерживает только два уровня.

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

Уровень спзабцльиости курсора (СК) для транзакции Т1 характеризуется следующими особенностями: ° транзакция адресуется некоторому кортежу сз; ° это действие сопровождается установкой блокировки для кортежа с; ° адресуемость кортежу б отменяется без его обновления; ° в результате уровень Х-блокировки не достигается; ° подобная блокировка может быть снята без необходимости ожидания окончания выполнения транзакции. Обратите внимание, что в этом случае другая транзакция Т2 уже сможет выполнить обновление кортежа б и зафиксировать изменения. Если транзакция Т1 вновь обратится к кортежу 1, эти изменения окажутся ей доступны, что в конечном счете може~ вызвать перевод базы данных в противоречивое состояние. В противоположность этому при использовании уровня изоляции ПС все блокировки кортежей (а не только Х-блокировки) должны сохраняться до окончания выполнения транзакции, поэтому упомянутой выше проблемы не возникает.

Здесь следует сделать важные дополнения. 1. Описанная проблема — не единственная из числа проблем, которые могут возникнуть на уровне изоляции СК; просто ее легче всего объяснить. Однако она, к сожалению, позволяет сделать вывод, что уровень изоляции ПС необходим только в тех сравнительно З Эта операяия выполняется посредством установки курсора в положение, соответствующее требуемолзу кортежу (подробнее об этом рень шла в главе 4); отсюда и название уровня изоллчии: "уровен~ стабильности курсора".

Следует уточнит, нто в СУБД)зо2 блокировка Т1, установленная для кортежа ь, является блокировкой для обновления ((/-блокировкой), а не разделяемой блокировкой (3-блокировкой) (4.20). 579 Глава 15. Параллельность маловероятных случаях, когда данная транзакция дважды обращается к одному и тому же кортежу. Тем не менее существуют весомые аргументы в защиту повсеместного использования уровня изоляции ПС вместо уровня СК. Дело в том, что выполнение транзакции на уровне СК не является двухфазным, а потому (как разъяснялось в предыдущем разделе) упорядоченность используемых в этом случае ~рафиков не гарантируется.

В качестве контраргумента следует указать тот факт, что на уровне изоляции СК в работе системы достигается более высокий уровень параллельности в сравнении с уровнем изоляции ПС (такая ситуация возможна, но вовсе не обязательна), 2. Реализация, поддерживающая любой иной уровень изоляции, кроме максимального, обычно включает те или иные средства явного управления уровнем параллельности. Обычно для этого используется явное указание операторов блокировки ЬОСК, что позволяет разработчикам создавать свои приложения таким образом, чтобы гарантировать необходимую безопасность и при отсутствии гарантий со стороны самой системы. Например, в СУБД ОВ2 для этого предусмотрен оператор ЬОСК ТйВЬЕ, который позволяет в приложениях с уровнем изоляции СК выполнить явную установку эксклюзивной блокировки данных, помимо тех блокнровок, которые система ОВ2 автоматически устанавливает для принудительного достижения этого уровня.

(Обратите внимание, что в стандарте БЯЬ нет никаких механизмов явного управления параллельностью; см. раздел 15.9.) В заключение следует отметить, что предшествующая характеристика уровня повторяемости считывания как уровня максимальной изоляции относится только к реализации уровня ПС в СУБД ОВ2. К сожалению, в стандарте языка БО) тот же термин, "повторяемость считывания", используется для описания уровня изоляции, который находится ниже максимального уровня (см.

раздел ! 5.9). 15.8. Блокировка намерения До сих пор в этой главе предполагалось, что блокировке подвергается отдельный кортеж. Однако, в принципе, не существует никаких ограничений на блокировку больших или меньших единиц данных, например всей переменной-отношения, всей базы данных нли (пример противоположного характера) о~дельного атрибута внутри заданного кортежа.

Уровень блокируемых объектов определяется степенью детализации блокировки 115.9), 115.10). Как обычно, здесь наблюдается компромисс между степенью детализации и параллельностью: чем мельче обьекты детализации, тем выше уровень параллельности в системе; чем крупнее объекты детализации, тем меньше блокировок можно будет установить, а значит потребуется контролировать. В результате снизятся соответствующие накладные расходы (т.е.

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

Получив от транзакции Т подобный запрос, система должна быть способна проверить наличие блокировок, установленных ранее другими транзакциями 580 Чаппь 1)г управление транзакг1иями для любых кортежей этой переменной-отношения К. И если хотя бы одна подобная блокировка была установлена, то запрос транзакции Т выполнить в данный момент будет невозможно. Но как система сможет обнаружить конфликт такого рода? Очевидно, что крайне нежелательно проверять в каждом из кортежей переменной-отношения К наличие установленной для него блокировки со стороны какой-либо другой транзакции. Не менее нежелательна и тотальная проверка всех установленных в системе блокировок, не является ли какая-то из них блокировкой некоторого кортежа отношения К.

Вместо этого можно ввести еще один протокол, а именно — протокол блокировки намерения, в соответствии с которым, прежде чем транзакции будет разрешено запросить установку блокировки для кортежа, она должна будет установить блокировку (называемую блокировкой намерения; подробности приводятся ниже) на всю переменную-отношение, в которой этот кортеж находится. Тогда обнаружить рассмотренную выше конфликтную ситуацию будет значительно проще, поскольку проверку существования блокировок кортежей можно будет выполнять на уровне переменных-огпношений. Как уже упоминалось, установка Х- и Б-блокировок имеет смысл как для отдельных кортежей, так н для переменных-отношений в целом. В соответствии с [15.8[ и [15.9! можно ввести три типа блокировки намерения, которые имеют смысл для переменных- отношений в целом, но не для отдельных кортежей: разделяемая блокировка намерения [1и!еп! Язагед — !5), эксклюзивная блокировка намерения (1пгепг еХс!цз!че — 1Х) н разделяемая эксклюзивная блокировка намерения (эпагед 1пгеп! еХс!цз!че — В!Х).

Ниже приводятся неформальные определения всех этих видов блокнровок (предполагается, что транзакция Т устанавливает блокировку рассматриваемого типа для переменной-отношения К), причем для полноты изложения приводятся также определения Б- и Х-блокировок. ° 1$-блокировка. Транзакция Т намеревается установить Б-блокировки для отдельных кортежей переменной-отношения К, чтобы получить гарантию стабильности состояния этих кортежей в процессе их обработки.

° 1Х-блокировка. В дополнение к действиям, описанным выше в определении 18- блокировки, транзакция Т сможет обновлять отдельные кортежи переменной- отношения К и, следовательно, устанавливать для них Х-блокировки. ° Б-блокировка. Транзакция Т допускает параллельное считывание данных из переменной-отношения К, но запрещает их обновление. Сама транзакция Т не имеет права обновлять какие-либо кортежи переменной-отношения К. ° ЯХ-блокировка.

В определении этой блокировки комбинируются возможности б- и! Х-блокировок, т.е. транзакция Т допускает параллельное считывание данных из переменной-отношения К, но запрещает их обновление. В дополнение к этому транзакция Т имеет право обновлять отдельные кортежи переменной-отношения К, для которых устанавливаются Х-блокировки. ° Х-блокировка. Транзакция Т не допускает никакого параллельного доступа к переменной-отношению К. Сама транзакция Т либо может, либо не может обновлять произвольные кортежи переменной-отношения К. Формальные определения этих пяти типов блокировки можно дать с помощью представленной на рис. 15.! !матрицы совместимости, которая является расширенной версией матрицы, обсуждавшейся выше, в разделе ! 5.3.

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

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

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

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