Size: a a a

ClickHouse не тормозит

2021 February 16

N

Nick in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
ну так они для разного совсем нужны, я же не в курсе какая у вас проблема, куда стреляем-то?

во первых не надо использовать storage_configuration вместо raid, т.е. понятно зачем storage_configuration нужен для tiering, когда смесь из hdd и nvme , но mdraid порвет storage_configuration по скорости раз 5.
Так, уже чуть более понятно.
Непонятна логика - вот если у меня один сторадж - мне его куда класть? И туда и сюда? Или только в одну из опций - path или storage_configuration?
источник

D

Dj in ClickHouse не тормозит
Nick
Так, уже чуть более понятно.
Непонятна логика - вот если у меня один сторадж - мне его куда класть? И туда и сюда? Или только в одну из опций - path или storage_configuration?
тогда не делайте storage_configuration совсем и используйте path, просто проще...
источник

N

Nick in ClickHouse не тормозит
Dj
тогда не делайте storage_configuration совсем и используйте path, просто проще...
То есть получается что они в каких-то случаях взаимозаменяемые?
Это не совсем понятно из документации
источник

N

Nick in ClickHouse не тормозит
но mdraid порвет storage_configuration по скорости раз 5 - есть ли какие-то тесты на это? чтобы сослаться. Заранее спасибо
источник

D

Dj in ClickHouse не тормозит
Nick
То есть получается что они в каких-то случаях взаимозаменяемые?
Это не совсем понятно из документации
если не определен policy - используется path
источник

N

Nick in ClickHouse не тормозит
Аллилуйя, спасибо, теперь до меня дошло.
источник

N

Nick in ClickHouse не тормозит
Спасибо ребзи
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nick
Так, уже чуть более понятно.
Непонятна логика - вот если у меня один сторадж - мне его куда класть? И туда и сюда? Или только в одну из опций - path или storage_configuration?
вас чем не устраивает /var/lib/clickhouse ?
источник

AC

Artem Chekunov in ClickHouse не тормозит
Nick
Спасибо ребзи
Екатеринбург?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nick
но mdraid порвет storage_configuration по скорости раз 5 - есть ли какие-то тесты на это? чтобы сослаться. Заранее спасибо
это про 6 volume / disks в storage_configuration VS 6 дисков в mdraid
источник

N

Nick in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
вас чем не устраивает /var/lib/clickhouse ?
Устраивает, непонятно было как вместе использовать path и storage_configuration, подсказали что если нет policy тогда будет path использоваться
источник

N

Nick in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
это про 6 volume / disks в storage_configuration VS 6 дисков в mdraid
инфа сотка? Спасибо, буду много думать
А какой рейд имеется ввиду?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Artem Chekunov
Екатеринбург?
в 80х в Череповце вполне так говорили
источник

N

Nick in ClickHouse не тормозит
Захотел пересмотреть Boston Legal
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nick
инфа сотка? Спасибо, буду много думать
А какой рейд имеется ввиду?
10й

я чего-то непонимаю, то у вас один диск то много
источник

N

Nick in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
10й

я чего-то непонимаю, то у вас один диск то много
Пишем ансибл роль, будет поддерживать и то и другое
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
важно понять что все записи во всех партах во всех колонках отсортированы в этом порядке
поэто мерж ничего не сортирует
малокардинальные поля вначале индекса (toStartOfDay(datetime) = 30 значений в партиции) позволяют делать как бы fast-full-index-scan в терминах оракла и использовать задние поля без передних
toDate(datetime) -- экономит память, datetime 32 бита, date 16 бит
О, что индекс всегда в памяти не знал. Спасибо.

Я как раз на выходных пробовал подобрать оптимальный index_granularity для таблицы BigTable (id UUID, ts DateTime, ...) engine=MergeTree() order by (toDate(ts), id), которая используется в запросах вида select * from BigTable where id in (select id from SmallTableWithRandomIDs) and ts>=today()-7.

И результат получился странный: с уменьшением index_granularity (пробовал варианты от 1024 до 8) у меня уменьшался объём используемой памяти, уменьшалось количество прочитанных строк, но увеличивалось время выполнения запроса.

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

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Alexey Sokolov
О, что индекс всегда в памяти не знал. Спасибо.

Я как раз на выходных пробовал подобрать оптимальный index_granularity для таблицы BigTable (id UUID, ts DateTime, ...) engine=MergeTree() order by (toDate(ts), id), которая используется в запросах вида select * from BigTable where id in (select id from SmallTableWithRandomIDs) and ts>=today()-7.

И результат получился странный: с уменьшением index_granularity (пробовал варианты от 1024 до 8) у меня уменьшался объём используемой памяти, уменьшалось количество прочитанных строк, но увеличивалось время выполнения запроса.

С прочитанными строками и памятью понятно, этого и добивался. Можете объяснить почему увеличилось время запроса (ведь дорогих чтений с диска столько же, размер обрабатываемых в памяти блоков тоже меньше)?
>с уменьшением index_granularity меня уменьшался объём используемой памяти
чего? что? памяти используемой запросом? или сервером?

возможно ваш запрос поднимает засечки в кэш
кэш засечек это отдельная боль https://github.com/ClickHouse/ClickHouse/issues/18692#issuecomment-754334323
КХ совершенно не подходит для запросов select * from BigTable и для маленьких index_granularity
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Nick
Пишем ансибл роль, будет поддерживать и то и другое
используйте mdraid с far2 layout
источник

N

Nick in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
используйте mdraid с far2 layout
Это получается двойной redundancy - будет и реплика внутри replicated merge tree, и в raid10 будет дубликат данных, слишком жирно
источник