Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги2 / монография 31

.pdf
Скачиваний:
0
Добавлен:
10.05.2024
Размер:
3.71 Mб
Скачать

Ограничение в цикле работы алгоритма будет каждый раз увеличиваться на = 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

Соседние файлы в папке книги2