Вы находитесь на странице: 1из 5

Известия Томского политехнического университета. 2009. Т. 314.

№ 5

УДК 681.3

АЛГОРИТМ ВЗАИМНОГО ИСКЛЮЧЕНИЯ В ПИРИНГОВЫХ СИСТЕМАХ


В.В. Губарев, A.A. Обейдат
Новосибирский государственный технический университет
Email: atefob@hotmail.com
Предложен алгоритм взаимного исключения одновременного доступа разных процессов к одному и тому же объекту в динами
ческих П2П системах, ориентированный на уменьшение служебного трафика. Основная идея его – передача сообщений между
запросными узлами и координатором. Информация n дубликатов объекта Rj публикуется в n узлах, (в координаторе и его канди
датах). Узлы посылают запрос координатору собственников дубликатов, чтобы получить доступ к объекту. В работе описывается
актуальность, существо алгоритма, экспериментально, путем имитации, оценивается его масштабируемость и эффективность.

Ключевые слова:
Распределенные системы, пиринговые системы, взаимное исключение, Интернетприложения.

1. Введение и постановка задачи N – общее количество узлов в системе, а pi –


узел с идентификатором id. Каждый узел может
Одно из последних направлений распределенных
быть клиентом (получателем) и в то же время
информационных систем и сетей – пиринговые сети
сервером (поставщиком) объектов. Узел, высту
– переживает в настоящее время активное становле
пающий как сервер, т. е. имеющий дубликат
ние [1–5]. В связи с молодостью и перспективностью
совместно используемого объекта (данных) и
в теории их создания и практического применения
готовый представить его в ответ на запрос, на
появляются все новые и новые фундаментальные за
зовем серверным узлом (СУ).
дачи, требующие неотложного решения. Одной из та
ких является задача взаимного исключения – устра 2. Каждому доступному пользователям объекту Rj
нения возможности одновременного доступа разных (реальному файлу данных или вычислительно
пользователей к одному и тому же объекту сети в тех му объекту) соответствует определенный набор
критических ситуациях, когда одновременное выпол узлов, содержащих дубликаты запрашиваемых
нение запросов этим объектом не допускается. Хотя пользователями объектов. Набор объектов
⎯ ⎯⎯
эта задача решается в традиционных средствах парал обозначим через Ω={Rj,j= 0,m –1}, где m – коли
лельных вычислений, специфика П2П не всегда по чество объектов, а набор дубликатов (реплик) rjl,
зволяет эффективно использовать известные реше соответствующих
⎯⎯⎯ объекту Rj, обозначим через
ния. Существующие для аналогичных П2П решения Гj={rjl,l= 0,n –1}, где n – количество дубликатов.
удовлетворяют не всем требованиям П2Псистем. Каждый дубликат rjl объекта Rj содержится в
определенном узле. Мы условно назовем узел,
В связи с этим цель настоящей работы – разра
который имеет дубликат l объекта, копией (ре
ботка алгоритма взаимного исключения в П2П, от
пликой или дубликатом) l.
вечающего требованиям эффективности, надежно
сти и масштабируемости. Для достижения поста 3. Дубликаты всегда доступны, но их внутреннее
вленной цели в работе решаются следующие задачи: состояние может быть случайно сброшено
вследствие сбоя. После обнаружения сбоя ду
1. Описание модели рассматриваемых систем.
бликат вновь восстанавливается в сети с преж
2. Рассмотрение операций процесса тиражирова ним значением идентификатора узла id.
ния дубликатов объекта.
4. Каждый объект Rj имеет уникальный двоичный
3. Описание и исследование нового алгоритма mбитный идентификатор (ключ) Kj, который
взаимного исключения, отличающегося отсут вычисляется как хэш текстового имени объекта
ствием недостатков, присущих существующим (например, Х). Идентификатор Kj может быть
алгоритмам, и удовлетворяющего требованиям вычислен с использованием конфликтоустой
упорядоченности, масштабируемости, децен чивой (не допускающей повторения) хэш
трализованности и отказоустойчивости сети. функции (например, SHA1 [6]), так же, как
4. Имитационное сравнение предложенного алго идентификатор узлов. Узел vj системы с иденти
ритма с существующими алгоритмами по мас фикатором, совпадающим с идентификатором
штабируемости и эффективности. Kj объекта Rj, выступает в качестве координато
ра набора Гj дубликатов объекта.
2. Модель рассматриваемых систем
Рассматриваемые в данной работе алгоритмы 3. Тиражирование дубликатов объекта
основаны на следующей модели, описывающей Одной из важнейших задач П2П является тира
динамические пиринговие системы. жирование дубликатов, обеспечение их аутентич
1. Система состоит из равноправных узлов. ности. Существующие методы тиражирования ду
⎯ ⎯⎯Обоз бликатов на все узлы являются громоздкими. Поэ
начим множество узлов через {pi,i=0,N –1}, где

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

