Distributed System L-9 (Лекции по распределённым системам)

PDF-файл Distributed System L-9 (Лекции по распределённым системам) Распределённые системы (14046): Лекции - 10 семестр (2 семестр магистратуры)Distributed System L-9 (Лекции по распределённым системам) - PDF (14046) - СтудИзба2017-12-22СтудИзба

Описание файла

Файл "Distributed System L-9" внутри архива находится в папке "Лекции по распределённым системам". PDF-файл из архива "Лекции по распределённым системам", который расположен в категории "". Всё это находится в предмете "распределённые системы" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "распределённые системы" в общих файлах.

Просмотр PDF-файла онлайн

Текст из PDF

Распределенныевычислительные системыЛекция №9:Распределенные объектные транзакцииАлексей В. Бурдаков, к.т.н.burdakov@usa.net9-1План лекции• Принципы транзакций• Управление одновременным выполнением• Протокол двухфазной фиксации• Долговременное хранение объектов9-21Проблема• Что произойдет если отказ случится в процессемодификации ресурса?• Какие операции были завершены?• Какие не завершены и д.б. повторены?• В каком состоянии будут находиться ресурсы?• Целостность данных в этом случае может бытьнарушена• Распределенные системы могут иметьмножество точек отказа9-3Проблема (продолжение)• Одновременное обращение к объектам• Возможность перезаписи результатов другойтранзакции• Целостность данных может также быть нарушена• В распределенной системе одновременныеобращения более вероятны нежели вцентрализованной9-42Концепция транзакций• ACID•Atomicity (атомарность)•Consistency (непротиворечивость)•Isolation (изолированность)•Durability (долговечность) – долговременное хранение• Фиксация и откат транзакций• Плоские и вложенные транзакции• Централизованные и распределенныетранзакции9-5Концепция транзакций• Транзакция – это последовательность объектныхзаявок, сгруппированных таким образом, что ихвыполнение обладает так называемымисвойствами ACID• Транзакции позволяют ассоциироватьопределенную семантику выполнения споследовательностью объектных заявок9-63ACID• Атомарность (atomicity) – транзакция либо завершенаполностью, либо полностью отменена.

Вносит вклад вобеспечение прозрачности отказов.• Непротиворечивость (consistency) – гарантирует, чтопоследовательность операций оставит набор ресурсов внепротиворечивом состоянии.• Изолированность (isolation) – гарантируетизолированное выполнение транзакции независимо отдругих конкурирующих транзакций.• Долговечность (durability) – после завершениятранзакции выполненные изменения становятсядолговечными даже в случае аварийного завершенияпроцесса.9-7Плоские транзакцииBeginCommitПлоская транзакцияBeginСбойПлоская транзакцияBeginAbortПлоскаятранзакция9-84Вложенные транзакцииBeginCommitРодительская транзакцияBeginBeginCommitДочерняя транз.CommitДочерняя транз.BeginCommitДочерняя транз.9-9Управление транзакциями: клиент исервер• В случае управления транзакциями сервером онможет взять на себя заботу о начале изавершении транзакции• В случае управления со стороны клиентасерверные объекты должны реализовыватьфункции транзакций (начала, отмены ификсации), а также функции совместного доступа(блокировка ресурса и т.п.)9-105План лекции• Принципы транзакций• Управление одновременным выполнением• Протокол двухфазной фиксации• Сервисы распределенных объектных транзакций9-11Управление совместным доступом• Компоненты распределенных систем используютразделенные ресурсы конкурентно:••••Компоненты технического обеспеченияРесурсы ОСБДОбъекты• Доступ к некоторым ресурсам д.б.

