Главная » Просмотр файлов » Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)

Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 83

Файл №1162619 Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)) 83 страницаЭ. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619) страница 832019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Любые попытки Тпотребовать новой блокировки являются ошибкой профаммирования и при­водят к прерыванию транзакции Т.Точка бгокировкиФаза подъема\^^Фаза спада^Г"^Время — •SРис. 5 . 2 1 . Двухфазная блокировкаМожно доказать [139], что если все транзакции используют двухфазную бло­кировку, любой план, сформированный путем перекрытия этих транзакций, сериализуем. В этом причина популярности двухфазной блокировки.320Глава 5. СинхронизацияВо многих системах фаза спада не начинается до тех пор, пока транзакция неокончится подтверждением или прерыванием, что и приведет к снятию блокиро­вок, как показано на рис.

5.22. Такой режим, именуемый строгой двухфазной бло­кировкой {strict two-phase locking), имеет два серьезных преимущества. Во-первых,транзакция всегда считывает значения, записанные подтвержденной транзакци­ей, поэтому невозможно прерывание транзакции из-за того, что ее вычислениябазируются на недоступных данных. Во-вторых, любые наложения и снятия бло­кировок могут выполняться системой без использования транзакций: любые бло­кировки устанавливаются при доступе к элементу данных и снимаются по окон­чании транзакции. При таком поведении устраняются каскадные прерывания{cascaded aborts): отмена подтвержденной транзакции по той причине, что онаполучает элемент данных, который получать не должна.Точка бг окировкиФаза подъемаФаза спадаWS ^оQ.i/ОоъWWВсе блокировкиснимаютсяодновременно ^v^~^•уГ^Время — •Рис.

5.22. Строгая двухфазная блокировкаКак двухфазная блокировка, так и строгая двухфазная блокировка могут при­вести к тупикам. Если два процесса пытаются заблокировать одну и ту же парублоков, но в разном порядке, результатом будет взаимная блокировка, или тупик{deadlock). В этом случае используются традиционные технологии предотвраще­ния тупиков, такие как выполнение блокировок в некотором строго заданномпорядке. Также возможно обнаружение взаимных блокировок путем составле­ния полного графа транзакций, показывающего, какой процесс какую блокиров­ку создал и какую хочет создать, с последующей проверкой этого графа на цик­лы.

И наконец, когда заранее известно, что никакая блокировка не может принормальной работе длиться более t секунд, можно использовать схему с тайм-ау­том: если блокировка непрерывно принадлежит процессу более t секунд, это мо­жет происходить из-за взаимной блокировки.Существует несколько способов реализации двухфазной блокировки в рас­пределенных системах.

Допустим, что данные, с которыми мы работаем, разбро­саны по нескольким машинам. При централизованной двухфазной блокировке{centralized two-phase locking) за установку и снятие блокировок отвечает однамашина. Все менеджеры транзакций взаимодействуют с одним централизован­ным менеджером блокировок, который принимает от них запросы на блокиров-5.6. Распределенные транзакции321ку. После того как блокировка установлена, менеджер транзакций работает не­посредственно с менеджерами данных. Отметим, что при такой схеме элементыданных могут быть также реплицированы на несколько машин. После выполне­ния операции менеджер транзакций возвращает блокировку менеджеру блоки­ровок.При первичной двухфазной блокировке {primary two-phase locking) с каждогоэлемента данных делается первичная копия.

Блокировки устанавливает и сни­мает менеджер блокировок той машины, на которой размещена копия. Пер­вичная двухфазная блокировка работает практически так же, как и централи­зованная, за исключением того, что блокировка может быть распределена понескольким машинам.И, наконец, при распределенной двухфазной блокировке {distributed two-phaselocking) предполагается, что данные могут быть распределены по нескольким ма­шинам.

В противоположность первичной и централизованной двухфазной бло­кировке планировщики каждой из машин отвечают не только за установку и сня­тие блокировок, но и за пересылку операций менеджерам данных (локальным).В этом смысле распределенная двухфазная блокировка значительно ближе к ба­зовой схеме двухфазной блокировки, но выполняется теперь на всех машинах,содержащих данные.Классическое исследование двухфазной блокировки для систем баз данныхи вообще управления параллельным выполнением можно найти в [47].Пессимистическое упорядочение по отметкам времениАбсолютно другой подход к управлению параллельным выполнением состоитв том, чтобы в момент начала каждой из транзакций Т присваивать ей отметкувремени ts{T).

Используя алгоритм Лампорта, мы можем убедиться в уникально­сти отметок времени, что в данном случае необходима. Каждая операция, являю­щаяся частью транзакции Г, также получает отметку времени ts{T). Кроме того,каждый элемент данных х в системе получает отметку времени чтения Z^SRD(X)и отметку времени записи ts^^Y(i^)• Отметка времени чтения соответствует отмет­ке времени транзакции, которая последней считывала х, а отметка времени запи­си соответствует отметке времени транзакции, которая последней записывала х.При использовании упорядочивания по отметкам времени, если две операциивступают в конфликт, менеджер данных выполняет сначала операцию с наимень­шей отметкой.Теперь представим себе, что планировщик получает от транзакции Т с отмет­кой времени ts операцию read{T,x), причем ts<tSwR{x).

