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

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

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

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

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

Такие свойства, как непротиворечивость и изолированность,основаны на возможности управления выполнением параллельных транзакций,то есть транзакций, выполняющихся одновременно и над одним и тем же набо­ром совместно используемых данных.Цель управления параллельным выполнением транзакций состоит в том, что­бы позволить нескольким транзакциям выполняться одновременно, но таким об­разом, чтобы набор обрабатываемых элементов данных (например, файлов илизаписей базы данных) оставался непротиворечивым. Непротиворечивость дости­гается в результате того, что доступ транзакций к элементам данных организует­ся в определенном порядке так, чтобы конечный результат был таким же, каки при выполнении всех транзакций последовательно.Управление параллельным выполнением лучше всего можно понять в терми­нах трех менеджеров, организованных по уровням, как это показано на рис. 5.19.Нижний уровень предоставляет менеджера данных {data manager), который фи­зически осуществляет операции чтения и записи данных.

Менеджер данных ни­чего не знает о том, какая транзакция выполняет чтение или запись. На самомделе он вообще ничего не знает о транзакциях.Средний уровень представлен планировщиком {scheduler). Он несет основнуюответственность за правильность управления параллельной работой, определяя,какой транзакции и в какой момент разрешается передать операцию чтения илизаписи менеджеру данных. Он также планирует отдельные операции чтенияи записи с теми же гарантиями непротиворечивости и изолированности, что и для316Глава 5.

Синхронизациятранзакций. Позже мы рассмотрим планирование, основанное на использованииблокировок, и планирование, основанное на использовании отметок времени.ТранзакцииМенеджертранзакцийREAD/WRITEПланировщикМенеджерданныхBEGIN_TRANSACTIONEND_TRANSACTIONLOCK/RELEASEилиоперациис отметками времениВыполнение чтения/записиРис. 5.19. Обобщенная организация менеджеровдля управления транзакциямиНа самом верхнем уровне находится менеджер транзакций (transaction mana­ger), который отвечает, прежде всего, за атомарность и долговечность. Он обра­батывает примитивы транзакций, преобразуя их в запросы к планировщику.^\1Менеджертранзакций>^ПланировщикПланировщикг-X<1 'ПланировщикГ''МенеджерданныхМенеджерданныхМенеджерданныхМаш11наАМаш лиг ВМашк на СРис.

5.20. Обобщенная организация менеджеров для управленияраспределенными транзакциямиМодель, приведенная на рис. 5.19, может быть адаптирована к использованиюв распределенных системах, как показано на рис. 5.20. Каждая машина в этомслучае имеет своих планировщика и менеджера данных, которые совместно обес-5.6. Распределенные транзакции317печивают гарантии непротиворечивости локальных данных. Каждая транзакцияобрабатывается одним менеджером транзакций.

Последний работает с планиров­щиками отдельных машин. В зависимости от алгоритма управления параллель­ным выполнением транзакций планировщик также может работать с удаленнымименеджерами данных. Мы вернемся к разговору о распределенном управлениипараллельным выполнением чуть ниже.ИзолированностьОсновная задача алгоритмов управления параллельным выполнением — гаран­тировать возможность одновременного выполнения многочисленных транзакцийдо тех пор, пока они изолированы друг от друга.

Это значит, что итоговый резуль­тат их выполнения будет таким же, как если бы эти транзакции выполнялись од­на за другой в определенном порядке.В листинге 5.4 представлены три транзакции, которые выполняются одновре­менно в трех отдельных процессах. Если бы они выполнялись последовательно,итоговыми значениями переменной х были бы 1, 2 или 3, в зависимости от того,какая из транзакций выполнялась бы последней (х может быть совместно ис­пользуемой переменной, файлом или сущностью другого типа).Листинг 5 . 4 .

Три транзакции Т^, Т2 "^ ''"зBEGINJRANSACTIONX = 0:X = X + 1;ENDJRANSACTIONBEGINJRANSACTIONX = 0:X = X + 2:ENDJRANSACTIONBEGIN TRANSACTIONx"= 0 ;X = X + 3;ENDJRANSACTIONВ табл. 5.3 показаны различные способы упорядочивания, называемые плана­ми {schedules). План 1 реально сериализован. Другими словами, транзакции вы­полняются строго последовательно, так что они по определению удовлетворяютусловию сериализуемости. План 2 не сериализован, но также допустим, посколькув результате его выполнения значение х, которое будет получено после отработ­ки транзакций, соответствует значению, полученному при строго последователь­ном выполнении транзакций. Третий план недопустим, потому что в результатеего выполнения х становится равным 5, что при последовательном выполнениитранзакций невозможно.

