
книги2 / монография 31
.pdfОграничение в цикле работы алгоритма будет каждый раз увеличиваться на = 89 и будет принимать значения из множества , состоящего из 12 элементов:
=
= {89,178, 267,356,445, 534,623,712, 801,890,979, 1068}
Все описанные ниже шаги алгоритма образуют тело цикла и будут выполняться при изменении счетчика цикла lc от 1 до Nc. В каждом очередном таком цикле будет использоваться новое значение , рассчитанное следующим образом: =
.
Шаг 3. Первоначальное распределение оригиналов массивов данных
На третьем шаге работы алгоритма определяется распределение в узлах сети оригиналов всех массивов данных, используемых в системе. Для этого в цикле для каждого столбца m матрицы NP (по всем массивам данных) во всех строках k столбца (для всех узлов сети) ищется элемент ( , ) матрицы NP с максимальным значением приоритета узла n для текущего массива m.
Втаблице 3.14 фоном выделены элементы матрицы NP, имеющие наибольшее значение в каждом из столбцов таблицы. Каждый из выделенных элементов таблицы определяет узел n сети и массив m данных, оригинал которого будет размещен в этом узле.
Врезультате работы алгоритма на данном шаге получено первоначальное распределение оригиналов массивов данных,
представленное в матрице 1 (таблица 3.15) и на графе (рисунок 3.3).
59
Таблица 3.14. Матрица NP. Приоритеты узлов сети
|
Узел |
|
|
|
|
|
Массивы данных |
|
|
|
|
|
||||||||
|
сети |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
1 |
|
237 |
|
192 |
|
363 |
273 |
|
|
343 |
|
636 |
|
||||||
|
2 |
|
171 |
|
225 |
|
282 |
186 |
|
|
615 |
208 |
|
|||||||
|
3 |
|
316 |
|
529 |
|
|
912 |
|
336 |
|
|
232 |
242 |
|
|||||
|
4 |
|
666 |
|
|
1 228 |
|
398 |
350 |
|
|
313 |
454 |
|
||||||
|
5 |
|
653 |
|
371 |
|
429 |
260 |
|
|
369 |
291 |
|
|||||||
|
6 |
|
276 |
|
749 |
|
511 |
300 |
|
|
218 |
225 |
|
|||||||
|
7 |
|
330 |
|
335 |
|
376 |
262 |
|
|
569 |
294 |
|
|||||||
|
8 |
|
407 |
|
489 |
|
338 |
343 |
|
|
527 |
407 |
|
|||||||
|
9 |
|
|
1 239 |
|
788 |
|
331 |
297 |
|
|
684 |
|
430 |
|
|||||
|
10 |
|
526 |
|
541 |
|
687 |
|
356 |
|
|
504 |
365 |
|
Таблица 3.15. Первоначальное размещение массивов данных
|
Узел |
|
Номер оригинала массива данных |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сети |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
|
1 |
|
0 |
|
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 |
|
0 |
|
0 |
|
0 |
|
0 |
|
0 |
|
|
|
0 |
|
0 |
|
0 |
|
0 |
|
0 |
|
0 |
|
|
|
7 |
|
|
|
|
|
|
|
||||||
|
|
0 |
|
0 |
|
0 |
|
0 |
|
0 |
|
0 |
|
|
|
8 |
|
|
|
|
|
|
|
||||||
|
9 |
|
1 |
|
0 |
|
0 |
|
0 |
|
1 |
|
0 |
|
|
10 |
|
0 |
|
0 |
|
0 |
|
1 |
|
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60

Из таблицы видно, что каждый из массивов данных, используемых в системе, размещен только в одном из узлов сети. При этом в узле 9 размещено два массива данных: 1 и 5.
Рис. 3.3. Первоначальное размещение оригиналов массивов данных
Шаг 4. Размещение в узлах сети дополнительных реплик массивов данных
Рассмотрим работу данного шага алгоритма при ограничении на величину NPmin минимального приоритета узлов сети, равном:
= (5) = 445
Это ограничение NPmin используется для того, чтобы ограничить общее количество размещенных в узлах сети реплик массивов данных для снижения затрат на хранение и на модификацию данных в репликах. Поэтому, если значение некоторого элемента матрицы ( , ) меньше ограничения NPmin, то в узле k реплика массива m не размещается.
Кроме того, это ограничение используется далее в алгоритме, когда после размещения дополнительных реплик массивов производится удаление экземпляров реплик в узлах, в которых генерируется небольшое количество запросов к данной реплике. Если число генерируемых в узле запросов меньше, чем NPmin, то реплика в данном узле будет удалена.
61

