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

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

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

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

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

Примеры таких систем, которые мырассмотрим в главе 9, — это SOS [409] и Globe [471]. Преимущество осведом­ленных о репликации объектов состоит в том, что они могут реализовать специ-6.1. Обзор333фическую для объекта стратегию репликации, подобно тому, как параллельноработающие объекты могут обрабатывать параллельные обращения каким-ни­будь особым образом.Реплицированный—••у^ объект " ^ j — -ПромежуточныйуровеньСетевая ОССетьЗависящийот объектапротоколрепликацииРеплицированный--—^объект \ j — -ПромежуточныйуровеньПромежуточныйуровеньСетевая ОССетевая ОСПромежуточныйуровеньПротоколСетевая ОС"репликации»промежуточногоуровняСетьРис.

б.З. Распределенная система для осведомленных о репликациираспределенных объектов (а). Распределенная система,отвечающая за управление репликами (б)Второй, более общий вариант обеспечения непротиворечивости параллельныхобъектов — сделать ответственной за управление репликацией распределеннуюсистему, как это показано на рис.

6.3, б. В частности, распределенная система от­вечает за то, чтобы параллельные обращения перенаправлялись различным реп­ликам в правильном порядке. Такой подход используется, в частности, в системеPiranha [281], которая предоставляет средства для помехоустойчивых, полностьюупорядоченных и причинно упорядоченных обращений к объектам в технологииCORBA.

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

Рассмотрим про­цесс Р, который обращается к локальной реплике Л/'раз в секунду, в то время каксама реплика обновляется М раз в секунду. Допустим, что обновление полно­стью изменяет предьщущую версию локальной реплики. Если Л^«М, то есть соот-334Глава 6. Непротиворечивость и репликацияношение обращений к обновлениям очень низкое, мы попадаем в такую ситуацию,когда обращений ко многим обновленным версиям со стороны Р попросту не бу­дет и задействовать сетевую связь для доставки этих версий бесполезно.

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

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

Так, например, реп­ликам может потребоваться договориться о глобальном упорядочении операцийс использованием механизма отметок времени Лампорта или завести координа­тора, который будет диктовать им порядок действий. Глобальная синхронизацияпросто отнимет массу времени на взаимодействие, особенно если реплики раз­бросаны по глобальной сети.Итак, мы оказались перед дилеммой. С одной стороны, остроту проблем мас­штабируемости можно снизить, используя репликацию и кэширование, которыевызовут рост производительности.

С другой стороны, чтобы поддерживать всекопии в актуальном состоянии, обычно требуется глобальная синхронизация, ко­торая чересчур сильно влияет на производительность. Лекарство может оказать­ся хуже болезни.Во многих случаях единственное реальное решение состоит в том, чтобы по­жертвовать ограничениями. Другими словами, если мы снимем требование обатомарности операций обновления, мы сможем отказаться от необходимостимгновенной глобальной синхронизации, выиграв при этом в производительно­сти. Ценой за это станет ситуация возможной неодинаковости копий. То, в какойстепени мы можем пожертвовать непротиворечивостью, зависит от вариантов до­ступа к реплицированным данным и вариантов их обновления, а также от задач,в которых используются эти данные.6.2.

Модели непротиворечивости, ориентированные на данные335В следующем разделе мы сначала рассмотрим ряд моделей непротиворечиво­сти, которые позволят нам дать точное определение непротиворечивости. Затеммы продолжим наш разговор о различных способах реализации этих моделей спомощью протоколов распределения и протоколов непротиворечивости. Различ­ные подходы к классификации непротиворечивости и реплицирования можнонайти в [176, 492].6.2. Модели непротиворечивости,ориентированные на данныеПо традиции непротиворечивость всегда обсуждается в контексте операций чте­ния и записи над совместно используемыми данными, доступными в распреде­ленной памяти (разделяемой) или в файловой системе (распределенной).

