min_absolute_delay_to_close
Минимальная абсолютная задержка перед закрытием, прекращением обработки запросов и возвратом не-Ok при проверке status.min_columns_to_activate_adaptive_write_buffer
Позволяет снизить использование памяти для таблиц с большим числом столбцов за счет адаптивных буферов записи. Сравнивается с количеством потоков, в которые записывается широкая часть; оно может значительно превышать число столбцов:Map с большим числом бакетов или глубоко вложенный Array либо Tuple записывает много потоков
для одного столбца, и для каждого потока выделяется один буфер записи.
Возможные значения:
- 0 - отключено
- 1 - всегда включено
min_compress_block_size
Минимальный размер блоков несжатых данных, необходимый для сжатия при записи следующей mark. Этот параметр также можно указать в глобальных настройках (см. параметр min_compress_block_size). Значение, указанное при создании table, переопределяет глобальное значение этого параметра.min_index_granularity_bytes
Минимально допустимый размер гранул данных в байтах. Используется как защита от случайного создания таблиц с очень низким значениемindex_granularity_bytes.
min_marks_to_honor_max_concurrent_queries
Минимальное количество marks, которое должен прочитать запрос, чтобы была применена настройка max_concurrent_queries.Запросы по-прежнему будут ограничиваться другими настройками
max_concurrent_queries.- Положительное целое число.
0— отключено (ограничениеmax_concurrent_queriesне применяется ни к одному запросу).
min_merge_bytes_to_use_direct_io
Минимальный объём данных для операции слияния, при котором используется прямой I/O-доступ к диску хранилища. При слиянии частей данных ClickHouse вычисляет общий объём хранилища для всех данных, подлежащих слиянию. Если этот объём превышаетmin_merge_bytes_to_use_direct_io байт, ClickHouse читает и записывает
данные на диск хранилища через интерфейс прямого I/O (опция O_DIRECT).
Если min_merge_bytes_to_use_direct_io = 0, прямой I/O отключается.
min_partition_age_to_force_merge_seconds
Выполнять слияние частей в партиции, если каждая часть в ней старше этого значения, то есть в партицию больше не поступают вставки. В отличие отmin_age_to_force_merge_seconds вместе с min_age_to_force_merge_on_partition_only,
партиция не обязана укладываться в одно слияние: каждое слияние по-прежнему
соблюдает max_bytes_to_merge_at_max_space_in_pool. Работает для селекторов
слияний Simple и StochasticSimple.
Здесь сравнивается возраст самой молодой части в партиции
(now - modification_time, минимум по её частям), поэтому правило
срабатывает только после того, как каждая часть станет старше этого значения.
Любая новая часть сбрасывает его: вставка, мутация, а также каждое слияние,
назначенное самой этой настройкой, поскольку слитая часть является новой.
Таким образом, принудительное слияние отключается сразу после того, как
очередное принудительное слияние завершено, и включается снова только после
того, как это значение снова истечёт без появления новых частей; поэтому
партиция, которой требуется несколько слияний, уплотняется за несколько
последовательных раундов, разнесённых этим интервалом, а не за один непрерывный
проход.
Принудительное слияние работает точно так же, как min_age_to_force_merge_seconds:
оно отменяет требование к соотношению размеров, которое обычно не даёт назначить
несбалансированное слияние, а также отменяет нижнюю границу
min_parts_to_merge_at_once, поэтому принудительное слияние может охватывать
меньше частей, чем требует эта граница. Никакие другие эвристики не отключаются:
merge_selector_window_size по-прежнему ограничивает набор рассматриваемых
частей, а merge_selector_enable_heuristic_to_remove_small_parts_at_right
по-прежнему отсекает замыкающую маленькую часть у выбранного диапазона из трёх
и более частей. Любую из них, которую требуется отключить для конкретной
рабочей нагрузки, необходимо отключать явно через её собственную настройку.
При использовании селекторов слияний Simple и StochasticSimple эту настройку
нельзя сочетать с min_age_to_force_merge_seconds вместе с
min_age_to_force_merge_on_partition_only. Эта пара сливает всю партицию
целиком, и только такое слияние помечается как финальное, что и позволяет
ReplacingMergeTree выполнить CLEANUP; принудительные обычные слияния по
возрасту партиции опередили бы его. Используйте эту пару для партиций,
укладывающихся в одно слияние, а данную настройку — для тех, которые не
укладываются. Другие селекторы игнорируют эту настройку, поэтому с ними такое
сочетание допускается.
Возможные значения:
- Положительное целое число.
min_parts_to_merge_at_once
Минимальное количество частей данных, которые селектор слияний может выбрать для одновременного слияния (настройка экспертного уровня; не изменяйте её, если не понимаете, как она работает). 0 — отключено. Работает для селекторов слияний Simple и StochasticSimple.min_replicated_logs_to_keep
Хранить примерно такое количество последних записей в журнале ZooKeeper, даже если они устарели. На работу таблиц это не влияет: используется только для диагностики журнала ZooKeeper перед очисткой. Possible values:- Любое положительное целое число.
min_unreserved_disk_space_for_merge
Оставляет указанный объём незарезервированного дискового пространства (в байтах) недоступным для фоновых слияний, чтобы они не лишали ресурсов операции вставки. Этот объём вычитается из свободного пространства, а ограничение на суммарный размер исходных частей слияния вычисляется из остатка с дополнительным коэффициентом запаса, поэтому максимально допустимое слияние остаётся значительно меньше этого значения. По мере заполнения диска ограничение уменьшается и достигает нуля, когда свободного пространства остаётся ровно указанный объём; с этого момента фоновые слияния не выбираются вовсе. (0 — настройка отключена) В отличие отkeep_free_space_bytes, защищённое пространство остаётся доступным для самого ClickHouse:
оно лишь исключается из планирования слияний. Мутации эта настройка не ограничивает,
и они по-прежнему могут занимать защищённое пространство; кроме того, настройка не действует на
диски с неограниченным пространством (например, объектное хранилище).
Слияния, инициированные командой OPTIMIZE с FINAL или
с явно указанной PARTITION, игнорируют эту настройку. Слияния, удаляющие полностью
устаревшие части, выбираются всякий раз, когда ограничение больше нуля, независимо от их
размера, а при нулевом ограничении не выбирается ничего. Каждое слияние резервирует не менее 1 MiB, поэтому
слияние, запущенное, когда сверх защищённого пространства осталось меньше 1 MiB, может занять
до 1 MiB из него. Реплика ReplicatedMergeTree выполняет стоящие в очереди удаления и при нулевом
собственном ограничении, если единственный TTL таблицы — TTL строк без WHERE. При TTL с
GROUP BY, WHERE или TTL столбцов такое удаление перезаписывает оставшиеся строки:
ReplicatedMergeTree откладывает его с учётом размера затрагиваемых частей, а MergeTree
этого не делает и может записать строки в защищённое пространство.
Когда ограничение равно нулю, обычный OPTIMIZE ничего не назначает: он либо ничего не делает, либо
генерирует исключение CANNOT_ASSIGN_OPTIMIZE при optimize_throw_if_noop = 1. Чтобы выполнить слияние с использованием защищённого пространства, используйте FINAL
или явно указанную PARTITION. В
ReplicatedMergeTree это исключение фиксируется в записи журнала репликации,
только если настройка имеет ненулевое значение на реплике, которая ставит слияние в очередь, поэтому
OPTIMIZE, поставленный в очередь при значении 0, по-прежнему выполняется с учётом запаса.
ALTER TABLE ... MODIFY SETTING не реплицируется, поэтому задайте на всех репликах
одинаковое значение: реплика с бо́льшим запасом повторно применяет его к слияниям, назначенным
на других репликах, и может откладывать их бесконечно. Оставляйте значение 0, пока все
реплики не будут обновлены до версии, поддерживающей эту настройку: более старая реплика не может разобрать
записи журнала, созданные для слияний-исключений, и перестаёт получать последующие
записи для таблицы, в том числе записи для обычных вставок.