2017-01-01 8 views
2

У меня есть около 10 ГБ данных, хранящихся на историческом узле. Однако потребление памяти для этого узла составляет около 2 ГБ.Друид: как кэшировать все данные исторических узлов в памяти

Когда я запускаю запрос выбора, результаты возвращаются в первый раз более чем за 30 секунд. Затем они находятся во втором (из-за брокера).

Моя забота состоит в том, чтобы уменьшить первый выбор времени на любой запрос до одной секунды. Для достижения такой производительности я думаю, что это хороший старт, если исторический узел хранит все данные в памяти.

Вопрос: каковы параметры конфигурации, чтобы заставить исторический узел кэшировать все данные в памяти?

ответ

0

Друид не имеет прямого механизма для принудительного кэширования данных. Чтобы решить эту проблему, вы можете попытаться запустить некоторые фиктивные запросы при запуске, которые будут загружать сегмент данных в память. Существуют различный уровень кэшей, которые вступают в игру, когда друид запросы запускаются:

  1. Cache в исторических узлах
  2. Cache на брокерских узлах
  3. кэш страниц

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

Исторические и брокерские кэши не кэшируют все данные сегмента, а только результат запроса на каждом сегменте, поэтому они не будут полезны, если ваши запросы очень динамичны по своей природе и требуют разных агрегатов и фильтров каждый время.

+0

Хороший ответ и хорошее обходное решение, спасибо! В заключение, может быть, Друид не лучший инструмент для этой цели. По информации, знаете ли вы, есть ли более подходящие инструменты? (Я имею в виду программное обеспечение, в котором вы можете иметь все ваши «большие данные» в памяти для быстрого выбора запросов, без каких-либо workaroud). – DrWho3

+0

Это несколько из баз данных в памяти, которые мне известны: VoltDB и Apache Geode. Я лично не использовал Geode, поэтому я не могу ручаться за его производительность, но мое первоначальное чтение его документации заставило меня поверить, что это может быть хорошим кандидатом для большой базы данных в памяти. –

 Смежные вопросы

  • Нет связанных вопросов^_^