В этомразделе мы задействуем общий термин хранилище данных {data store). Хранили­ще данных может быть физически разнесено по нескольким машинам. В частно­сти, каждый из процессов, желающих получить доступ к данным из хранилища,может означать наличие доступной через хранилище локальной (или располо­женной неподалеку от него) копии данных. Операции записи распространяютсяи на другие копии, как это показано на рис. 6.4. Операции над данными называ­ются операциями записи, если они изменяют данные. Все прочие операции счи­таются операциями чтения.ПроцессПроцессПроцессРаспределенноехранилище данныхРис.

6.4. Обобщенная организация логического хранилища данных, физическираспределенного и реплицируемого по нескольким процессамМодель непротиворечивости {consistency model), по существу, представляет со­бой контракт между процессами и хранилищем данных. Он гласит, что если про­цессы согласны соблюдать некоторые правила, хранилище соглашается работатьправильно. Обычно процесс, выполняющий операцию чтения элемента данных,ожидает, что операция вернет значение, соответствующее результату последнейоперации записи этих данных.В отсутствие глобальных часов трудно точно определить, какая из операцийзаписи была последней. Нам нужно ввести другие, альтернативные определения,которые приведут к созданию моделей непротиворечивости. Каждая модель будет336Глава 6. Непротиворечивость и репликацияуспешно ограничивать набор значений, которые может возвратить операция чте­ния над элементом данных.

Как можно догадаться, модели с минимальным объ­емом ограничений использовать проще, а модели с максимальными ограниче­ниями — труднее. Плата за это, разумеется, состоит в том, что простые моделиработают хуже, чем сложные. Такова жизнь. Дополнительную информацию помоделям непротиворечивости можно почерпнуть в [4, 303].6 . 2 . 1 . Строгая непротиворечивостьНаиболее жесткая модель непротиворечивости называется строгой непротиворе­чивостью {strict consistency). Она определяется следующим условием: всякое чте­ние элемента данных х возвращает значение, соответствуюш,ее результату по­следней записи X.Это определение естественно и очевидно, хотя косвенным образом подразу­мевает существование абсолютного глобального времени (как в классической фи­зике), в котором определение «последней» однозначно.

Однопроцессорные сис­темы традиционно соблюдают строгую непротиворечивость, и программисты такихсистем склонны рассматривать такое поведение, как естественное. Рассмотримследующую программу:а = 1: а = 2: p r 1 n t ( a ) ;Система, в которой эта программа напечатает 1 или любое другое значение,кроме 2, быстро приведет к появлению толпы возбужденных программистов имассе полезных мыслей.Для системы, в которой данные разбросаны по нескольким машинам, а до­ступ к ним имеет несколько процессов, все сильно усложняется. Допустим, чтоX — это элемент данных, хранящийся на машине В. Представим, что процесс, ра­ботающий на машине Л, читает х в момент времени Т1, то есть посылает В сооб­щение с требованием возвратить х.

Чуть позже, в момент времени 72, процесс смашины В производит запись х. Если строгая непротиворечивость сохраняется,чтение должно всегда возвращать прежнее значение, которое не зависит от того,где находятся машины и насколько мал интервал между Т1 и Т2. Однако еслиТ2-Т1 равно, скажем, одной наносекунде, а машины расположены в трех метрахдруг от друга, то чтобы запрос на чтение от АкВ дошел до машины раньше В от­правления запроса на запись, он должен двигаться в 10 раз быстрее скоростисвета, а это противоречит теории относительности Эйнштейна. Разумно ли про­граммистам требовать, чтобы система была строго непротиворечивой, даже еслиэто требование противоречит законам физики?Проблема со строгой непротиворечивостью состоит в том, что она завязана наабсолютное глобальное время. В сущности, в распределенной системе невозмож­но установить на каждую операцию уникальную отметку времени, согласован­ную с действительным глобальным временем.

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

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

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

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