Другими словами, онуведомляется о том, что операция записи значения х была произведена до началавыполнения Т. В этом случае транзакция Т просто прерывается. С другой сторо­ны, если ts > tswR{x), все правильно, и операция чтения выполняется обычнымобразом. Кроме того, ^RD(^) устанавливается в значение max{ts, ^5RD(^:)}.Точно таким же образом обстоит дело и при получении планировщиком оттранзакции Г с отметкой времени ts операции записи write{T,x).

Если ts< tSRD(x),нам остается только прервать транзакцию, поскольку текущее значение х былосчитано предыдущей транзакцией. Транзакция Т просто слишком запоздала.322Глава 5. СинхронизацияС другой стороны, если ts > tSYcoipc), то, поскольку никакая предыдущая транзак­ция не считывала значения х, нам предстоит изменить его. Таким же образом^ W R W устанавливается в max{ts, ^5WR(^)}.Для того чтобы лучше разобраться в упорядочении по отметкам времени, рас­смотрим следующий пример.

Представим себе три транзакции, Ти Тг и Гз. Тран­закция Т\ отработала уже давно и использовала все элементы данных, необходи­мые транзакциям Т2 и Гз, так что на всех этих элементах стоят отметки временичтения и записи ts{T\). Транзакции Т2 и Гз начинаются параллельно с отметками^5(Г2)<^(Гз).Рассмотрим сначала чтение транзакцией Гг элемента данных х.

Пока транзак­ция Гз не подтверждена, обе отметки, 15л^к{х) и 1зш^{х), будут иметь значениеts{T\), которое меньше, чем ts(T2). На рис. 5.23, аи б мы видим, что ts(T2) боль­ше, чем tswR(x) и ^5RD(X), так что запись допустима и будет предварительно вы­полнена (транзакция Гз еще не подтверждена). Она станет постоянной после за­вершения Гг. Теперь у элемента данных будет новая отметка времени записи,отметка времени транзакции Гг.tSRD(x)tSwR(x)|(Ti)|(Tl)А1з(Т2)|(Ti)tSRD(x)Пробнаязапись1з(Т2)к) к)tSRD(x)h)|(Т2)^OKВремяtSwR(x) tstent(x) ts(T2)|(Ti)Время'ts(T2)ts(T2)|(Ti)ВремяtSwR(x)'SWRM|(Т2)J|(Тз)|(Т2)OKВремя •ts(T2)^b)|(Тз)Время — ItSwR(x)|(Тз)Время — •Прерывание> Прерываниеts(T2)k)tSwR(x)|(Тз)Время •1з(Т2)b)tstent(x)|(Тз)ВремяРис.

5.23. Управление параллельным выполнением транзакцийс использованием отметок времениНа рис. 5.23, виг транзакции Г2 не везет. Транзакция Гз производит чтение(рис. 5.23, в) или запись (рис. 5.23, г) хи подтверждается. Транзакция Г2 преры­вается. Однако она может получить новую отметку времени и стартовать снова.Рассмотрим теперь чтение. На рис.

5.23, д конфликтов нет, и чтение можетбыть произведено немедленно. На рис. 5.23, е в середину встревает какой-то без­дельник и пытается записать х. Отметка времени этого ловкача меньше, чем у Г2,и поэтому Г2 просто дожидается, пока тот завершится, после чего считывает но­вый файл и продолжает работу.5.6. Распределенные транзакции323На рис. 5.23, ж транзакция 7з изменяет значение х и вновь подтверждается.А транзакции Гг снова приходится прерываться.

На рис. 5.23, з транзакция Гз на­ходится в процессе изменения х до тех пор, пока не подтверждается. ТранзакцияТ2 снова чересчур запоздала и должна быть прервана.Свойства отметок времени и блокировки различны. Когда транзакция стал­кивается с большими (устаревшими) отметками времени, она прерывается, бло­кировка же в сходных условиях либо ожидает, либо может быть выполненанемедленно. С другой стороны, при работе с отметками времени не бывает взаим­ных блокировок, а это большой плюс.Базовое упорядочение при помойки отметок времени существует в несколь­ких вариантах, среди которых следует отметить устойчивое упорядочение и мно­говариантное упорядочение. Подробности можно найти в [177, 337].Оптимистическое упорядочениепо отметкам времениТретий подход к выполнению нескольких транзакций в одно и то же время — этооптимистическое упорядочение по отметкам времени [244].

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

В этом случае каждаятранзакция изменяет свои данные в частном порядке, не пересекаясь с другими.В конце работы новые данные либо принимаются, либо отбрасываются, что при­водит нас к относительно простой и понятной схеме работы.Большое преимущество оптимистического управления параллельным выпол­нением транзакций состоит в том, что при его использовании достигается макси­мальный параллелизм и не бывает взаимных блокировок, поскольку никакойпроцесс никогда не ждет завершения блокировки. Недостаток такого управле­ния в том, что временами оно дает сбой, и нам приходится начинать транзакциюснова. В условиях высокой загрузки вероятность сбоев может существенно воз­расти, что делает оптимистическое управление плохим выбором.Как указывалось в [337], исследования оптимистического управления парал­лельным выполнением транзакций были сосредоточены в первую очередь на не­распределенных системах. Кроме того, создание коммерческих систем и прото­типов сильно затруднено, что делает невозможным сравнение подобных системс другими.324Глава 5.

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

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

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