Втаблице 3.16 элементы матрицы NP(k,m), которые выделены серым фоном, соответствуют узлам, в которых должны быть размещены дополнительные реплики соответствующих массивов данных.
Элементы матрицы, в которых подчеркнуты значения приоритетов узлов, соответствующие узлам, в которых ранее были размещены оригиналы массивов данных.
Востальных узлах сети, которым соответствуют ячейки таблицы
сбелым фоном, реплики размещаться не будут.
Таблица 3.16. Приоритеты узлов сети
|
Узел |
|
|
|
|
|
Массивы данных |
|
|
|
|
|
||||||||
|
сети |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
1 |
|
237 |
|
192 |
|
363 |
273 |
|
|
343 |
636 |
|
|||||||
|
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 |
|
330 |
|
335 |
|
376 |
262 |
|
|
569 |
|
294 |
|
||||||
|
8 |
|
407 |
|
|
489 |
|
338 |
343 |
|
|
527 |
|
407 |
|
|||||
|
9 |
|
1239 |
|
|
788 |
|
331 |
297 |
|
|
684 |
430 |
|
||||||
|
10 |
|
|
526 |
|
|
541 |
|
|
687 |
|
356 |
|
|
504 |
|
365 |
|
В результате работы этого шага алгоритма получено распределение X реплик массивов данных по узлам сети, представленное в таблице 3.17.
62

