184 похожих чатов

Всем привет, вопрос по использованию ClickHouse query cache. Столкнулся со

следующим поведением: при запросе к distributed таблице с параметром use_query_cache=1, помимо основного запроса на ноде инициаторе, в кеш на каждом шарде таблицы попадают все внутренние запросы к таблице лежащей под distributed. Запросы к шардам выполняются под отдельным юзером interserver. Как сделать так, чтобы кеш использовался только для основного запроса на ноде инициаторе? Из мыслей только попробовать завести отдельный профайл для intersever и там отключить enable_writes_to_query_cache, enable_reads_from_query_cache. Кто-то сталкивался или имеет хорошее решение? Прошу поделиться.

9 ответов

31 просмотр
Alexander- Автор вопроса

Поптытки назначить профиль или settings с отключенным кешем запросов для interserver провалились. Прошу мудрого совета 🤔

Alexander
Поптытки назначить профиль или settings с отключен...

как сделать так чтобы use_query_cache не передался дальше по цепочке, IMHO сложно SELECT * FROM (SELECT * FROM distributed_table WHERE ... SETTINGS use_query_cache=0) SETTINGS use_query_cache=1 не думаю что такое прокатит кроме того памяти будет жрать больше

Alexander- Автор вопроса
Slach [altinity]
как сделать так чтобы use_query_cache не передался...

Я вот думаю, должно ли оно вообще работать так, как работает by design. Советуете ли вы завести issue?

Alexander
Я вот думаю, должно ли оно вообще работать так, ка...

да логично это две независимые части, настройки и engine=Distributed исполнение запроса use_query_cache это просто настройка поведения которая в distributed запросах передается на все остальные ноды, чтобы добиться одинакового поведения соответсвенно кеш включается везде вы же хотите ускорения вот вам ускорение, распределенный кеш какая гарантия того что в следующий раз distributed запрос не будет исполнен на другой ноде кластера? и он уже будет ускорен, потому что локальные данные для него из локальных таблиц в кеше... но вообще не очень понятно, зачем вам вообще query cache? вы понимаете как этот кеш инвалидируется? вы меряете miss / hit соотношение?

Alexander- Автор вопроса
Slach [altinity]
да логично это две независимые части, настройки и...

Имею кластер с неизменяемыми данными, сделал чтобы запросы попадли на нужные шарды, чтобы был хороший cache hits. С этим всё ок. Но вот этот cache amplification который под капотом образовался, мне совсем не нужен. Для запросов LIMIT 50 OFFSET 100000 нода инициатор закеширует 50 строк, а все шарды под капотом 100050, мне кажется так не должно быть 🫤

Alexander
Имею кластер с неизменяемыми данными, сделал чтобы...

SELECT * FROM (SELECT * FROM distributed_table WHERE ... SETTINGS use_query_cache=0) SETTINGS use_query_cache=1 вот так пробовали? сам по себе кеш не знает в каком контексте он исполняется...

Alexander- Автор вопроса
Slach [altinity]
SELECT * FROM (SELECT * FROM distributed_table WHE...

Да, так не прокидывается сеттинг, спасибо, но красота решения, конечно, смущает сильно.

Alexander
Да, так не прокидывается сеттинг, спасибо, но крас...

вы сказали что вам надо 50 записей закешировать, так оно закеширует 50 записей... как вы и хотели и получаете то поведение которое хотели

Alexander- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
9
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
Карта сайта