ɚ. ɋɨɛɫɬɜɟɧɧɢɤ ɞɭɛɥɢɤɚɬɚ * j = * j ‰ M.id;

Ʉɨɧɟɰ

ɛ. Ʉɨɨɪɞɢɧɚɬɨɪ
Рис. 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. Сравнение алгоритмов по среднему количеству сообщений

ванных сетей. Выполняем несколько раундов мо по масштабируемости. В правой части рис. 2 пред
делирования (в среднем свыше десяти) и находим ставлены отношения выборочного среднеквадра
средние значения экспериментальных результатов. тического отклонение σ к среднему –x числу сооб
В каждом раунде каждая сеть (точнее её модель) щений. Как видно из приведенных данных, пред
проделывает весь тот объем работы, который про ставленные на рисунке зависимости характеризу
делывают узлы в реальной сети. При этом от раун ются сравнительно малой стохастичностью (отно
да к раунду может меняться число узлов сети, а так шения σ/x– – единицы либо один, два десятка %),
же число запросов доступа к объектам, посылае т. е. близки к функциональным. Это подтверждает
мых множеством случайно выбранных узлов. Дела справедливость выводов по результатам имитации.
ется это таким образом, что одинаковые показате
ли параметров сети остаются неизменными для Выводы
всех сравниваемых в том же раунде алгоритмов. А
именно, в каждом раунде узел наугад освобождает Описаны новые алгоритмы тиражирования ду
50 % удерживаемых им объектов. Число объектов, бликатов и взаимного исключения в П2П. Обосно
дубликатов и запросов в каждом раунде постоянно вана актуальность разработки и приведены модель
и составляет 65, 10 и 20 соответственно. системы, общее описание алгоритмов, их операции
и свойства. Полученные результаты имитации ал
На рис. 2 представлено сравнение У2К с алго горитма взаимного исключения выявили, что он
ритмами Sigma [7], E2E [8] и NONE2E [8] по сред обладает намного лучшей эффективностью, чем
нему числу сообщений. Как видно из рисунка, все существующие алгоритмы, и хорошо масштаби
зависимости почти линейны относительно числа руем. Таким образом, алгоритм способен поддер
узлов. В У2К загрузка сети служебным трафиком в живать большее количество узлов. Предложенные
среднем в 2 раза меньше, чем в сквозном Е2Е алго алгоритмы инвариантны к его разной сетевой реа
ритме. Следовательно, У2К имеет лучшие свойства лизации в структурированных П2П.

СПИСОК ЛИТЕРАТУРЫ te of Standards and Technology, US Department of Commerce,


1. Мартин Дж. Системный анализ передачи данных. – М.: Мир, Washington, D.C., April, 1995.
1975. – Т. 1. – 256 с. 7. Shiding Lin, Qiao Lian, Ming Chen, Zheng Zhang. A practical di
2. Обейдат А.А., Губарев В.В. Обзор алгоритмов распределенного stributed mutual exclusion protocol in dynamic peertopeer sy
взаимного исключения в динамических пиринговых системах stems // 3rd International Workshop on PeertoPeer Systems
// Сб. научных трудов НГТУ. – 2007. – № 2 (48). – С. 63–68. (IPTPS’04). – San Diego, CA, USA, Feb., 2004. – P. 1–10.
3. Ganesan P., Gummadi P.K., GarciaMolina H. Canon in G major: 8. Muhammad M., Cheema A.S., Gupta I. Efficient mutual exclusion
Designing DHTS with hierarchical structure // ICDCS. – Tokyo, in peertopeer systems // 6th IEEE/ACM International Conference
2004. – P. 263–272. on Grid Computing. – 2005. – P. 296–299.
4. Kumar A. Hierarchical Quorum Consensus: A New Algorithm for 9. Hoye J. Freepastry [Электронный ресурс]. – Режим доступа:
Managing Replicated Data // IEEE Transactions on Computers. – http://freepastry.rice.edu/FreePastry/. – 15.01.2007.
1991. – V. 40. – № 9. – P. 996–1004. 10. Rowstron A., Druschel P. Pastry: Scalable, distributed object location
5. Stoica I., Morris R., Karger D., Kaashoek M.F., Balakrishnan H. and routing for largescale peertopeer systems // Proceedings of
Chord: A scalable peertopeer lookup service for internet applica Middleware, Nov. 2001 [Электронный ресурс]. – Режим доступа:
tions // Proc. of ACM SIGCOMM. – 2001 [Электронный ре research.microsoft.com/~antr/PAST/pastry.pdf. – 15.01.2007.
сурс]. – Режим доступа: – URL: http://iptps04.cs.ucsd.edu/ pa
pers/kargersubgroup.pdf/. – 15.05.2007.
Поступила 03.04.2009 г.
6. FIPS 1801, «Secure hash standard», Tech. Rep. Publication 1801,
Federal Information Processing Standard (FIPS), National Institu

36