Как я могу реализовать поисковую систему в одноранговой сети? - PullRequest
0 голосов
/ 23 января 2020

Это не поисковая система в традиционном смысле. Способ обработки запросов совершенно другой, но способ их отправки (отказов от одного реле к другому) выполняется стандартным способом.

Архитектура

  • Все android устройства связаны с ближайшими к ним с помощью одноранговой сети , как торрент-приложения.

  • Все У android устройств будет непрерывно выполняемое фоновое задание , которое использует незаметно небольшое количество ресурсов для ответа на запросы.

  • Все android устройства должны будут отправить ответ на запрос , если у них есть ответ на него.

Пример

Допустим, сеть состоит из из 10 000 пользователей, и пользователь хотел бы выполнить поиск по запросу «stackoverflow» (<100 байт). </p>

  1. Устройство android, которое хотело бы задать этот запрос, должно будет отправить это к 32 android устройствам, которые являются самыми близкими к этому.

  2. Тогда те android devic Отправьте запрос на 32 android ближайших к ним устройства. Всего за 2 отскока я могу охватить 32 * 32 * 32 = 32 768 устройств.

  3. После того, как устройство отправляет запрос, который был отправлен на него, оно начинает обрабатывать его, читая меньше чем мегабайт данных из памяти устройства.

  4. Если устройство нашло ответ, оно отправляет его обратно на устройство, которое первоначально отправило запрос. Очевидно, что почти ни одно устройство, которое имеет ответ, не будет напрямую связано с исходным устройством, которое задало вопрос, поэтому может быть задействован один http-сервер.

  5. Если нет, оно остается неактивным до тех пор, пока на него отправляется следующий запрос.

Я буду использовать Android OS исключительно потому, что именно здесь фоновые задачи могут выполняться непрерывно и без ограничений. См. этот пост.

Я также буду использовать Одноранговую сеть , потому что она может масштабироваться бесконечно без серьезных проблем, подобных тем, с которыми я столкнусь при одиночном сервер, веб-сокеты или Firebase облачных сообщений. См. этот пост.

...