Netflix улучшил эффективность обработки запросов в своей системе Apache Druid, внедрив новую стратегию кэширования. Теперь 84% аналитических результатов возвращается из кэша, что помогает снизить нагрузку на систему на 33%.
Проблема и её решение
В условиях, когда Netflix обрабатывает триллионы строк этих для своих аналитических панелей, часто возникают проблемы с избыточными вычислениями. Регулярные запросы к данным, например по ошибкам или вовлеченности пользователей за предыдущие часы, воспринимаются как отдельные, даже если информация под ними не изменилась. Это ограничивает эффективность работы традиционных кэш-систем.
Решение Netflix заключается в разбиении результатов запросов на временные сегменты, что позволяет повторно использовать ранее закэшированные данные. Вместо того чтобы кэшировать полные выходные эти запросов, система сохраняет промежуточные агрегаты для фиксированных временных интервалов. При поступлении нового запроса, система повторно использует кэшированные сегменты для стабильной части временного интервала, пересчитывая только самые свежие данные.
Достижения и результаты
По словам Бена Сайкса, инженера Netflix, эта стратегия дала возможность снизить количество запросов к Druid на 33% и улучшить время отклика на 66% для P90 запросов. Для масштаба Netflix это означает уменьшение нагрузки на систему, где обрабатывается более 10 триллионов строк этих в Druid.
В результате новых подходов Netflix наблюдает до 14-кратного снижения объема передаваемых этих и сокращение числа обрабатываемых сегментов запросов. Эта кэш-система пока находится в стадии экспериментов, но её дальнейшее развитие предполагает расширение поддержки шаблонов SQL и более тесную интеграцию функционала непосредственно в Apache Druid.
Значение для разработчиков
Для разработчиков в России и СНГ красноречиво демонстрируется значение эффективного кэширования в больших системах обработки данных. Успех Netflix подтверждает необходимость пересмотра методов работы с кэшом, сосредоточенного на переработке лишь актуальных этих при использовании устоявшихся. В нашем регионе растёт потребность в надёжных аналитических инструментах, и такие оптимизации могут стать решающим преимуществом на рынке.
В дальнейшем Netflix планирует улучшить текущую систему, что может принести ещё большую эффективность. Перспективы включают интеграцию кэширования на уровне Apache Druid, что снизит зависимость от внешних решений и упростит процесс обработки запросов.