Как алгоритм Tinder продолжает быстро находить пользователей
Я разрабатываю онлайн-сервис, совсем не похожий на Tinder, однако их алгоритм поможет мне понять, как правильно масштабировать.
Я предполагаю, что каждый из их пользователей имеет skipped
множество пользователей, которые были посещены ранее. Я не знаю точно, что они используют, это не может быть redis
но есть эта страница, которая как бы объясняет реализацию в redis (не обязательно, но информативно).
Я предполагаю, что пользователь выбран случайным образом из users
запрошенный с сервера (допустим, нас не заботит возраст, пол и т. д.) только люди из вашего местоположения. И затем они проверяют, есть ли этот пользователь в skipped
задавать.
Теперь, что происходит, если кто-то вручную или запускает бота, чтобы пропустить каждого отдельного пользователя. Разве этот процесс не начинает отставать как размер skipped
приближается к размеру users
, Достаточно скоро каждая проверка будет уже skipped
и он попадет в цикл, просто проверяя нового случайного пользователя каждый раз, и все будут замечены.
Как они поддерживают этот процесс быстро? Там должно быть нечто большее, чем просто ограничение на сколько skipped
люди, которые у вас есть, потому что, возможно, вы пропустите много людей, которые никогда не возвращаются онлайн и ваши skipped
больше по размеру, чем количество людей из users
,