Системе необходимо убедиться, что отдельные опера­ции перемелсаются правильно. Давая системе свободу выбора любой очередно­сти операций и проверяя корректность получаемых результатов, мы избавляемпрограммистов от необходимости реализовывать собственные взаимные исклю­чения, что упрощает их работу.318Глава 5. СинхронизацияТаблица 5.3.

Возможные планы по очередности выполнения операцийНомерпланаОчередность операцийПравильностьплана1х=0;х=х+1:х=0:х=х+2:х=0:х=х+3:Правильно2х=0:х=0:х=х+1:х=х+2:х=0:х=х+3:Правильно3х=0:х=0:х=х+1;х=0:х=х+2:х=х+3:НеправильноДля того чтобы разобраться в планах и управлении параллельным выполне­нием, нет необходимости точно знать, как именно переменные будут вычислять­ся. Другими словами, неважно, будет ли значение х увеличено на 2 или 3. Чтодействительно важно, так это то, что значение х изменится.

Соответственно, мыможем описать транзакцию как наборы операций чтения и записи определенныхэлементов данных. Так, например, каждая из трех транзакций, Ть Т2 и Тз, приве­денных в листинге 5.4, может быть представлена в виде последовательностей:write(Tl.x); read(Ti.x); wr1te(Ti,x)Основная идея управления параллельным выполнением состоит в том, чтобыправильно спланировать конфликтующие операции {conflicting operations).

Двеоперации конфликтуют, если они работают с одним и тем же элементом данных,и как минимум одна из них — это операция записи. В конфликте чтения-записи(read-write conflict) запись — это одна из операций. Кроме того, мы имеем делои с конфликтом двойной записи (write-write conflict), при этом не имеет значения,принадлежат ли конфликтующие операции к одной транзакции или к разным.Следует отметить, что две операции чтения никогда не конфликтуют между собой.Алгоритмы управления параллельным выполнением обычно классифициру­ются по способу синхронизации операций чтения и записи.

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

Если в этот момент обнару­живается конфликт, одна или более транзакций прерываются. Далее мы рассмот­рим два пессимистических и один оптимистический методы. Прекрасный обзорразличных подходов можно найти в [46].Двухфазная блокировкаСамый старый и наиболее широко используемый алгоритм управления парал­лельным выполнением транзакций — это блокировка {locking). В своей простей-5.6. Распределенные транзакции319шей форме, когда процесс в ходе транзакции нуждается в чтении или записи эле­мента данных, он просит планировщик заблокировать для него этот элемент дан­ных.

Точно так же, когда необходимость в этом элементе данных исчезает, плани­ровщика просят снять блокировку. Задача планировщика состоит в том, чтобыустанавливать и снимать блокировку таким образом, чтобы получать только до­пустимые планы выполнения. Другими словами, мы нуждаемся в примененииалгоритма, предоставляющего нам только сериализуемые планы.

Один из такихалгоритмов — двухфазная блокировка.При двухфазной блокировке (Two-Phase Locking, 2PL), которая продемонстри­рована на рис. 5.21, планировщик сначала, на фазе подъема {growingphase), уста­навливает все необходимые блокировки, а затем, на фазе спада {shrinking phase),снимает их. Говоря конкретнее, выполняются три правила, описанные в [47].4 Когда планировщик получает операцию орег{Т,х) от менеджера транзак­ций, он проверяет, не конфликтует ли эта операция с другими операция­ми, уже получившими блокировку. Если в наличии конфликт, операцияорег{Т,х) откладывается (и транзакция Г вместе с ней). Если конфликтанет, планировщик производит блокировку для элемента данных х и пере­дает операцию менеджеру данных.'f Планировщик никогда не снимает блокировку с элемента данных х, еслименеджер данных уведомляет его, что он осуществляет операцию, в кото­рой участвует этот элемент данных."¥ После того как планировщик снимает с данных блокировку, установлен­ную по требованию транзакции Г, он никогда не делает по требованиюэтой транзакции другую блокировку, при этом неважно, на какой элементданных транзакция Т требует установить блокировку.

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

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

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