Нормализуйте IPv4/IPv6 и разделите справочные данные адресов от истории событий. Для точного поиска и поиска сетей нужны разные ключи доступа.
Конструирование поисковой инфраструктуры для IP‑адресов
Нормализуйте IPv4/IPv6 и разделите справочные данные адресов от истории событий. Для точного поиска и поиска сетей нужны разные ключи доступа.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо разработать архитектуру системы, которая:
- Индексирует и сохраняет информацию, привязанную к IP‑адресам (например, географическое положение, историю запросов, принадлежность к автономной системе).
- Поддерживает поиск как по полному IP (например, 192.0.2.1), так и по диапазону сети (например, 192.0.2.0/24).
- Способна масштабироваться до обработки миллиардов записей.
Ответ
Нормализуйте IPv4/IPv6 и разделите справочные данные адресов от истории событий. Для точного поиска и поиска сетей нужны разные ключи доступа.
Адрес храните бинарно либо в специализированном IP-типе, с явной политикой IPv4-mapped IPv6. CIDR превращается в границы или префикс, а не сравнивается как строка. Точный поиск использует адресный индекс, сети — диапазонный/префиксный; шардирование по одному хешу IP затруднит запрос широких диапазонов.
Историю событий партиционируйте по времени и адресному сегменту, справочники ASN/геолокации версионируйте по сроку действия. Для миллиардов строк нужны retention, агрегаты и ограничение размеров выдачи. Обновления индекса доставляются идемпотентно; доступ к истории запросов ограничивается отдельно от публичных IP-справочников.