книги2 / монография 31
.pdfПредполагается, что один узел может быть включен в состав только одного кластера.
В алгоритме используется вспомогательная матрица NPM (Node Pairs Matrix) – в которую записываются номера пар узлов, которые могут войти в один кластер.
Элементы матрицы CN получаются из матрицы NPM в результате отбора таких пар узлов из NPM,затраты на связь между которыми минимальны. При этом такие затраты не могут превышать заданного ограничения MCC на максимально допустимую величину этих затрат.
Кортеж Mavrg из K элементов используется для хранения средних сумм затрат на использование каналов связи для обмена информацией каждым отдельным узлом со всеми другими узлами сети.
Описание алгоритма распределения узлов сети по логическим кластерам.
Шаг 1. i = 1; // начальное значение номера i узла сети
Шаг 2. Цикл (Шаг 2 – Шаг 8) пока i <= K // цикл по всем узлам сети
//присвоение начальных значений вспомогательным
//переменным
j = 1; // номер узла сети
k = 0; // счетчик количества пар узлов,
// которые могут быть включены в один кластер SUM = 0; // сумма затрат на использование каналов связи Avrg = 0; // средние затраты на использование каналов связи CN (Ni, Nj) = 0; // обнуляем элемент матрицы включения узла
// в кластер
Шаг 3. Цикл (Шаг 3 – Шаг 6) пока j <= K // цикл по узлам сети.
Шаг 4. Если (i ≠ j) И DTC (Ni, Nj) <= MCC) Тогда
//пара узлов (Ni, Nj) может быть включена в один
//кластер. В матрице NPM ставим признак \\\
149
// включения узлов в один кластер
NPM (Ni, Nj) = 1 и NPM (Nj, Ni) = 1
//суммируем затраты на использование каналов
//связи для текущего узла Ni
SUM = SUM + DTC (Ni, Nj)
k = k +1; // считаем пары узлов, которые могут быть // включены в один кластер
ИНАЧЕ
//в NPM отмечаем то, что узлы Ni, Nj не могут быть
//включены в один кластер :
NPM (Ni, Nj) = 0;
NPM (Nj, Ni) = 0;
Шаг 5. Конец Если (Шаг 4).
j = j + 1; // переходим к следующему узлу Nj //в цикле Шага 3.
Шаг 6. Конец Цикла (Шаг 3).
//считаем значение средних затрат на использование
//каналов связи для узла Ni
Avrg = SUM / k; // делим общую сумму затрат на
//количество пар узлов в кластере
//сохраняем в кортеже Mavrg среднюю сумму Avrg затрат
//на использование каналов связи для текущего узла Ni.
Mavrg (i) = Avrg;
i= i + 1; // переход к следующему узлу в цикле Шага 2. Шаг 7. Конец (Цикл Шаг 2).
150
//На данном этапе алгоритма выполнены следующие действия:
//- просмотрены все пары узлов сети,
//- в матрице NPM значение 1 поставлено для пар узлов,
//которые могут входить в один кластер, и значение 0 для пар,
//которые не могут входить в один кластер.
//В кортеже Mavrg для каждого узла сети рассчитана
//средняя сумма затрат на связь данного узла с другими
//узлами, входящими в кластер.
nn = 1; // начальное значение nn (номер узла сети)
Шаг 8. Цикл (Шаг 8 – Шаг 18) пока nn <= K // цикл по узлам сети g = 1; // начальное значение g (номер узла сети)
MIN_Avrg = 0; // MIN_Avrg – минимальное
//значение средних затрат на связь
MIN_Row = 0; // MIN_Row – вспомогательная
// переменная. Шаг 9. Цикл (Шаг 9 – Шаг 10) пока
(g <= K ИЛИ MIN_Avrg > 0)
ЕСЛИ Mavrg (g) > 0 Тогда MIN_Avrg = Mavrg (g); g = g + 1; // к новому узлу в Цикле Шаг 16.
ШАГ 10. Конец (Цикл Шаг 9).
Шаг 11. ЕСЛИ MIN_Avrg = 0 ТОГДА
//это значит, что текущий узел g не обменивается
//данными с узлами, входящими в состав
//текущего кластера.
// Узел g далее должен быть включен в состав //другого кластера
Конец (ЕСЛИ Шаг 11).
151
//В цикле по всем узлам сети в кортеже Mavrg ищем узел m
//с минимальным значением средних затрат Mavrg (m)
//на связь с другими узлами кластера.
m = 1; // начальное значение переменной m (номер узла сети) Шаг 12. Цикл (Шаг 12 – Шаг 15) пока m <= K
Шаг 13. ЕСЛИ Mavrg (m) > 0 И
Mavrg (m) < MIN_Avrg
MIN_Avrg = Mavrg (m);
MIN_node = m; // запомнили номер узла с минимальными затратами на связь
Шаг 14. Конец (ЕСЛИ - Шаг 12). m = m + 1; // к следующему узлу
Шаг 15. Конец (Цикл - Шаг 12).
q = 1; // начальное значение номера q узла сети) Шаг 16. Цикл пока q<= K
ЕСЛИ NPM (NMIN_node , Nq) = 1 ТОГДА
// два узла NMIN_node и Nq в одном кластере CN (NMIN_node , Nq) = 1; // ставим признак вхожде- // ния узлов в один кластер
NPM (NMIN_node , Nq) = 0; // обнуляем элемент // матрицы NPM
Конец (ЕСЛИ – ШАГ 16)
q = q +1; // следующий узел в цикле ШАГ 16. ШАГ 17. Конец (Цикл 16)
nn = nn + 1; // следующий шаг в цикле ШАГ 8. ШАГ 18. Конец (Цикл ШАГ 8)
ШАГ 19. Конец работы алгоритма.
Представленный алгоритм реализован в виде программного модуля на языке C++ в среде MS Visual Studio. Использование
152
данного алгоритма при решении ряда практических задач поиска оптимальной группировки узлов распределенной системы в логические кластеры позволяло увеличить на 12-19% показатели эффективности функционирования распределенных систем обработки данных.
5.2.3.Пример работы алгоритма группировки узлов в логические кластеры
Для демонстрации применимости метода кластеризации рассмотрим результаты моделирования предложенного алгоритма кластеризации на примере фрагмента сети из 11 узлов сети.
Топология фрагмента сети представлена на рисунке.
Рис. 5.3. Фрагмент распределенной системы
В результате работы алгоритма получена матрица CN с номерами узлов сети, которые могут быть сгруппированы в различные логические кластеры. Матрица CN представлена в таблице 5.1.
153
Таблица 5.1. Матрица CN возможного включения узлов в кластеры
Узел |
N1 |
N2 |
N3 |
N4 |
N5 |
N6 |
N7 |
N8 |
N9 |
N10 |
N11 |
N1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
N2 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
N3 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
N4 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
N5 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
N6 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
N7 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
N8 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
N9 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
N10 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
N11 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
При использовании элементов матрицы CN и матрицы DTC заполняется матрица NAC (nodes and clusters), определяющая вхождение узлов сети в те или иные кластеры. В таблице 5.2. (ниже) показана эта матрица, построенная в результате работы алгоритма на основе данных матрицы CN, значения которой приведены в таблице
5.1.
Заполнение элементов матрицы NAC на основе анализа строк матрицы CN.
Анализ начинается со строки 1 матрицы CN.
В первый кластер C1 (первая строка матрицы NAC) потенциально могут попасть узлы с N1 по N5. Однако, стоимость связи между узлами N1 и N5 по кратчайшему пути превышает величину MMC – ограничения на максимальную стоимость передачи информации по кратчайшем путям между парами узлов в кластерах. Стоимость связей между узлами с N1 по N4 это ограничение не нарушает. Таким образом, кластер C1 состоит из 4-х узлов:
(N1,N2,N3,N4).
Выполним анализ строки 5 матрицы CN. Строки (N2,N3,N4) пропускаем.
Во второй кластер C2 включаются 4 узла: с N5 по N8. Стоимость связи любого из этих узлов с другими узлами сети нарушает ограничение MMC на максимальную стоимость связи между узлами
154
одного кластера. Таким образом, кластер C2 состоит только из этих
4-х узлов: (N5,N6,N7,N8).
Врезультате анализа строки 9 матрицы CN получается, что узлы
сN9 по N10 формируют кластер C3. Таким образом, кластер C3 включает в себя 3 узла: (N9,N10,N11).
Остальные строки матрицы CN можно не рассматривать.
Витоге матрица NAC включения узлов в кластеры имеет следующий вид:
Таблица 5.2. Матрица NAC включения узлов в кластеры.
Кластер |
|
|
N3 |
|
|
|
|
|
|
|
N11 |
|
N1 |
N2 |
|
N4 |
N5 |
N6 |
N7 |
N8 |
N9 |
N10 |
|
C1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
C2 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
C3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
На рисунке 5.4 представлена схема фрагмента сети с узлами, распределенными в три логических кластера.
Рис. 5.4. Распределенная сеть с логическими кластерами
5.2.4.Распределение реплик фрагментов таблиц по логическим кластерам
После того, как произведена группировка узлов распределенной системы в некоторое множество логических кластеров, для каждого такого кластера решается задача распределения в узлах этого кластера одной или нескольких реплик фрагментов базы данных. Для решения этой задачи, в силу ее большой вычислительной сложности,
155
можно использовать различные эвристические алгоритмы [21,48– 52], и, в частности, алгоритмы, приведенные в работе [53].
Необходимо отметить, что при этом необходимо учитывать величину затрат распределенной системы на синхронизацию изменений в данных нескольких реплик одного фрагмента или массива данных, размещенных в разных логических кластерах.
Краткие выводы
В данной главе представлен метод кластеризации узлов распределенной системы, позволяющий значительно сократить вычислительную сложность задач распределения по узлам сети массивов данных, вертикальных и горизонтальных фрагментов таблиц и их реплик.
Приведена формальная модель распределенной системы, в рамках которой предложен эвристический алгоритм группировки узлов распределенной системы в логические кластеры. Представлен пример работы алгоритма на фрагменте распределенной системы, состоящей из 11 узлов, сгруппированных алгоритмом в три кластера.
Подчеркнута важность представленного метода логической кластеризации узлов для актуальной задачи размещения массивов данных, таблиц данных и их реплик по узлам крупномасштабных распределенных систем. Данный метод позволяет существенно сократить вычислительную сложность задач размещения данных по узлам сети в случае крупномасштабных систем путем декомпозиции одной вычислительно сложной оптимизационной задачи на несколько более простых задач.
156
ГЛАВА 6. ДИНАМИЧЕСКАЯ РЕПЛИКАЦИЯ ДАННЫХ В МОБИЛЬНЫХ БЕСПРОВОДНЫХ СЕТЯХ С ПРОИЗВОЛЬНОЙ СТРУКТУРОЙ MANET
Вданной главе рассматриваются проблемы и задачи использования методов репликации данных в мобильных беспроводных сетях на примере сети MANET [54].
Втечение последних двух десятилетий интенсивно развивались стандарты и основанные на них мобильные технологии, используемые для организации сотовой связи и мобильных вычислений, работающих на основе беспроводных сетей [54–57]. С начала текущего тысячелетия мобильное устройство превратилось из простого двустороннего пейджера в смартфон, т.е. мобильный телефон, предоставляющий сервисы навигационного устройства GPS, встроенного веб-браузера, средства обмена мгновенными сообщениями, устройство для онлайн связи с банком, портативную игровую консоль или музыкальный центр, и даже компьютер с различными установленными приложениями и многое другое.
Мобильные беспроводные сети это одно из самых перспективных направлений развития информационнокоммуникационных сетей. К самым значимым преимуществам мобильных сетей можно отнести следующие преимущества.
Возможность создания коммуникационных сетей без необходимости создания инфраструктуры наземных стационарных базовых станций на протяженных территориях страны с разреженной географией населенных пунктов, промышленных и сельскохозяйственных предприятий различного характера и размера (например, восточная Сибирь и Арктическая зона)
Быстрота создания и реорганизации конфигурации мобильной коммуникационной сети за счет возможностей автоматического подключения новых абонентов к сети и самоорганизации сети при изменении ее структуры.
Более эффективное использование коммуникационных и вычислительных ресурсов множества различных мобильных устройств пользователей.
157
Термин мобильная коммуникационная сеть можно рассматривать как область или среда для локального и удаленного взаимодействия пользователей с программными, информационными и аппаратными средствами. Эта среда обеспечивает пользователей возможностями для использования различных мобильных устройств с целью оперативного доступа к локальной и удаленной информации различного типа (текстовая или аудио-, видеоинформация) или обмена данными с другими мобильными устройствами (смартфоны, планшеты, ноутбуки, GPS/ГЛОНАСС-навигаторы).
Широкое распространение и интенсивное использование сетей мобильной связи предъявляет к ним ряд требований. Сети мобильной связи должны быть достаточно надежными, чтобы обеспечить постоянную доступность, достоверность и сохранность используемых в них данных. Кроме того, они должны обладать достаточной производительностью для предоставления пользователям оперативного доступа к необходимым ресурсам сети.
Эффективным направлением обеспечения доступности, сохранности и достоверности данных в современных мобильных сетях являются методы репликации данных в узлах сети [58–60]. Эти методы также повышают отказоустойчивость, быстродействие и масштабируемость мобильных сетей.
6.1.Виды мобильных сетей
Всвязи с интенсивными работами по проектированию и созданию беспроводных сетей появилась необходимость в разработке стандартов в этой области. По этой причине в 1997 году был принят первый стандарт 802.11 в этой области (Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications) [56]. В нем были описаны стандарты для двух типов беспроводных сетей: инфраструктурные сети и сети ad-hoc. По мере бурного роста беспроводных технологий в дальнейшем был издан целый ряд улучшений и дополнений этого стандарта.
Инфраструктурные сети (Wi-Fi Hotspot) используют возможности проводных сетей, и предоставляет клиентским станциям и различным мобильным устройствам точки Wi-Fi доступа, которые, как правило, используются для доступа к ресурсам Интернета.
158
