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

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

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

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

Когда сервер понимает, что постепенно «переполня­ется», то сокращает время новой аренды, предоставляемой клиентам. В результатетакого подхода серверу приходится отслеживать минимум клиентов — срокаренды истекает быстро. Другими словами, сервер динамически сокращает объемдискового пространства, отводимый на сохранение состояния клиентов (превра­щаясь в пределе в сервер без фиксации состояния).

Это разгружает его, и он на­чинает работать эффективнее.Целевая рассылка против групповойс вопросом о том, как рассылать обновления — продвигая или извлекая, — тесносвязан и вопрос о методе рассылки — целевой или групповой. При целевой рас­сылке (unicasting) сервер является частью хранилища данных и передает обновле­ния на N'других серверов путем отправки Л^- отдельных сообщений, по одному накаждый сервер. В случае групповой рассылки (multicasting) за эффективную пере­дачу одного сообщения нескольким получателям отвечает базовая сеть.Во многих случаях оказывается дешевле использовать доступные средствагрупповой рассылки. Предельный случай имеет место, когда все получатели со­средоточены в пределах одной локальной сети и в наличии имеются аппаратныесредства широковещательной рассылки (broadcasting).

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

Эпидемические протоколыМы уже упоминали, что для многих хранилищ данных достаточно лишь причин­ной непротиворечивости. Другими словами, в отсутствии обновлений нам доста­точно лишь гарантировать причинную идентичность копий. Распространение об­новлений в причинно непротиворечивых хранилищах данных часто реализуется6.4. Протоколы распределения375при помощи класса алгоритмов, известных под названием эпидемических прото­колов (epidemic protocols).

Эпидемические алгоритмы не разрешают конфликтовобновления, для этого требуются индивидуальные решения. Вместо этого ониориентированы на то, чтобы распространить обновления при помощи как можноменьшего количества сообщений. Для этой цели несколько обновлений частообъединяются в одно сообщение, которым затем обмениваются два сервера. Эпи­демические алгоритмы образуют основу системы Bayou, о которой мы говорилиранее, различные схемы распространения обновлений, использованные в ней,описаны в [349].Чтобы понять основной принцип этих алгоритмов, предположим, что все об­новления конкретных элементов данных инициируются одним сервером. Такимобразом, мы просто исключаем возможность конфликтов двойной записи.

Даль­нейшее изложение основано на классической статье по эпидемическим алгорит­мам [124].Модели распространения обновленийКак следует из названия, эпидемические алгоритмы основываются на теорииэпидемий, которая объясняет правила распространения инфекционных заболева­ний. Если вместо инфекционных заболеваний взять реплицируемые хранилищаданных, они будут распространять обновления. Исследования эпидемий в храни­лищах данных преследуют также и совершенно иную цель: в то время как органыздравоохранения считают, что было бы великолепно не допустить активного рас­пространения инфекционных заболеваний, разработчики эпидемических алго­ритмов для распределенных хранилищ данных стараются «заразить» все репликиобновлениями как можно быстрее.Используя терминологию эпидемиологов, сервер, являющийся частью рас­пределенной системы, называется инфицированным {infective), если на нем хра­нится обновление, которое он готов распространять на другие серверы.

Сервер,который еще не получил обновления, называется восприимчивьш {susceptible).И наконец, сервер, данные которого были обновлены, но не готовый или неспо­собный распространять обновление дальше, называется очищенным {removed).Одна из популярных моделей распространения — антиэнтропия {antientropy). Согласно этой модели сервер Р случайным образом выбирает другойсервер Q, после чего обменивается с ним обновленршми. Существует три способаобмена обновлениями:4- сервер Р только продвигает свои обновления на сервер Q;4 сервер Р только извлекает новые обновления с сервера Q;4 серверы Р и Q пересылают обновления друг другу (то есть метод «тянито лкая»).В отношении скорости распространения обновлений плохим выбором кажет­ся только продвижение обновлений.

