книги2 / монография 31
.pdfИзменение частот прикладных процессов привели к соответствующим изменениям и в матрице приоритетов узлов. В таблице 3.27 представлена матрица NP с измененными значениями приоритетов узлов. Изменились значения приоритетов в следующих строках матрицы NP: 1,7,8,10.
Таблица3.27. Новые значения элементов матрицы NP приоритетов узлов сети (тест 2)
|
Узел |
|
Реплики массивов данных |
|
|
|
||||||
|
сети |
|
1 |
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
1 |
|
764 |
609 |
|
476 |
|
383 |
|
618 |
|
785 |
|
|
171 |
225 |
|
282 |
|
186 |
|
615 |
|
208 |
|
|
2 |
|
|
|
|
|
||||||
|
3 |
|
316 |
529 |
|
912 |
|
336 |
|
232 |
|
242 |
|
4 |
|
666 |
1228 |
|
398 |
|
350 |
|
313 |
|
454 |
|
5 |
|
653 |
371 |
|
429 |
|
260 |
|
369 |
|
291 |
|
6 |
|
276 |
749 |
|
511 |
|
300 |
|
218 |
|
225 |
|
7 |
|
385 |
331 |
|
993 |
|
387 |
|
365 |
|
340 |
|
8 |
|
1005 |
682 |
|
1142 |
|
605 |
|
1228 |
|
763 |
|
|
1239 |
788 |
|
331 |
|
297 |
|
684 |
|
430 |
|
|
9 |
|
|
|
|
|
||||||
|
10 |
|
125 |
114 |
|
284 |
|
194 |
|
173 |
|
206 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Изменения значений приоритетов узлов приводит к необходимости перераспределения реплик массивов данных для того, чтобы наилучшим образом адаптировать работу распределенной системы к новым условиям.
В итоге работы алгоритма при измененных значениях приоритетов узлов получены 12 различных распределений реплик массивов данных при различных исходных параметрах работы алгоритма.
Оптимальное распределение реплик с наименьшими затратами 344,445,103.00 на эксплуатацию системы получено при значении минимального приоритета узлов, равного 744 и при распределении узлах сети 6 массивов данных и 7 их реплик.
Матрица X с описанием параметров оптимального распределения, представлена в таблице 3.28. На рисунке 3.11 показана сеть с оптимальным размещением реплик массивов данных.
79
Таблица 3.28. Оптимальное распределение массивов данных и
|
|
|
|
их реплик (тест 2) |
|
|
|
|
|
|||||||||||
|
Узел |
|
|
Оптимальное размещение |
|
|||||||||||||||
|
|
|
массивов данных и их реплик |
|
||||||||||||||||
|
сети |
|
||||||||||||||||||
|
|
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
1 |
|
|
1 |
|
0 |
|
0 |
|
0 |
|
|
0 |
|
|
1 |
|
|||
|
2 |
|
0 |
|
0 |
|
0 |
|
0 |
|
|
0 |
|
0 |
|
|||||
|
3 |
|
0 |
|
0 |
|
|
1 |
|
0 |
|
|
0 |
|
0 |
|
||||
|
4 |
|
0 |
|
|
1 |
|
0 |
|
0 |
|
|
0 |
|
0 |
|
||||
|
5 |
|
0 |
|
0 |
|
0 |
|
0 |
|
|
0 |
|
0 |
|
|||||
|
6 |
|
0 |
|
|
1 |
|
0 |
|
0 |
|
|
0 |
|
0 |
|
||||
|
7 |
|
0 |
|
0 |
|
1 |
|
0 |
|
|
0 |
|
0 |
|
|||||
|
8 |
|
|
1 |
|
0 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
|
9 |
|
|
1 |
|
|
1 |
|
0 |
|
0 |
|
|
0 |
|
0 |
|
|||
|
10 |
|
0 |
|
0 |
|
0 |
|
0 |
|
|
0 |
|
0 |
|
|||||
Рис. 3.11. Оптимальное размещение реплик и массивов данных (тест 2)
80
Миграция реплик массивов данных для теста 2
На основе данных матрицы X нового распределения реплик и аналогичной матрицы, полученной ранее на этапе 1 тестирования, выполнена миграция реплик. Данные по процессу миграции реплик приведены в таблице 3.29.
По каналам связи между узлами сети переслано 7 реплик. Величина общих затрат на миграцию реплик равна 556,464.00 единиц стоимости.
На этом же шаге алгоритма работает процедура удаления невостребованных реплик, размещенных в узлах сети. Реплики
удаляются из узлов, |
приоритет которых ( |
, ) меньше |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
ограничения , который в данном случае равен 744 единиц. |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 3.29. Данные по миграции реплик между узлами сети |
||||||||||||
|
|
|
|
(тест 2) |
|
|
|
|
|
|||
|
Реплика |
|
Миграция |
|
|
Затраты |
|
|
|
|||
|
|
|
из узла |
|
|
в узел |
|
|
на миграцию |
|
|
|
|
1 |
|
9 |
|
1 |
|
134 890 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
1 |
|
9 |
|
8 |
|
34 440 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
2 |
|
4 |
|
6 |
|
48 780 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
2 |
|
4 |
|
9 |
|
135 500 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
3 |
|
8 |
|
3 |
|
59 048 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
3 |
|
8 |
|
7 |
|
42 944 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
6 |
|
1 |
|
8 |
|
100 862 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ИТОГО |
556 464 |
|
|
|
||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Ниже в таблице 3.30 приведена матрица NP приоритетов узлов, в которой фоном выделены приоритеты узлов, в которых размещены реплики. Единственным узлом, приоритет которого меньше или равен 744 единиц, является узел NP(8,4), приоритет которого равен
605единиц.
Но реплику из этого узла удалять нельзя, так как эта реплика
присутствует в сети в одном экземпляре и фактически является оригиналом массива данных 4.
81
Таблица 3.30. Матрица приоритетов узлов
Узел |
|
Реплики массивов данных |
|
|||
сети |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
764 |
609 |
476 |
383 |
618 |
785 |
2 |
171 |
225 |
282 |
186 |
615 |
208 |
3 |
316 |
529 |
912 |
336 |
232 |
242 |
4 |
666 |
1228 |
398 |
350 |
313 |
454 |
5 |
653 |
371 |
429 |
260 |
369 |
291 |
6 |
276 |
749 |
511 |
300 |
218 |
225 |
7 |
385 |
331 |
993 |
387 |
365 |
340 |
8 |
1005 |
682 |
1142 |
605 |
1228 |
763 |
9 |
1239 |
788 |
331 |
297 |
684 |
430 |
10 |
125 |
114 |
284 |
194 |
173 |
206 |
|
|
|
|
|
|
|
3.6.Тест №3 алгоритма решения задачи оптимального размещения реплик
Цель третьего тестирования алгоритма заключается в анализе поведения алгоритма при изменении ограничений на максимальное количество массивов данных и их реплик, которое можно разместить в одном узле сети.
Так как согласно условиям задачи в распределенной системе используется = 6 различных массивов данных, то в каждом узле можно разместить не более 6 массивов данных и/или их реплик.
При работе алгоритма используется ограничение на количество массивов данных и/или их реплик, размещенных в одном k-м узле системы:
∑ |
≤ , |
1 ≤ ≤ |
|
|
|
=1 |
|
|
В ходе тестирования алгоритм решения задачи выполнялся 5 раз. При этом лимит на количество реплик в узлах сети поочередно принимал одно из 5 значений множества {2,3,4,5,6}. Значение лимита было одинаково для всех K узлов сети. Для каждого
82
из 5 значений лимита алгоритм запускался по 12 раз при 12-ти разных значениях ограничений на приоритеты узлов. Множество значений минимального приоритета узлов выбиралось из множества
.
В качестве критерия оптимизации размещения реплик использовался минимум затрат на функционирование распределенной системы и минимум среднего времени ответа системы на запросы.
Таким образом, алгоритм запускался 60 раз при использовании стоимостного критерия оптимизации и столько же раз при поиске распределения, оптимального по критерию минимума среднего времени ответа на запрос.
Анализ результатов работы алгоритма
В результате тестирования было получено 5 оптимальных размещений реплик с соответствующими величинами затрат на эксплуатацию распределенной системы. Эти данные представлены в таблице 3.31.
Таблица 3.31. Результат тестирования алгоритма при разных значениях лимита на количество реплик в узлах сети
Ограничение |
Количество |
Затраты на |
|
размещенных |
|||
на количество |
функционирование |
||
массивов |
|||
реплик в узле |
системы |
||
и реплик |
|||
|
|
||
|
|
|
|
2 |
10 |
383 593 126 |
|
3 |
11 |
376 123 616 |
|
4 |
12 |
371 440 105 |
|
5 |
12 |
371 440 105 |
|
6 |
12 |
371 440 105 |
Значение лимита на количество реплик в узле, равное 1, не использовалось, поскольку такое значение лимита фактически уже использовалось при первоначальном размещении оригиналов массивов данных, которое было выполнено при тестировании 1.
83
На рисунке 3.12 показан график зависимости количества размещенных в узлах сети реплик массивов данных от значения ограничения на максимальное количество реплик, которое можно разместить в узлах сети.
15 |
|
|
|
|
10 |
|
|
|
|
5 |
|
|
|
|
0 |
|
|
|
|
1 |
2 |
3 |
4 |
5 |
Ограничение на количество реплик в узле
Количество
размещенных массивов и реплик
Рис. 3.12. Зависимость количества размещенных реплик от ограничения на их максимальное количество
Рисунок 3.13, показанный ниже представляет график зависимости оптимальной величины затрат на функционирование системы от значения ограничения на максимальное количество реплик, которое можно разместить в узлах сети.
84
500000000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400000000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ограничение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300000000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
на количество |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
реплик в узле |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200000000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Затраты на |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100000000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
функциониров |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ание системы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.13. Зависимость затрат на функционирование системы от ограничения на максимальное количество размещенных в узлах
реплик
В результате выполнения теста 3 также было получено 5 оптимальных размещений реплик с соответствующими величинами среднего времени ответа системы на запросы к данным. Данные с анализом результатов тестирования представлены в таблице 3.41 и на графике рисунка 3.14.
Таблица 3.41. Результат тестирования алгоритма при разных значениях лимита на количество реплик в узлах сети
Ограничение на |
Среднее время |
количество |
ответа системы |
реплик в узле |
на запросы |
|
|
2 |
2 784 |
3 |
2 178 |
4 |
1 944 |
5 |
1 943 |
6 |
1 773 |
85
3000 |
|
|
|
|
2000 |
|
|
|
Ограничение |
|
|
|
|
на |
1000 |
|
|
|
количество |
|
|
|
|
реплик в узле |
0 |
|
|
|
|
1 |
2 |
3 |
4 |
5 |
Рис. 3.14. Зависимость величины минимального среднего времени ответа на запрос от ограничения на максимальное
количество размещенных в узлах реплик
3.7.Анализ эффективности эвристического алгоритма оптимального адаптивного размещения реплик
Задача определения вычислительной сложности эвристических алгоритмов с приемлемой точностью чрезвычайно сложна. Причина заключается в том, что количество операций, выполняемых эвристическим алгоритмом, сильно варьируется в зависимости от значений входных параметров его работы.
В данном параграфе эвристический алгоритм находил распределение реплик для фрагмента компьютерной сети, имеющего K = 10 узлов в сети, P = 6 прикладных процессов обработки запросов, которые выполняются в этих узлах сети, генерируя при этом запросы к репликам массивов данных. Распределенная система использует M = 6 различных массивов данных, каждый из которых может иметь несколько реплик, размещенных в разных узлах сети.
Если предположить, что в каждом узле сети можно разместить не более 3 реплик массивов, то при заданных параметрах вычислительная сложность задачи (при поиске ее оптимального решения методом полного перебора), т.е. теоретическое общее количество W вариантов размещения реплик, которые необходимо будет рассмотреть при поиске оптимального решения задачи, будет равно:
′ = ( 61 + 62 + 63) = (6 + 15 + 20) = 41
86
= ( ′)10 = (41)10 = 13 422 659 310 152 401 ≈ 13 1015
Здесь ′ количество вариантов размещения реплик для любого из K узлов сети.
Это огромное количество – более 13-ти квадриллионов вариантов. Именно поэтому для решения сформулированной задачи используется эвристический алгоритм.
Для оценки эффективности эвристического алгоритма использовался метод динамического анализа. С этой целью в текст программы добавлялись операторы языка программирования, которые производили подсчет числа шагов нескольких основных фрагментов программы - циклов работы алгоритма: первоначальное распределение реплик, распределение дополнительных реплик, миграция реплик и цикл удаления невостребованных реплик.
Алгоритм запускается 12 раз с различными значениями ограничения на минимальное значение приоритета узлов. В результате каждого запуска алгоритма генерируется распределение реплик, которым соответствуют разные значения затрат на функционирование системы. Оптимальным распределением считается то распределение, которому соответствуем минимальное значение этих затрат.
В каждом запуске алгоритма выполнялось по 240 циклов. Соответственно за 12 запусков алгоритма было выполнено 2 880 циклов.
Таким образом, предложенный эвристический алгоритм обладает небольшой вычислительной сложностью.
Краткие выводы
На основе описания эвристического алгоритма адаптивного размещения реплик и по результатам его тестирования можно сделать следующие выводы. Для разных состояний распределенной системы, имеющих значимые отличия в параметрах работы, один и тот же эвристический алгоритм перераспределения реплик массивов данных, работающий в разные моменты времени, может находить разные оптимальные решения с различной величиной среднего
87
времени обработки запросов и с разной величиной затрат на функционирование системы.
Это очевидно объясняется тем, что один и тот же алгоритм выполняется при различных исходных параметрах распределенной системы, которые динамично меняются с течением времени. Разница в значениях исходных параметров приводит к тому, что при разных параметрах в алгоритме будут задействованы разные выходные результаты.
Предложенный в работе эвристический алгоритм обладает высокой производительностью и малой вычислительной сложностью.
В данной главе представлена формальная модель динамичной распределенной системы, использующей массивы данных и их реплики. Динамичность распределенной системы означает, что ряд параметров распределенной системы изменчивы и со временем меняют свои значения. В рамках этой модели сформулирована задача поиска оптимального перераспределения реплик массивов данных с тем, что бы достигалось минимально возможные затраты на функционирование распределенной системы или минимальное среднее время обработки запросов. Учитываются затраты на хранение массивов данных и их реплик, затраты на передачу запросов по каналам связи и затраты на обработку запросов в узлах сети. В силу большой вычислительной сложности сформулированной задачи для ее решения предложен эвристический алгоритм, работа которого проиллюстрирована на примерах. Показана эффективность предложенного алгоритма при решении задачи большой вычислительной сложности.
Данный алгоритм реализован на языке C++ в среде MS Visual Studio 2019.
88
