Netflix TechBlog | Medium на русском
Подписаться
Перестаньте отвечать на один и тот же вопрос дважды: кэширование с учетом интервала для Druid в масштабе Netflix
Netflix внедрила экспериментальный слой кэширования для повышения производительности запросов Druid в огромном масштабе. Эта система кэширования решает проблему избыточных запросов с панелей мониторинга, особенно во время громких событий. Основная идея заключается в кэшировании частей результатов и запросе Druid только для самых свежих данных, что приводит к небольшому компромиссу со степенью устаревания. Используются значения времени жизни (TTL) по экспоненте, при этом более старые данные кэшируются дольше для обработки поздних событий. Система кэширования использует структуру "карта-карт" для эффективного сканирования диапазонов кэшированных данных. Кэш перехватывает запросы в Druid Router, обслуживая результаты или запрашивая Druid по мере необходимости. Решение объединяет кэшированные и свежие данные, возвращая полный результат и асинхронно кэшируя свежие данные. Отрицательное кэширование используется для пустых сегментов, с мерами предосторожности против кэширования конечных пустых сегментов. Система использует слой абстракции данных "ключ-значение" (KVDAL) Netflix, поддерживаемый Cassandra, который предлагает независимые TTL для каждой точки данных. Слой кэширования значительно снизил нагрузку на запросы Druid и улучшил время запросов, особенно во время событий с большим объемом. Система кэширования все еще экспериментальная, и будущие цели включают интеграцию в сам Druid.