Интуитивно это можно объяснить следую­щим образомг Во-первых, отметим, что при чистом продвижении обновлениямогут распространяться только инфицированными серверами. Однако если ин­фицировано множество серверов, вероятность того, что каждый из них случайно376Глава 6. Непротиворечивость и репликациявыберет восприимчивый сервер, относительно мала (скорее они будут натыкать­ся друг на друга).

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

Обычно в таком случае помогает прямое про­движение обновления на несколько серверов.Один из специальных вариантов подобного подхода именуется распростра­нением слухов {rumor spreading), или просто болтовней {gossiping). Он работаетследующим образом. Если на сервере Р имеется обновленный элемент данных х,значит, он связывается с другим произвольным сервером Q и пытается продви­нуть обновление на Q.

Однако возможно, что Q У^^ получил это обновление сдругого сервера. В этом случае Р может потерять интерес к дальнейшему распро­странению обновления, скажем, с вероятностью \/k. Другими словами, он стано­вится очищенным.Болтовня полностью соответствует реальной жизни.

Если Боб узнает какуюто «жареную» новость, о которой можно посплетничать, он, скорее всего, позво­нит своей подружке Алисе и все ей расскажет. Алиса, как и Боб, будет заинтере­сована в том, чтобы нести эту новость дальше. Однако она может быть разочаро­вана, если, позвонив приятелю, скажем Чаку, услышит от него, что он уже знаетэту новость. Имеется шанс на то, что она перестанет обзванивать своих друзей.Зачем ей это, если все и так знают ее новость?Болтовня может быть действительно хорошим способом быстрого распростра­нения обновлений. Однако оно не гарантирует, что будут обновлены все серверы[124].

Можно показать, что в случае хранилищ данных, содержащих множествосерверов, доля s серверов, которые не получат обновления, то есть останутся восприР1мчивыми, рассчитывается следующим образом:Например, при ^ = 3 значение s составляет менее 0,02. Это означает, что вос­приимчивыми останутся менее 2 % серверов. Тем не менее следует принять спе­циальные меры, чтобы гарантировать, что эти серверы также будут обновлены.Комбинирование антиэнтропии с механизмом распространения слухов — однаиз таких уловокОдно из основных преимуществ эпидемических алгоритмов — их масштаби­руемость, вытекающая из того факта, что синхронизировать друг с другом при-6.5.

Протоколы непротиворечивости377холится относительно мало процессов по сравнению с другими методами рас­пространения. В [266] показано, что для глобальных систем для получениялучших результатов имеет смысл учитывать особенности топологии. При этомподходе серверы, соединенные с малым количеством других серверов, контакти­руют с относительно большей вероятностью.

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

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

В [124]предложено использовать так называемые спящие свидетельства о смерти. Каж­дое свидетельство о смерти получает отметку о времени создания. Если предпо­ложить, что обновления распространяются на все серверы за известное конечноевремя, то по истечении максимального времени распространения свидетельствоо смерти можно удалять.Однако для получения твердой гарантии того, что удаление действительнораспространилось на все серверы, только очень немного серверов поддерживаютспящие свидетельства о смерти, никогда не передавая их дальше.

Предположим,что сервер Р имеет подобное свидетельство на элемент данных х. Если из-за ка­кой-то случайности на Р придет устаревшее обновление для х, сервер Р отреаги­рует на это событие просто повторной рассылкой свидетельства о смерти этогоэлемента данных.6.5. Протоколы непротиворечивостиДо сих пор мы в основном обсуждали различные модели непротиворечивости иобщие вопросы проектирования протоколов непротиворечивости. В этом разделемы сосредоточимся на конкретных реализациях моделей непротиворечивости378Глава 6. Непротиворечивость и репликацияи рассмотрим несколько реальных протоколов непротиворечивости. Протоколнепротиворечивости (consistency protocol) описывает реализацию конкретной мо­дели непротиворечивости.

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

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

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

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