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

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

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

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

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

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

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

Специальное внимание будет уделено реплицируемым объектам, к кото­рым в современных распределенных системах проявляется все больший интерес.И наконец, мы обсудим репликацию, как метод улучшения масштабируемости,и расскажем, почему рассуждения о непротиворечивости столь важны для нас.6.1.1. Доводы в пользу репликациив пользу репликации есть два основных довода ~ надежность и производитель­ность.

Во-первых, данные реплицируются для повышения надежности системы.Если файловая система реплицирована, она может продолжать свою работу по­сле сбоя в одной из реплик, просто переключившись на другую. Кроме того, под­держивая несколько копий, легче противостоять сбоям данных. Так, представимсебе, что существует три копии некоего файла и операции чтения и записи произ­водятся со всеми тремя. Мы можем защитить себя от единичной неудачной опе­рации записи, считая правильным значение, которое выдают как минимум двекопии.330Глава 6.

Непротиворечивость и репликацияДругой довод в пользу репликации данных — производительность. Реплика­ция повышает производительность, когда распределенную систему приходитсямасштабировать на множество машин и географических зон. Масштабированиена множество машин имеет место, например, когда возрастает число процессов,требующих доступа к данным, управляемым одним сервером.

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

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

Каждый раз приизменении копии она начинает отличаться от всех прочих. Соответственно, длясохранения непротиворечивости эти изменения должны быть перенесены и наостальные копии. То, как и когда следует переносить эти изменения, и определя­ет цену репликации.Чтобы разобраться в проблеме, рассмотрим постоянно растущее время досту­па к web-страницам. Если не предпринимать никаких специальных мер, загрузкастраницы с удаленного web-сервера может занимать до нескольких секунд.

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

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

Это, в свою очередь, может привести6.1. Обзор331к снижению общей производительности сервера. Ниже мы еще вернемся к кон­фликту «производительность против масштабируемости».6.1.2. Репликация объектовЧтобы лучше понять роль распределенных систем в том, что касается управленияданными (совместно используемыми), полезно рассматривать не отдельные дан­ные, а объекты. Достоинство объектов состоит в том, что они инкапсулируютданные и операции над ними. Это облегчает нам разделение операций, которыезависят от данных, и операций, которые от данных не зависят. Последний типопераций обычно встречается в распределенных системах общего назначения, на­пример тех, которые реализуются посредством многих описанных в этой книгесистем промежуточного уровня.Рассмотрим распределенный удаленный объект, совместно используемый мно­гими клиентами (рис.

6.1). До того как мы начнем думать о репликации удален­ного объекта на несколько машин, мы должны решить проблему защиты объектаот одновременного доступа нескольких клиентов. У этой проблемы существуютдва основных решения [75].Машина клиентаМашина сервераМашина клиентаСервер— ^,£^ппп^^—Iщ^шщ—^1г1—1J—1П^^АСкелетон>к t к^Г1—11—1Г—ПОС сервераV)J^чJСетьРис. 6 . 1 . Организация распределенного удаленного объекта,совместно используемого двумя клиентамиПервое из решений состоит в том, что одновременные вызовы обрабатываетсам объект. В качестве примера укажем, что объект Java может быть сконструи­рован в виде монитора путем объявления его методов си}Щ)онизированными. Пред­положим, что два клиента одновременно вызывают метод одного и того же объ­екта.

Это приведет к появлению двух параллельных потоков выполнения на томсервере, на котором находится этот объект. В Java, если методы объекта синхро­низированы, выполняться будет только один из потоков выполнения, второй жеокажется заблокированным до дальнейших уведомлений.

Могут быть созданыразличные уровни параллельного выполнения, но основным моментом будет то,что средства обработки параллельных обращений реализует сам объект. Этотпринцип иллюстрирует рис. 6.2, а.332Глава 6. Непротиворечивость и репликацияМашина сервераМашина сервераСерверпппМеханизмвзаимного исключенияЖЖАСкелетонПараллельныеобращенияiAAAАдаптерОС^МеханизмвзаимногоисключенияАдаптерAAAПараллельныеобращенияВходящие запросыВходящие запросыабРис.

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

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

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

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

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