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

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

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

9 ответов

19 просмотров
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- Автор вопроса

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

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

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Привет, запускаю werf в dind в k8s, получаю ошибку на этапе build/beforeSetup: /.werf/stapel/embedded/bin/bash: /.werf/scripts/5898bdfe5214357d3706b879cc8d3d78460fb379607cbd...
florius0
7
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Дорогие любители Прекрасной Джулии! Есть кто-то имеющий практический опыт построения ML для Систем Управления? Нам нужно сделать нейросеть для автоматической подстройки пара...
Roman Timo
4
С той же поддержкой Android в тулчейне, если кому интересно. На Swift Forums шло убогое обсуждение всякой херни годами, но ничего годного так и не появлялось. Пришел vgorloff ...
iMike
1
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Приветствую ребята,у меня база есть,прорешал много задач с литкода,там деревья,списки, бэктрэкинг и все остальное,что мне сейчас делать?есть может куда устроиться поработать,е...
Aקuст Lеתסuд Aקuст Lеתסuд
5
Всех приветствую. Направьте меня в нужное русло. Постепенно переписываю проект с delphi на lazarus. Приложение - обычный windows/linux клиент для бд firebird. Тут все хорошо. ...
Mishutka
6
Карта сайта