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

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

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

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

Вместе с другими промежуточными резуль­татами теряются и результаты завершившейся дочерней транзакции. Таким об­разом, долговечность, о которой мы говорили, применима только к транзакциямверхнего уровня.Поскольку глубина вложенности транзакций может быть произвольно глубо­кой, для сохранения правильности необходимо серьезное администрирование.Однако семантика ясна. Когда начинается любая транзакция или вложеннаятранзакция, создается закрытая копия данных всей системы. Если транзакцияпрерывается, ее внутренняя вселенная исчезает, как будто ее никогда и не было.Если она завершается, ее внутренняя вселенная замещает родительскую. Такимобразом, если дочерняя транзакция завершается и начинается новая дочерняятранзакция, вторая из них получает возможность работать с результатами, соз­данными первой. Таким же образом, если прерывается объемлющая (верхнегоуровня) транзакция, все вложенные в нее дочерние транзакции также преры­ваются.Распределенные транзакцииВложенные транзакции важны для распределенных систем, потому что OHPI пре­доставляют естественный способ распределения транзакций по нескольким ма­шинам.

Однако вложенные транзакции обычно делят работу исходной транзак­ции логически. Например, транзакция, в ходе которой следовало зарезервироватьбилеты на три различных самолета (см. листинги 5.1 и 5.2), может быть логиче­ски разделена на три вложенные транзакции. Каждая из этих вложенных транз­акций может управляться отдельно, независимо от остальных двух.Однако логическое разделение вложенных транзакций на вложенные транз­акции не обязательно означает, что все распределение в этом и состоит.

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

Такие транзакции известны под названиемраспределенных транзакций {distributed transactions). Разница между вложен­ными и распределенными транзакциями невелика, но существенна. Вложенныетранзакции — это транзакции, которые логически разделяются на иерархическиорганизованные дочерние транзакции. В противоположность им распределен­ные транзакции логически представляют собой плоские, неделимые транзакции,312Глава 5. Синхронизациякоторые работают с распределенными данными. Эту разницу иллюстрируетрис. 5.17.Вложенная транзакцияДочерняятранзакцияРаспределенная транзакцияДочерняятранзакцияДочерняятранзакцияБаза данных \ / База данныхавиарейсов\ /отелейДве различные (независимые)базы данныхДочерняятранзакцияРаспределеннаябаза данных1У„^Д^® физически разделенные частиодной базы данныхабРис.

5.17. Вложенная транзакция (а), распределенная транзакция (б)Основная проблема распределенных транзакций в том, что для блокировкиданных и подтверждения транзакции необходимы отдельные распределенныеалгоритмы. Распределенную блокировку данных мы рассмотрим ниже. Деталь­ное рассмотрение распределенных протоколов подтверждения транзакции мы от­ложим до главы 7, в которой рассмотрим отказоустойчивость и механизмы вос­становления, к которым относится и протокол подтвержденрш.5.6.3. РеализацияТранзакции кажутся отличной идеей, но как их реализовать? Этот вопрос мысейчас и рассмотрим. Чтобы упростить дело, мы ограничимся транзакциями вфайловой системе. Должно быть понятно, что если каждый процесс, выполняю­щий транзакцию, просто обновляет файл там же, где файл используется, транзак­ция не будет атомарной и при прерывании транзакции все изменения не исчезнутволшебным образом.

Понятно, что нужен другой метод. Обычно используются тедва метода, которые описаны ниже.Закрытое рабочее пространствоКонцептуально, когда процесс начинает транзакцию, он получает закрытое рабочее пространство, содержащее все файлы, к которым он хочет получить доступ.Пока транзакция не завершится или не прервется, все операции чтения и записибудут происходить не в файловой системе, а в закрытом рабочем пространстве.Это утверждение прямо приводит нас к первому методу реализации — созданиюдля процесса, в момент начала транзакции, закрытого рабочего пространства.Проблема этой методики состоит в том, что цена копирования всего подрядв закрытое рабочее пространство такова, что равносильна запрету.