Таблица 3.17. Матрица X – размещение реплик
|
Узел |
|
Размещение реплик массивов данных |
|||||
|
|
|
|
|
|
|
|
|
|
сети |
|
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
|
0 |
0 |
0 |
0 |
0 |
1 |
|
2 |
|
0 |
0 |
0 |
0 |
1 |
0 |
|
3 |
|
0 |
1 |
1 |
0 |
0 |
0 |
|
4 |
|
1 |
1 |
0 |
0 |
0 |
1 |
|
5 |
|
1 |
0 |
0 |
0 |
0 |
0 |
|
6 |
|
0 |
1 |
1 |
0 |
0 |
0 |
|
7 |
|
0 |
0 |
0 |
0 |
1 |
0 |
|
8 |
|
0 |
1 |
0 |
0 |
1 |
0 |
|
9 |
|
1 |
1 |
0 |
0 |
1 |
0 |
|
10 |
|
1 |
1 |
1 |
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
На рисунке 3.4 показана распределенная сеть с размещенными в узлах дополнительными репликами массивов.
Рис. 3.4 Размещение дополнительных реплик массивов
63
Шаг 5. Миграция реплик массивов данных
После того, как определено новое распределение реплик массивов данных, выполняется перемещение (миграция) реплик в новые места их дислокации (узлы сети), если это необходимо согласно новому распределению.
Для работы процесса миграции используются данные из двух матриц: – новое распределение реплик и 1 – предыдущее распределение реплик. В процессе миграции для каждого массива данных (m=1,…,M) в соответствии с новым распределением определяются узел или узлы k сети, в которых должна быть размещена реплика массива m ( = 1). Затем находится узел n сети (n=1,…,K), в котором согласно предыдущему распределению
хранится реплика массива m ( 1 = 1). Таких узлов в сети может
быть несколько, так как несколько реплик одного массива могут быть размещены в разных узлах сети. Из этих узлов с репликой выбирается узел n, находящийся на кратчайшем расстоянии от узла k. После этого реплика массива m из узла n копируется (мигрирует) в узел k. Новое распределение (матрица X) и предыдущее распределение (матрица 1) представлены в таблице 3.18.
Таблица 3.18. Новое и предыдущее размещение реплик массивов данных
|
|
Матрица X |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
Узел |
1 |
2 |
|
3 |
|
4 |
5 |
|
6 |
|
1 |
0 |
0 |
|
0 |
|
0 |
0 |
|
0 |
|
2 |
0 |
0 |
|
0 |
|
0 |
1 |
|
0 |
|
3 |
0 |
1 |
|
0 |
|
0 |
0 |
|
0 |
|
4 |
1 |
0 |
|
0 |
|
0 |
0 |
|
1 |
|
|
|
0 |
|
0 |
|
0 |
0 |
|
0 |
|
5 |
1 |
|
|
|
|
|||||
6 |
0 |
1 |
|
1 |
|
0 |
0 |
|
0 |
|
7 |
0 |
0 |
|
0 |
|
0 |
1 |
|
0 |
|
8 |
0 |
1 |
|
0 |
|
0 |
1 |
|
0 |
|
9 |
0 |
1 |
|
0 |
|
0 |
0 |
|
0 |
|
10 |
1 |
1 |
|
1 |
|
0 |
1 |
|
0 |
|
|
|
|
Матрица 1 |
|
|
||||||
Узел |
1 |
|
2 |
|
3 |
|
4 |
5 |
|
6 |
|
1 |
0 |
|
0 |
|
0 |
|
0 |
0 |
|
1 |
|
|
0 |
|
0 |
|
0 |
|
0 |
0 |
|
0 |
|
2 |
|
|
|
|
|
||||||
|
0 |
|
0 |
|
1 |
|
0 |
0 |
|
0 |
|
3 |
|
|
|
|
|
||||||
4 |
0 |
|
1 |
|
0 |
|
0 |
0 |
|
0 |
|
|
0 |
|
0 |
|
0 |
|
0 |
0 |
|
0 |
|
5 |
|
|
|
|
|
||||||
6 |
0 |
|
0 |
|
0 |
|
0 |
0 |
|
0 |
|
7 |
0 |
|
0 |
|
0 |
|
0 |
0 |
|
0 |
|
8 |
0 |
|
0 |
|
0 |
|
0 |
0 |
|
0 |
|
9 |
1 |
|
0 |
|
0 |
|
0 |
1 |
|
0 |
|
10 |
0 |
|
0 |
|
0 |
|
1 |
0 |
|
0 |
|
64
В процессе миграции производится не только копирование реплик между узлами, но и подсчитываются затраты на миграцию. Затраты на копирование одной реплики рассчитываются как произведение объема реплики на стоимость передачи единицы данных по кратчайшему пути между двумя узлами. Результаты миграции реплик приведены ниже в таблице 3.19.
Таблица 3.19. Результаты миграции реплик между узлами сети
N |
Номер |
Из |
|
В |
Затраты |
|
мигриро- |
узла |
|
узел |
на |
|
вавшей |
|
|
|
миграцию |
|
реплики |
|
|
|
|
|
|
|
|
|
|
1 |
1 |
9 |
|
4 |
143 500 |
2 |
1 |
9 |
|
5 |
51 660 |
3 |
1 |
9 |
|
10 |
40 180 |
4 |
2 |
4 |
|
3 |
46 070 |
5 |
2 |
4 |
|
6 |
48 780 |
6 |
2 |
4 |
|
8 |
102 980 |
7 |
2 |
4 |
|
9 |
135 500 |
8 |
2 |
4 |
|
10 |
113 820 |
9 |
3 |
3 |
|
6 |
45 628 |
10 |
3 |
3 |
|
10 |
104 676 |
11 |
5 |
9 |
|
2 |
86144 |
12 |
5 |
9 |
|
7 |
69 992 |
13 |
5 |
9 |
|
8 |
32 304 |
14 |
5 |
9 |
|
10 |
37 688 |
15 |
6 |
1 |
|
4 |
57 246 |
|
|
|
Итого |
1 116 168 |
Всего скопировано (мигрировало) 15 реплик массивов. Общие затраты на миграцию реплик составили 1 116 168 единиц стоимости.
На этом же шаге работает процедура удаления невостребованных реплик из узлов сети. Реплики удаляются из узлов, приоритет которых ( , ) меньше ограничения , который в данном примере равен 445.
65
При этом реплика, размещенная в узле с низким приоритетом, не может быть удалена из этого узла в случае, если в сети нет других узлов с данной репликой. Фактически данная ситуация соответствует случаю, когда в сети размещен только оригинал массива данных, без реплик.
В рассматриваемом примере это узел 10 с репликой массива 4, приоритет которого равен 356 (см. Таблица 3.17). И хотя приоритет узла меньше ограничения ( = 445), реплику 4 из узла 10 удалить нельзя.
Шаг 6. Проверка ограничений задачи
В формулировке задачи указаны следующие ограничения, которым должно удовлетворять найденное оптимальное распределение X реплик и оригиналов массивов данных:
1). Ограничение (3.3) на общий объем всех реплик массивов, размещенных в одном узле сети, который не должен превышать емкость этого узла.
Данное ограничение проверяется всякий раз при попытке размещения очередной реплики в узле. Если размещение в узле k очередной реплики n приведет к превышению допустимого объема всех размещенных в узле k реплик, т.е.:
([ ∑ ( ) + ( )]) >
=1
Тогда реплика n в узле k не будет размещена. Будет сделана попытка размещения данной реплики в другом узле сети, имеющем меньшее значение приоритета узла.
2). Ограничение (3.4) требует, чтобы количество всех реплик массивов, размещенных в одном узле k сети, не должно превышать максимальное количество реплик, заданное для этого узла. Данное ограничение проверяется всякий раз при попытке размещения очередной реплики в узле. Если размещение в узле k очередной реплики n приведет к нарушению данного ограничения, т.е.: превышению допустимого количество всех размещенных в узле реплик:
66
∑ +1 >
=1
Тогда реплика n в узле k не размещается. Она будет размещена в другом узле сети с меньшим значением приоритета при выполнении условий задачи.
3). Требование (3.5), согласно которому оригинал каждого из массивов данных должен быть размещен в одном из узлов сети, выполняется на шаге «Первоначальное распределение оригиналов массивов данных» алгоритма.
4). Ограничение (3.6) требует, чтобы распределение реплик обеспечивало среднее время обработки запросов к данным, которое не должно превышать заданное максимальное значение. При проверке этого ограничения для полученного распределения реплик вычисляется среднее время обработки запросов в системе и сравнивается с заданным максимальным значением.
Если ограничение (3.6) не выполнено, то происходит переход на шаг алгоритма поиска нового распределения с очередным значением
ограничения .
5). Для проверки ограничения (3.7 4.14) на величину общих затрат SOPC на функционирование выполняется вычисление значения этих затрат для полученного распределения X. После этого полученное значение сравнивается с ограничением SOPC_Max. Если величина SOPC для текущего распределения превышает это ограничение, то происходит переход на шаг алгоритма поиска нового распределения с очередным значением ограничения .
3.3.4.Анализ результатов работы алгоритма
Вформулировке задачи поиска оптимального распределения реплик значение Nc задано равным 12. При этом оптимальное распределение реплик ищется 12 раз при разных значениях
ограничения на приоритеты узлов. Ограничение последовательно принимает значения из множества ,
67

