Производительный специализированный поиск: архитектура, область применимости
Доклад принят в Программу конференции
Леонид Ченский (Ozon Tech — это команда из 6 000+ IT-специалистов в сотнях кросс-функциональных команд. Нас окружают люди, которым небезразличен продукт и которые хотят делать его хорошо: так, как они сделали бы для себя. Для этого у нас есть: 7К микросервисов, высокая доступность, отказоустойчивость, горизонтальное масштабирование, распределение нагрузки; уникальный и сложный highload: 6.9K заказов в секунду и до 382К RPS к бэкенду с мобильных приложений и сайта; 3 ЦОДа, 10 000 серверов и стораджей — у нас одна из крупнейших в РФ IT-платформа; суммарный объём аналитических хранилищ — 60 PB; современный стэк — большинству из наших сервисов не более 3 лет. География Ozon — 8 стран и 49 млн активных пользователей. Мы уникальный, взрослый и сложный highload. Если на рынке нет подходящих решений, мы разрабатываем собственные)

В Мамбе есть задача — поиск по анкетам. Анкет много, из них в поиске участвует порядка 12 млн. Поиск, помимо непосредственной задачи, используется также для фильтрации анкет для нужд различных функциональных блоков сайта, поэтому запросы разнообразные и сложные, с кучей параметров, и искать нужно очень быстро.
Этим занимается демон поиска. Он строит в памяти bitmap-индекс, а приходящие запросы — компилирует и запускает на выполнение. Получающийся код оптимизирован для поиска по одному конкретному запросу, и он практически не содержит условных переходов, поэтому конвейер процессора всегда полный и поиск работает очень быстро.
Тому, как это всё организовано, и будет посвящён доклад.