Вероятность c пересылка сообщений на подмножество серверов - PullRequest
0 голосов
/ 06 февраля 2020

Существует n серверов (n> = 1), и мы хотим перенаправить часть входящих запросов (используя константу ratio, которая находится между 0 и 1) на эти серверы.

Цель состоит в том, чтобы получить в среднем n x ratio переадресованных сообщений, где вероятность выбора каждого сервера в качестве цели для получения запроса примерно одинакова.

Простое решение - использовать ratio, чтобы отфильтровать входящие запросы и затем перенаправить каждый запрос на все n серверы, что дает нам в среднем n x ratio. Что нам действительно нужно, так это перенаправлять часть запросов на подмножество доступных серверов каждый раз, и в качестве среднего числа переадресованных запросов по-прежнему остается n x ratio.

У кого-нибудь есть решение?

1 Ответ

1 голос
/ 07 февраля 2020

Переадресация каждого запроса на n * ratio серверов.

Если, вероятно, n * ratio = k не является целым числом, перешлите на floor(k) или ceil(k) серверы с вероятностью переадресация на ceil(k), являющуюся k - floor(k).

С точки зрения выбора серверов просто выполните Fisher-Yates shuffle , пока не будет выбрано произвольно выбранное количество серверов.

...