содержащего 12 разных значений, изменяющихся с шагом = 89.
=
={89,178, 267,356,445, 534,623,712, 801,890,979, 1068}
Витоге работы алгоритма получены 12 различных распределений реплик массивов данных при различных исходных параметрах работы алгоритма.
Оптимальное распределение реплик с наименьшими затратами 359,196,032.00 на эксплуатацию системы получено при значении минимального приоритета узлов, равного 534 и при распределении в узлах сети 6 массивов данных и 8 их реплик. Аналитические данные работы алгоритма представлены ниже в виде нескольких таблиц, графиков и комментариев к ним.
Рисунок 3.5 и таблица 3.20 иллюстрируют зависимость затрат на функционирование системы от количества реплик, размещенных в сети в дополнение к оригиналам соответствующих массивов данных.
800 000 000 |
|
|
|
600 000 000 |
|
|
Количество |
|
|
|
|
400 000 000 |
|
|
размещенны |
200 000 000 |
|
|
х массивов и |
|
|
реплик |
|
|
|
|
|
0 |
|
|
|
6 |
6 |
8 |
14 31 59 |
Рис. 3.5. Зависимость величины затрат от количества размещенных реплик массивов
Из данных таблицы и поведения кривой на графике видно, что оптимальная величина затрат на функционирование системы достигнута при размещении в сети 14 реплик в дополнение к оригиналам массивов данных.
68