Производительный специализированный поиск: архитектура, область применимости

Доклад принят в Программу конференции
Иван Бондаренко (Новосибирский государственный университет (НГУ) входит в)Иван Бондаренко

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

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

Тому, как это всё организовано, и будет посвящён доклад.