Необходимо разработать приложение, которое:
iptable в БД PostgreSQL. При этом, данные в таблицу постоянно добавляются из сторонних источников, но не модифицируются и не удаляются. Схема таблицы:user_id - пользовательip_address - IPv4 адресdate — время добавления записи. При этом, таблица имеет ограничение uniq(user_id, ip_address)user_id сообщает о том, есть ли между ними взаимосвязь с максимально высокой скоростью (миллисекунды).Для определения того, что пользователи взаимосвязаны, должно соблюдаться условие: у них есть два и более одинаковых ip_address из различных сетей /24, например:
1.2.3.4 и 1.2.4.5 это разные подсети и, если у обоих пользователей есть оба эти адреса, то пользователи взаимосвязаны;1.2.3.4 и 1.2.3.5 это одна подсеть и пользователей нельзя считать взаимосвязанными.Необходимо ограничивать количество одновременных потоков анализа взаимосвязей, чтобы не исчерпать ресурсы сервера (если потоков несколько).
Использование вероятностных структур данных допустимо, precision и recall rate обсуждаемы. В любом случае, cервер должен хранить информацию о связках ip и пользователя между перезапусками, для этого можно использовать БД sqlite, PostgreSQL и иные самодостаточные хранилища данных / способы обеспечения персистентности.
Объем уникальных user_id + ip_address гарантированно превышают объем RAM.
Требований к модели хранения данных нет, допустимо применять хэштаблицы с промежуточными значениями, не соблюдать нормализацию данных (для достижения скорости).