Холодный сторадж своими руками: как вынести обратный индекс в базу и не пожалеть
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
Обратный индекс — это основной способ поиска по ключевым словам среди множества документов. Когда он занимает значительную часть RAM, возникает необходимость вынести его во внешнюю память. Например, в базу данных. Профиль нагрузки при этом значительно меняется, смещаясь с вычислений на чтение данных и их пересылку по сети.
Расскажу, как мы прошли этот путь в сервисе метаданных Мониторинга Яндекса. Частые деплои в Kubernetes и других динамичных средах создают метрики с высокой кардинальностью, что приводит к росту использования RAM и повышению времени выполнения запросов. Нам был нужен слой холодного хранения, который бы позволил сохранить приемлемую скорость доступа при поиске метрик. Для этого мы поддержали возможность работы с блобом RoaringBitmap прямо в YDB с помощью пользовательских функций (UDF).
Разберём:
- почему подход «положить индекс в базу» не работает — какие способы хранения и структуры данных мы попробовали
- как вычисления рядом с данными (pushdown) решают проблему нагрузки на сеть
- как можно бороться с IO-амплификацией на низкоселективных запросах
- как сделать эффективный фильтр активности метрики в сервисе метаданных без постоянных походов за данными
- как всё это можно попробовать у себя
Разработчик в собственной системе Мониторинга в Yandex Cloud
Видео
Другие доклады секции
Базы данных и системы хранения