Академический Документы
Профессиональный Документы
Культура Документы
№ 5
УДК 681.3
Ключевые слова:
Распределенные системы, пиринговые системы, взаимное исключение, Интернетприложения.
32
Управление, вычислительная техника и информатика
тому предлагается новый метод наборного (не по 3.1.1. Операция «cоединение». На рис. 1, а, при
головного, а востребованного, текущего) тиражи ведена схема операции cоединение для собственни
рования. ка дубликата объекта.
Основная идея метода – тиражировать дублика Шаг 1. Узел pi – собственник дубликата объекта
ты изменяемых объектов не во всех узлах сети, а просит оверлей вычислить хешированный иденти
только в активных, т.е. по мере необходимости об фикатор Kj его объекта Rj.
ращения узлов к дубликатам. Для этого предлагает Шаг 2. pi просит оверлей послать сообщение со)
ся организация набора заинтересованных узлов, единение М=(id, соединение, Kj) узлу vj с идентифи
объединяемых координатором. Предусматривает катором id, наиболее близким к хешированному
ся, что собственники дубликатов некоторого идентификатору Kj.
объекта организованы в набор Гj. Каждое множе
Шаг 3. pi получает ответ от координатора, что он
ство Гj имеет уникальный идентификатор Kj. Иден
стал членом набора Гj.
тификатор Kj набора присваивается с использова
нием хеширования имени объекта. В качестве ко При получении координатором сообщения сое
ординатора для соответствующего набора выступа динение он начнет выполнять следующие шаги
ет узел vj с идентификатором, являющимся числен (см. рис. 1, б):
но наиболее близким к идентификатору набора Kj. Шаг 1. Координатор vj или кандидат получает
сообщение M (соединение).
3.1. Операции метода Шаг 2. Координатор vj проверяет, пришло ли
Соединение: чтобы получать обновление дубли это сообщение от собственника дубликата или нет.
ката, узел, содержащий дубликат, который надо Если да, он (на Шаге 3) отправляет собственнику
поддерживать в современном состоянии, иници ответ, содержащий текущую версию дубликата
ирует операцию «Cоединение» (т. е. присоедине объекта.
ния к набору). Шаг 4. Координатор vj проверяет, существует ли
Разъединение: если узлу не требуется поддержи набор Гj с идентификатором Kj или нет.
вать свой дубликата в современном состоянии, он Шаг 5. Если набор существует, это означает, что
инициирует операцию «разъединение» (т. е. отсое узел vj уже является координатором множества Гj. В
динения от набора), тем самым оставив без внима этом случае vj добавляет информацию о собствен
ния текущие модификации дубликата, экономя ре нике дубликата в список собственников и отпра
сурсы (свои и сети). вляет сообщение соединение узлу vj', чей идентифи
Восстановление: при восстановлении и возвра катор наиболее близок к нему, чтобы этот узел стал
щении в систему, узел инициирует операцию «вос новым кандидатом координатора vc. Число канди
становление», по выполнении которой получает датов вместе с координатором равно числу дубли
современную версию дубликата объекта. катов.
ɇɚɱɚɥɨ
ɇɚɱɚɥɨ 1
1 ɉɨɥɭɱɢɬɶ
Kj=ɯɷɲ(Rj) ɫɨɨɛɳɟɧɢɟ (Ɇ)
Ⱦɚ 22
2 Ɇ ɨɬ
ɫɨɛɫɬɜɟɧɧɢɤɚ?
ɉɨɫɥɚɬɶ M ɤ ɤɨɨɪɞɢɧɚɬɨɪɭ 3
ɇɟɬ
3
ɉɨɫɥɚɬɶ ɨɬɜɟɬ 5
ɉɨɥɭɱɢɬɶ ɨɬɜɟɬ
4 ɞɚ
ȿɫɬɶ ɥɢ *j * j = * j M.id
ɫ Ʉj? ɉɟɪɟɫɥɚɬɶ Ɇ ɤ vjƍ;
Ʉɨɧɟɰ ɇɟɬ
6
ɋɨɡɞɚɬɶ * ;
j
Ʉɨɧɟɰ
ɛ. Ʉɨɨɪɞɢɧɚɬɨɪ
Рис. 1. Схема операции «соединение»
33
Известия Томского политехнического университета. 2009. Т. 314. № 5
Шаг 6. Если набор не существует, источник со и кандидатов координатора, и, если только что за
общения – собственник дубликата осознает, что он вершивший работу с объектом узел производил мо
является координатором vj для нового набора соб дификацию объекта, сообщает им о новой версии
ственников дубликатов Гj, поэтому должен создать объекта, а при необходимости тиражирует ее.
список Гj и добавить отправителя сообщения в свой Полномочие доступа к объекту предоставляется
список; в противном случае он будет кандидатом vc при одновременном соблюдении следующих усло
для координатора. вий:
3.1.2. Операция «разъединение». Когда узлу pi не a) Допустимо множество операций чтения в одно
требуется поддерживать свой дубликата в совре и то же время.
менном состоянии, он инициирует операцию
b) Разрешается только одна операция записи в од
разъединения, чтобы выйти из набора. Координа
но то же время.
тор, получая это сообщение, удаляет информацию
о дубликате узла pi из своего списка и информирует c) Отсутствие (запрет) пары или поле операций
об этом своих кандидатов. «чтение – запись» в одно и то же время.
3.1.3. Операция «воссоединение». Шаги опера Шаги алгоритма У2К следующие.
ции восстановления следующие. Входящими данными алгоритма являются:
Шаг 1. Когда любой узел pi желает получить со id: идентификатор узла i;
временную версию дубликата объекта, он посылает cj: идентификатор клиента, владеющего объек
своему vj сообщение ВОССТАНОВЛЕНИЕ с указа том Rj; tcj: время получения полномочий (разреше
нием имеющейся в узле версии дубликата. ния) на доступ к объекту Rj; tво: временная отметка,
Шаг 2. При получении сообщения ВОССТАНО) переменная состояния, всегда хранящаяся в pi, из
ВЛЕНИЕ, vj определяет различие между последней начально ноль;
версией дубликата, находящегося в системе, и вер pQj: частичный перечень ожидающих запросов,
сией дубликата узла pi. который содержит сведения о запросах всех клиен
Шаг 3. Если отличия в дубликатах нет, vj вклю тов, упорядоченных по времени; Qj: полная очередь
чает узел pi в набор. Если дубликаты отличаются, vj запросов, изначально пустая, Qj используется толь
отправляет сообщение ОБНОВЛЕНИЕ узлу pi, со ко координатором;
держащее список модификаций OPS . Tl: время аренды, полномочие на доступ объекта
Шаг 4. При получении сообщения ОБНОВЛЕ) предоставляется на некоторое время Tl. Координа
НИЕ узел pi выполняет модификации в списке OPS тор отслеживает время окончания блокировки и
и приводит свой дубликат объекта в соответствие с снимает ее, когда время Tl истекает;
текущей версией объекта. После этого узел pi вклю Rj: идентификатор объекта j;
чается в набор Гj.
M: сообщения между узлами, которые обычно
содержат: s – идентификатор источника сообще
4. Алгоритм взаимного исключения одновременного ния, запросного узла ps; tво – временная отметка за
доступа для изменения объекта проса; pQj – частичная очередь запросов; d – пункт
Вторая важная задача – это взаимное исключе доставки сообщения; (cj,tcj) – текущий собственник
ние доступа к одному и тему же объекту или его ду и временная отметка; Тип сообщения: (ЗАПРОС,
бликатам, когда одновременный доступ недопу ОСВОБОЖДЕНИЕ (ОСВОБ), ОТВЕТ).
стим, нежелателен (один узел хочет читать содер Шаг 1. Когда узел pi хочет получить доступ к
жимое объекта, другой записывать или изменять определенному объекту Rj, он посылает координа
его либо оба узла хотят изменить содержимое тору сообщение ЗАПРОС(s=id, tво, d=Кj). В качестве
объекта). Недостатки существующих методов – в координатора рассматривается узел системы с
трудности их масштабирования. идентификатором, наиболее близким к хеширо
Предложенный алгоритм основан на организа ванному идентификатору Кj ассоциированного
ции набора узлов и передаче сообщений только меж объекта Rj.
ду запросными узлами и координатором. Поэтому Шаг 2. Когда узел vj, который выступает в каче
назовем его условно алгоритмом узел)координатор стве координатора для набора дубликатов, получа
(У2К). Запросные узлы посылают запрос координа ет запрос на доступ к объекту Rj от узла pi, он опре
тору, чтобы получить доступ к объекту. При получе деляет, доступен объект Rj или нет. Если да, то он
нии запроса на использование объекта Rj координа блокирует объект Rj для узла pi (т. е. cj=pi, tcj=M·tво),
тор vj уведомляет об этом всех своих кандидатов и по посылает сообщение ОТВЕТ «Да» запросному узлу
сылает ответ запросному узлу. Ответ содержит ин и информирует об этом его кандидатов. В против
формацию о текущем владельце, работающем с ном случае он добавляет запрос в очередь.
объектом, и очереди ожидающих узлов. После завер Шаг 3. Когда узел pi получает сообщение ОТ
шения работы с объектом узел посылает координа ВЕТ «да», он проверяет, является ли он сам вла
тору сообщение ОСВОБ. Когда vj получает сообще дельцем объекта или нет. Если да, он может войти в
ние ОСВОБ от текущего владельца объекта, он уве критическую секцию (КС) и начать использовать
домляет об этом все запросные узлы набора, включая
34
Управление, вычислительная техника и информатика
объект Rj. Когда он заканчивает свою работу в КС, Свойство децентрализации. У2К достигает луч
он посылает vj сообщение ОСВОБ. В противном ших показателей децентрализации и отказоустойчи#
случае, если он получает сообщение ОТВЕТ «нет», вости, т. к. Qj хранится в vj и его кандидатах, а частич
ему требуется ждать в течение определенного вре ные очереди – во всех запросных узлах. Поэтому все
мени ожидания tw=l.tkc, где l – число узлов в очере узлы локально определяют следующего владельца
ди pQj, tkc – время нахождения узла в КС. объекта при получении сообщения ОСВОБ или по
Шаг 4. При получении координатором сообще окончании времени аренды объекта. Несмотря на то,
ния ОСВОБ от текущего владельца КС, он проверяет, что Qj хранится в координаторе и кандидатах, У2К
пуста ли очередь запросов. Если нет, он исключает из гарантирует взаимное исключение, но с другой сто
очереди нового владелица, посылая ему ОТВЕТ «да», роны У2К отказоустойчив: когда координатор и кан
и рассылает сообщение ОСВОБ всем остальным уз дидаты выходят из строя одновременно, запросные
лам очереди Qj. Если координатор не получит от теку узлы могут и узнают об этом, не получая сообщение
щего узла сообщение ОСВОБ в течение прогнозного ОСВОБ от текущего владельца объекта в пределах
времени (Tl), он поймет, что владелец объекта вышел времени аренды. Это означает, что когда координа
из строя. Тогда он даст полномочие на доступ к тор выходит из строя, запросные узлы вновь посыла
объекту следующему узлу в очереди. Если очередь за ют свои запросы с частичными очередями (pQj) но
кончилась, координатор ожидает, новые запросы. вому координатору. Новый координатор объединит
все полученные pQj в одну полную очередь Qj.
Шаг 5. При получении от координатора сооб
щения ОСВОБ, узел pi ждет свою очередь. Если Свойство аутентичности. Требование аутентич
узел pi не получает сообщение ОТВЕТ или ОСВОБ ности удовлетворяется, если в любой момент вре
в течение прогнозного времени tw, он вновь (шаг 1) мени содержимое всех востребованных дубликатов
посылает сообщение ЗАПРОС узлу в качестве ко объекта одинаково (т. е. удовлетворяется условие
ординатора. тождественности всех копий одной). Это требова
ние можно обеспечить разными путями. Первый –
Итак, шаги 1–5 повторяются по мере того, как
одновременной заменой всех старых дублей изме
узлы хотят получить доступ к совместно использу
ненного объекта новой редакцией (тиражировани
емому объекту Rj.
ем новых дублей) сразу же по окончании измене
ния объекта до выполнения следующего по очере
5. Свойства У2К ди запроса. Второй путь, описанный в п. 2, выдачей
Теперь рассмотрим, какие свойства имеет У2К последней редакции дублей только тем узлам, ко
и, следовательно, каким требованиям он удовле торые за ними сейчас обращаются. Ясно, что при
творяет. этом, чтобы обеспечить аутентичность дубликатов
последней версии объекта, У2К, использующий
Первое свойство – упорядоченность. Прежде
метод отслеживания активных дубликатов объекта,
всего отметим, что У2К соответствует требованию
в случае остановки, сбоя или тиражирования ново
упорядоченности, т. к. запросы удовлетворяются в
го дубликата объекта вначале должен обновить со
порядке «первым пришёл, первым обслужен
держимое старого дубликата объекта.
(FCFS)». Действительно, только координатор vj со
держит Qj и принимает решение относительно до
ступа к объекту в соответствии со своей информа 6. Результаты имитационного моделирования У2К
цией. После получения сообщения (ЗАПРОС или Для сравнения У2К и других известных [7, 8]
ОСВОБ) координатор проверяет состояние объек алгоритмов взаимного исключения применим под
та. Если он свободен, vj посылает сообщение «ДА» ход имитационного экспериментирования с алго
следующему в очереди узлу. Это сообщение содер ритмами. Программную реализацию предложен
жит разрешение на использование объекта, доступ ного и существующих алгоритмов взаимного ис
в его КС. По его получении запросный узел входит ключения выполним на основе системы FreePastry
в КС. Только vj может предоставить полномочие на [9, 10]. Разработанная программа, стартуя, создает
доступ к общему объекту. Таким образом У2К обла набор узлов, расставленных согласно сетевой топо
дает свойством упорядоченности. логии Pastry. Цели моделирования – проверить
Второе важное свойство – степень загрузки сети масштабируемость и загрузку сети служебным тра
служебным трафиком. Как нетрудно убедиться, она фиком (т. е. определить число сообщений).
будет ниже, чем в существующих алгоритмах, по Одним из главных качеств алгоритма взаимного
скольку У2К использует меньшее количество опе исключения является его пригодность к масштаби#
раций, чем другие алгоритмы. На самом деле обмен руемости сети, т. е. к увеличению количества узлов
сообщениями в алгоритме осуществляется только сети. Для экспериментального компьютерного ис
между запросными узлами и координатором вме следования масштабируемости У2К по сравнению
сто обмена сообщениями со всеми узлами как в су с другими, хорошими по этому показателю, алго
ществующих алгоритмах. Например, сообщение ритмами, выполняем их одинаковую программную
ЗАПРОС посылается только координатору, а не реализацию. Для этого следует реализовать на
всем узлам, хранящим n дубликатов, как в других ЭВМ компьютерные модели сетей и запустить на
алгоритмах, основанных на кворуме [7, 8]. компьютере несколько раундов работы смоделиро
35
Известия Томского политехнического университета. 2009. Т. 314. № 5
ванных сетей. Выполняем несколько раундов мо по масштабируемости. В правой части рис. 2 пред
делирования (в среднем свыше десяти) и находим ставлены отношения выборочного среднеквадра
средние значения экспериментальных результатов. тического отклонение σ к среднему –x числу сооб
В каждом раунде каждая сеть (точнее её модель) щений. Как видно из приведенных данных, пред
проделывает весь тот объем работы, который про ставленные на рисунке зависимости характеризу
делывают узлы в реальной сети. При этом от раун ются сравнительно малой стохастичностью (отно
да к раунду может меняться число узлов сети, а так шения σ/x– – единицы либо один, два десятка %),
же число запросов доступа к объектам, посылае т. е. близки к функциональным. Это подтверждает
мых множеством случайно выбранных узлов. Дела справедливость выводов по результатам имитации.
ется это таким образом, что одинаковые показате
ли параметров сети остаются неизменными для Выводы
всех сравниваемых в том же раунде алгоритмов. А
именно, в каждом раунде узел наугад освобождает Описаны новые алгоритмы тиражирования ду
50 % удерживаемых им объектов. Число объектов, бликатов и взаимного исключения в П2П. Обосно
дубликатов и запросов в каждом раунде постоянно вана актуальность разработки и приведены модель
и составляет 65, 10 и 20 соответственно. системы, общее описание алгоритмов, их операции
и свойства. Полученные результаты имитации ал
На рис. 2 представлено сравнение У2К с алго горитма взаимного исключения выявили, что он
ритмами Sigma [7], E2E [8] и NONE2E [8] по сред обладает намного лучшей эффективностью, чем
нему числу сообщений. Как видно из рисунка, все существующие алгоритмы, и хорошо масштаби
зависимости почти линейны относительно числа руем. Таким образом, алгоритм способен поддер
узлов. В У2К загрузка сети служебным трафиком в живать большее количество узлов. Предложенные
среднем в 2 раза меньше, чем в сквозном Е2Е алго алгоритмы инвариантны к его разной сетевой реа
ритме. Следовательно, У2К имеет лучшие свойства лизации в структурированных П2П.
36