TLDR Сила метода “Двух случайных выборов”
Published in
1 min readJul 23, 2017
Как балансировать нагрузку между узлами, учитывая их текущую загруженность? Можно каждый раз когда происходит запрос выбирать наименее нагруженный узел. Но получение информации о нагрузке требует доп.затрат.
Можно оптимизировать затраты используя метод «Двух случайных выборов»:
- Выбираем два любых узла
- Узнаем их загруженность, а не загруженность всех узлов — вот где экономия.
- Выбираем наименее загруженный из двух
В оригинальной статье доказано, что на практике этот метод является оптимальным.
Другие примеры использования этого метода:
- При хэшировании – равномерное распределение элементов между списками содержащими коллизии
- Равномерное использование распределенной памяти
- Избегание перегрузок сети при маршрутизации в виртуальных сетях