организовантак, чтобы исключить одновременный доступ• Записи БД• Объекты CORBA9-126Мотивация• Конкурентный доступ и обновления могут вести кследующим последствиям:• Потерянные обновления (lost updates)• Противоречивый анализ (inconsistent analysis)• Пример потерянных обновлений:• Получение денег из банкомата и• Кредитование счета• Пример противоречивого анализа:• Перевод средств с одного счета на другой• Подсчет баланса счетов9-13ПримерDirectBanking+ funds_transfer(from : Account, to : Account, amount : float)Account- balance : float = 0+ credit(amount : float)+ debit(amount : float)+ get_balance() : floatReporting+ sum_of_accounts(set : Account[]) : float9-147Примерclass Account {protected:float balance;public:float get_balance() {return balance;};void debit(float amount){float new=balance-amount;balance=new;};void credit(float amount) {float new=balance+amount;balance=new;};};9-15Потерянные обновленияCustomer@ATMt0t1t2t3t4t5t6Clerk@CounteranAcc->debit(50){anAcc->credit(50){new=25;new=125;balance=25;}balance=125;}Balance7575757525125125Time9-168Противоречивый анализFunds Transfert0t1t2t3t4t5t6t7Inland Revenue Report Acc1Acc2 SumAcc1->debit(7500){sum=0;75000new=0;75000balance=0;sum+=Acc2->get_balance();00}00Acc2->credit(7500){00new=7500;00balance=7500;sum+=Acc1->get_balance();0 7500}0 750000000000Time9-17Обеспечение параллельной работы• Пессимистический подход• Предпосылка: параллельный доступ скорее всегопроизойдет• Блокирование ресурсов для исключения возможностипараллельного доступа с помощью 2-х фазнойблокировки• Оптимистический подход• Предпосылка: параллельный доступ скорее всего непроизойдет• Ведение идентификаторов строк и их контроль вслучае обновления:ROWID в SQLBase9-1892-х фазная блокировка• Большинство популярных СУБД реализуютименно этот метод блокировки• Конкурентные процессы запрашиваютблокировки у менеджера блокировок• Менеджер блокировок предоставляетблокировки, если они не конфликтуют с ужепредоставленными блокировками9-19Блокировки• Блокировка является признаком,свидетельствующим о том, что ресурсиспользуется процессом в определенном режиме• Минимальные режимы блокировки: чтение изапись• При 2-х фазном блокировании процессы сначалаполучают блокировки, а после – освобождают9-2010Блокировки• Процессы получают блокировки до доступа кресурсам и освобождают после• Блокировки обеспечивают сериализуемость(последовательное выполнение)• Типичный профиль блокирования представленна рисунке ниже:Кол-воблокировокВремя9-21Совместимость блокировок• Матрица совместимости блокировокRR+W-W--9-2211Гранулярность блокировок• При высокой степени конкурентного доступаиспользуется мелкогранулярные блокировки• Мелкогранулярные блокировки приводят кнеобходимости использования большогоколичества блокировок• Большое число блокировок ведет к высокимиздержкам• Иерархические блокировки могут служитькомпромиссом9-23Иерархические блокировки• Применяются для композитных ресурсов,например:• Файл• Набор или последовательность• Намерение чтения или записи присваиваетсяконтейнерам объектов• Матрица совместимостиIRRIWWIR+++-R++-IW++-W9-2412План лекции• Принципы транзакций• Управление одновременным выполнением• Протокол двухфазной фиксации• Долговременное хранение объектов9-25Сервис контроля совместногодоступа CORBAApplicationObjectsDomainInterfacesCORBAfacilitiesObject Request BrokerCORBAservicesConcurrencyControl9-2613Сервис контроля совместногодоступа CORBA• Реализует пессимистическую стратегиюблокировок• Спецификации сервиса контроля совместногодоступа приняты в 1994• Целью данного сервиса является обеспечениемеханизма обеспечивающего контроль засовместным доступом к объектам так, что ониостаются в непротиворечивом состоянии• Сервис предоставляет интерфейс дляпредоставления 2-х фазных блокировок9-27Матрица совместимости блокировок• Поддержка иерархических блокировок• Матрица совместимости блокировок•IR – намерение чтения•IW – намерение записи•U – усиление (блокировка чтения, конфликтующаясама с собой, позволяет снизить вероятность взаимнойблокировки)•W – запись•R – чтениеIRRUIWWIR++++-R+++-U++-IW++-W9-2814Наборы блокировок (Lockset)• Набор блокировок ассоциируется с ресурсом(обычно в реализации с данным ресурсом)• Каждый разделенный ресурс имеет наборблокировок• Операции данного ресурса получают блокировкидо того как они получают доступ или изменяютресурс• Для вложенных транзакций правилоослабляется: вложенные транзакции могутприсваивать себе родительские транзакции9-29IDL интерфейсinterface LocksetFactory {LockSet create();};interface Lockset {void lock(in lock_mode mode);boolean try_lock(in lock_mode mode);void unlock(in lock_mode mode);void change_mode(in lock_mode held,in lock_mode new);};9-3015План лекции• Принципы транзакций• Управление одновременным выполнением• Протокол двухфазной фиксации• Сервисы распределенных объектных транзакций9-312-х фазная фиксация транзакций• Роли:• Транзакционный клиент• Транзакционный сервер• Координатор9-3216Координатор• Управляет выполнением транзакций• Обрабатывает вызовы начала, отмены ификсации транзакций• Распределяет системные уникальныетранзакционные идентификаторы• Различные транзакции могут иметь различныекоординаторы транзакций9-33Транзакционный сервер• Любой компонент с ресурсом изменяемым врамках транзакционного управления• Транзакционные сервер должен знать своегокоординатора• Должен зарегистрировать свое участие втранзакции у координатора• Должен реализовывать 2-х фазный протоколфиксации9-3417Транзакционный клиент• Взаимодействует с транзакциями через координатор• Вызывает сервисы координатора для начала,завершения и отмены транзакций• Реализация транзакций прозрачна для клиентов9-352-х фазная фиксация• Множество распределенных автономных серверов• Для общей фиксации все серверы должны быть готовы кфиксации• Если один из серверов не может зафиксироватьизменения, то все серверы должны отменить фиксацию• Однофазный протокол не достаточен в этом случае• Необходимо использовать 2 фазы:•Голосование•Завершение9-36182-х фазная фиксация: фаза 1• Фаза голосования• Координатор спрашивает могут ли все серверыфиксировать транзакцию• Если да, то отвечает «ДА»• Если нет, то отменяет транзакцию и отвечает «НЕТ»• Таким образом сервер может самостоятельно отменить,но не может самостоятельно зафиксировать транзакцию9-372-х фазная фиксация: фаза 2• Фаза завершения• Координатор собирает все голоса и если всеположительны, то командует «зафиксировать», если нет,то «отменить»• Серверы подтверждают команду «зафиксировать» позавершению таковой9-3819План лекции• Принципы транзакций• Управление одновременным выполнением• Протокол двухфазной фиксации• Сервисы распределенных объектных транзакций9-39Сервис объектных транзакцийCORBA• OTS – Object Transaction Services (Сервисобъектных транзакций)• Определен в 1994 году в качестве части наборасервисов CORBA• Данный сервис позволяет:• Сформировать серию вызовов и обращений кобъектам в единую транзакцию, обеспечиваяатомарность и долговечность• Организовать вложенные транзакции• Сервис объектных транзакций опирается насервис контроля одновременного доступа дляобеспечения свойства изоляции9-4020Интерфейсы IDL<<Interface>>TransactionFactory+ create()<<Interface>>Current+ begin()+ commit()+ rollback()+ rollback_only()+ get_control()+ get_status()<<Interface>>Control+ get_terminator()+ get_coordinator()<<Interface>>Coordinator<<Interface>>Resource+ prepare()+ rollback()+ commit()+ commit_one_phase()+ forget()<<Interface>>Terminator+ commit()+ rollback()+ register_resource()+ get_status()9-41Интерфейс Currentinterface Current {void begin() raises (...);void commit (in boolean report_heuristics)raises (NoTransaction, HeuristicMixed,HeuristicHazard);void rollback() raises(NoTransaction);Status get_status();string get_transaction_name();Coordinator get_control();Coordinator suspend();void resume(in Coordinator which)raises(InvalidControl);9-42};21Интерфейс Coordinatorinterface Coordinator {Status get_status();Status get_parent_status();Status get_top_level_status();boolean is_same_transaction(in Coordinator tr);boolean is_related_transaction(in Coordinator tr)RecoveryCoordinator register_resource(in Resource r) raises(Inactive);void register_subtran_aware(in SubtransactionAwareResource r)raises(Inactive, NotSubtransaction);…9-43};Интерфейс Resourceenum Vote {VoteCommit,VoteRollback,VoteReadOnly};interface Resource {Vote prepare();void rollback() raises(...);void commit() raises(...);void commit_one_phase raises(...);void forget();};9-4422Пример перевода средствbegin()debit()Acc1@bankA Acc2@bankB:Resource:Resourcecredit()commit():Current :Coordinatorget_control()register_resource()get_control()register_resource()prepare()prepare()commit()commit()9-45План лекции• Принципы транзакций• Управление одновременным выполнением• Протокол двухфазной фиксации• Сервисы распределенных объектных транзакций9-4623Транзакции в MTSЭтап 1Админситр.MTSКлиентCoCreateInstanceContextОбъектMTSODBCDriverObjectCreate New TransactionКоординаторраспределенныхтранзакций (DTC)Менеджерресурсов 1Менеджерресурсов 29-47Транзакции в MTSЭтап 2Админимтр.MTSКлиентКредитоватьОбъектMTSODBC DriverContextGetTransaction IDObjectEnlist RM 1 inTransactionInform RM 1and accessdataКоординаторраспределенныхтранзакций (DTC)Менеджерресурсов 1Менеджерресурсов 29-4824Транзакции в MTSЭтап 3Администр.MTSКлиентДебетоватьОбъектMTSODBC DriverContextGetTransaction IDObjectEnlist RM 2 inTransactionInform RM2and accessdataКоординаторраспределенныхтранзакций (DTC)Менеджерресурсов 2Менеджерресурсов 19-49Транзакции в MTSЭтап 4Администр.MTSКлиентCommitContextObjectОбъектMTSODBCDriverSet CompleteCommit RequestPrepareКоординаторраспределенныхтранзакций (DTC)Менеджерресурсов 1PrepareМенеджерресурсов 29-5025План лекции• Принципы транзакций• Управление одновременным выполнением• Протокол двухфазной фиксации• Сервисы распределенных объектных транзакций9-51Управление транзакциями в JavaApplicationApplication ServerResource ManagerUserTransaction Transaction Manager XAResourceJava Transaction APIJava Transaction ServiceCORBA Transaction Service9-5226Транзакционный интерфейс Java<<Interface>>UserTransaction+ begin()+ commit()+ rollback()+ getStatus()<<Interface>>TransactionManager+ begin()+ commit()+ getStatus()+ getTransaction()+ resume()+ rollback()+ suspend()<<Interface>>Transaction+ enlist()0..*+ delist()+ commit()+ rollback()+ getStatus()<<Interface>>XAResource+ prepare()+ commit()+ rollback()+ forget()9-53Ключевые моменты• Распределенная объектная транзакция –атомарная, сохраняющая непротиворечивость,изолированная и долговечно хранимаяпоследовательность объектных запросов• Объекты, принимающие участие враспределенных объектных транзакциях,выполняют роль транзакционных клиентов,серверов и координаторов• Изоляция достигается с помощью двухфазнойблокировки и может быть либо делегированаСУБД, либо явно обеспечена на уровне объектов9-5427Ключевые моменты• Атомарность достигается с помощью двухфазнойфиксации транзакции, состоящей из фазголосования и фиксации9-55Литература / Internet источники• В.

Эммерих Конструирование распределенныхобъектов. - М.:Мир. - 2002.• М.Р. Когаловский Энциклопедия технологий базданных. - М.: ФС. - 2002.• Ю.А. Григорьев, А.Д. Плутенко. - Жизненный циклпроектирования распределенных баз данных. Благовещенск. - 1999.• Э. Таненбаум, М. Ван Стеен Распределенныесистемы. Принципы и парадигмы. – СПб.: Питер,2003. – 877 с.: ил. – (Серия «Классика computerscience»)• www.omg.org9-5628.

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