Re[3]: Распределение нагрузки
От: Bell Россия  
Дата: 22.07.03 09:08
Оценка:
Здравствуйте, Alexan, Вы писали:


A>Добавлять записи по одной не есть хорошо. Решение задачи предполагает, что мы получим число выгружаемых записей для каждого сервера сразу. Число должно быть >=0.


Считаем среднее арифметическое количество записей на сервер. Для каждого из серверов, где количесиво записей меньше среднего, назначаем количество записей, равное разности среднего числа записей и реального числа. Начинаем с того сервера, у которого количество храняшихся записей минимально. Если после этого остались нераспределенные записи, то можно повторить процедуру. Если получилась ситуация, когда на всез серверах поровну записей, и еще остались нераспределенные — то на все поровну.
Например твой пример:
20, 18, 12 и 0 , добавить 10.
Сред. ар. = 12.5 -> 13. макс. разность дает сервер 4.
13 — 0 == 13, значит на 4-й сервер надо 13 записей. Но поскольку из у нас всего 10, то передаем ему все 10.

добавить еще 10.
Сред. ар. = 15.
для 4-го сервера 5 записей
для 3-го сервера 3 записи

Остальсь 2 записи.
Новое Сред. ар. = 17.
для 4-го (или для 3-го) сервера 2 записи.
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.