Возможна, од­нако, различная оптимизация. Первый вариант оптимизации основан на том со­ображении, что если процесс только читает файл, но не изменяет его в создании5.6. Распределенные транзакции313закрытой копии нет необходимости. Он может использовать реальный объект(если только тот не меняется в процессе транзакции). Соответственно, когдапроцесс начинает транзакцию, он должен создать закрытое рабочее пространство,в котором ничего нет, за исключением указателя на рабочее пространство своегородителя.

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

Однако когда блокфайла модифицируется, создается копия этого блока, и в индекс вставляется ад­рес копии, как показано на рис. 5.18, а. После этого блок можно изменять, неоказывая влияния на оригинал. Добавляемые блоки обрабатываются точно также. Новые блоки иногда называют теневыми блоками {shadow blocks).ИндексЗакрытоерабочеепространствоИсходный ^---индексШ 0П П П)Ь^Свободные блокиРис. 5.18. Индекс файла и дисковые блоки для файла из трех блоков (а).

Ситуация после того,как транзакция модифицировала блок О и добавила блок 3 (б).Ситуация после подтверждения транзакции {в)Как молшо видеть на рис. 5.18, б, процесс, выполняющий транзакцию, видитмодифицированный файл, а все остальные процессы продолжают работать с ис-314Глава 5. Синхронизацияходным файлом. В особенно сложных транзакциях закрытое рабочее простран­ство может содержать не один, а большое количество файлов. Если транзакцияпрерывается, закрытое рабочее пространство просто удаляется и все закрытыеблоки, которые оно содержало, возвращаются в список свободных.

Если тран­закция завершается, закрытые блоки в ходе атомарной операции перемещаютсяв рабочее пространство родителя, как показано на рис. 5.18, в. Блоки, которыебольше не нужны, возвращаются в список свободных.Эта схема работает также и для распределенных транзакций. В этом случаеаналогичный процесс начинается на каждой машине, содержащей файлы, к ко­торым в ходе транзакции будет производиться доступ.

Каждый процесс получа­ет свое собственное закрытое рабочее пространство так, как описано выше. Еслитранзакция прерывается, все процессы просто отказываются от своих закрытыхрабочих пространств. С другой стороны, при подтверждении транзакции произ­водятся локальные обновления, после чего транзакции можно считать полно­стью завершенными.Журнал с упреждающей записьюДругой традиционный метод реализации транзакций — это журнал с упреждаю­щей записью {write-ahead log). Согласно этому методу файлы действительно мо­дифицируются там же, где находятся, но перед тем, как какой-либо блок действи­тельно будет изменен, в журнал заносится запись со сведениями о том, какаятранзакция вносит изменения, какой файл и блок изменяются, каковы прежние иновые значения.

Только после успешной записи в журнал изменения вносятся вфайл.Ниже описано, как работает этот метод. В листинге 5.3 представлена простаятранзакция, которая использует две общие переменные (или другие объекты), хи у, инициализированные нулями.Листинг 5.3. ТранзакцияX = 0:У = 0:BEGINJRANSACTION:X = X + 1:У = У + 2;X = у * у:ENDJRANSACTION;Для каждой из трех инструкций тела транзакции до начала ее выполнениясоздается запись в журнале, которая содержит прежнее и новое значения, разде­ленные косой чертой:4- содержимое журнала перед выполнением первой инструкции (х=х+1:):[х=0/1]4 содержимое журнала перед выполнением второй инструкции (у=у+2:):[х=0/1][у=0/2]5.6. Распределенные транзакции315> содержимое журнала перед выполнением третьей инструкции (х=у*у;):[х=0/1][у=0/2][х=1/4]Если транзакция успешна, она подтверждается и в журнал добавляется за­пись о подтверждении, но структуры данных не изменяются, поскольку онии так изменены.

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

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

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