min_absolute_delay_to_close
Délai absolu minimal avant la fermeture, l’arrêt du traitement des requêtes et l’absence de renvoi de Ok lors de la vérification de l’état.min_columns_to_activate_adaptive_write_buffer
Permet de réduire l’utilisation de la mémoire des tables comportant un grand nombre de colonnes grâce à des tampons d’écriture adaptatifs. Comparé au nombre de flux qu’une partie large écrit, qui peut largement dépasser son nombre de colonnes : unMap comportant de nombreux buckets, ou un Array ou Tuple profondément imbriqué, écrit de nombreux flux
pour une seule colonne, et un tampon d’écriture est alloué par flux.
Valeurs possibles :
- 0 - désactivé
- 1 - toujours activé
min_compress_block_size
Taille minimale des blocs de données non compressées requise pour la compression lors de l’écriture du mark suivant. Vous pouvez également spécifier ce paramètre dans les paramètres globaux (voir le paramètre min_compress_block_size). La valeur spécifiée lors de la création de la table remplace la valeur globale de ce paramètre.min_index_granularity_bytes
Taille minimale autorisée des granules de données, en octets. Fournit une protection contre la création accidentelle de tables avec une valeur très faible deindex_granularity_bytes.
min_marks_to_honor_max_concurrent_queries
Le nombre minimal de marks lus par la requête pour appliquer le paramètre max_concurrent_queries.Les requêtes resteront limitées par d’autres paramètres
max_concurrent_queries.- Entier positif.
0— Désactivé (la limitemax_concurrent_queriesne s’applique à aucune requête).
min_merge_bytes_to_use_direct_io
Le volume minimal de données d’une opération de fusion requis pour utiliser l’accès en E/S directes au disque de stockage. Lors de la fusion de parties de données, ClickHouse calcule le volume de stockage total de toutes les données à fusionner. Si ce volume dépassemin_merge_bytes_to_use_direct_io octets, ClickHouse lit et écrit les
données sur le disque de stockage à l’aide de l’interface d’E/S directes (option O_DIRECT).
Si min_merge_bytes_to_use_direct_io = 0, les E/S directes sont désactivées.
min_partition_age_to_force_merge_seconds
Fusionne les parties de données d’une partition si chacune d’entre elles est plus ancienne que cette valeur, c’est-à-dire que la partition ne reçoit plus d’inserts. Contrairement àmin_age_to_force_merge_seconds associé à
min_age_to_force_merge_on_partition_only, la partition n’a pas besoin de tenir
dans une seule fusion : chaque fusion respecte toujours
max_bytes_to_merge_at_max_space_in_pool. Fonctionne avec les sélecteurs de fusion
Simple et StochasticSimple.
L’âge comparé ici est celui de la partie de données la plus récente de la partition
(now - modification_time, minimisé sur ses parties de données), si bien que la règle ne
s’arme qu’une fois que toutes les parties de données ont dépassé cette valeur. Toute nouvelle
partie de données la réinitialise : un insert, une mutation, ainsi que chaque fusion que ce
paramètre assigne lui-même, puisque la partie de données fusionnée est nouvelle. Le forçage se
désarme donc dès qu’une fusion forcée aboutit et ne se réarme qu’après un nouvel
écoulement de cette durée sans nouvelle partie de données ; une partition nécessitant
plusieurs fusions est ainsi compactée au fil de rounds successifs espacés de cet
interval plutôt qu’en une passe continue.
Le forçage fonctionne exactement comme min_age_to_force_merge_seconds : il
lève l’exigence de ratio de taille qui empêche normalement l’assignation d’une
fusion déséquilibrée, ainsi que le plancher min_parts_to_merge_at_once, de sorte
qu’une fusion forcée peut porter sur moins de parties de données que ce plancher ne l’exige.
Aucune autre heuristic n’est désactivée :
merge_selector_window_size borne toujours les parties de données examinées, et
merge_selector_enable_heuristic_to_remove_small_parts_at_right retire toujours
une petite partie de données en fin d’une plage sélectionnée de trois parties de données ou plus. Si un
workload nécessite la désactivation de l’une ou l’autre, il faut le faire
explicitement via son propre paramètre.
Avec les sélecteurs de fusion Simple et StochasticSimple, ce paramètre ne peut pas
être combiné à min_age_to_force_merge_seconds associé à
min_age_to_force_merge_on_partition_only. Ce couple fusionne une partition
entière d’un seul coup, et seule une telle fusion est marquée final, ce qui permet à
un ReplacingMergeTree d’exécuter CLEANUP ; forcer des fusions régulières selon
l’âge de la partition prendrait le pas dessus. Utilisez ce couple pour les
partitions qui tiennent dans une seule fusion, et ce paramètre pour celles qui n’y
tiennent pas. Les autres sélecteurs ignorent ce paramètre : la combinaison est
donc acceptée avec eux.
Possible values:
- entier positif.
min_parts_to_merge_at_once
Nombre minimal de parties de données que le sélecteur de fusion peut retenir pour une fusion en une seule fois (paramètre de niveau expert, ne le modifiez pas si vous ne comprenez pas ce qu’il fait). 0 - désactivé. Fonctionne avec les sélecteurs de fusion Simple et StochasticSimple.min_replicated_logs_to_keep
Conserve environ ce nombre des derniers enregistrements dans le journal de ZooKeeper, même s’ils sont obsolètes. Cela n’affecte pas le fonctionnement des tables : ce paramètre est utilisé uniquement pour diagnostiquer le journal de ZooKeeper avant son nettoyage. Valeurs possibles :- Tout entier positif.
min_unreserved_disk_space_for_merge
Maintient la quantité spécifiée d’espace disque non réservé (en octets) hors de portée des fusions en arrière-plan, afin qu’elles ne puissent pas priver les insertions d’espace. Cette quantité est soustraite de l’espace libre, et la limite de la taille totale des parts source d’une fusion est calculée à partir de l’espace restant, avec un facteur de sécurité supplémentaire, de sorte que la plus grande fusion autorisée reste nettement en deçà. La limite diminue à mesure que le disque se remplit et atteint zéro lorsque l’espace libre tombe à cette quantité ; plus aucune fusion en arrière-plan n’est alors sélectionnée. (0 signifie désactivé) Contrairement àkeep_free_space_bytes, l’espace protégé reste utilisable par ClickHouse
lui-même : il est uniquement exclu de la planification des fusions. Les mutations ne sont pas limitées par
ce paramètre et peuvent toujours consommer l’espace protégé, et le paramètre n’a aucun effet sur
les disques à espace illimité (comme le stockage d’objet).
Les fusions déclenchées par OPTIMIZE avec FINAL ou
avec une PARTITION explicite ignorent ce paramètre. Les fusions qui suppriment des parts entièrement
expirées sont sélectionnées dès que la limite est supérieure à zéro, quelle que soit leur
taille, et aucune ne l’est lorsqu’elle vaut zéro. Chaque fusion réserve au moins 1 MiB : une
fusion lancée alors qu’il reste moins de 1 MiB au-dessus de l’espace protégé peut donc en consommer
jusqu’à 1 MiB. Une réplique ReplicatedMergeTree exécute également les suppressions en file d’attente lorsque sa
propre limite est nulle, si un TTL de ligne sans WHERE est le seul TTL de la table. Avec un
TTL GROUP BY, WHERE ou de colonne, une telle suppression réécrit les lignes restantes :
ReplicatedMergeTree la reporte en fonction de la taille de ses parts, mais MergeTree
ne le fait pas et peut écrire ces lignes dans l’espace protégé.
Une fois la limite à zéro, un simple OPTIMIZE n’affecte aucune fusion : il est sans effet, ou
lève CANNOT_ASSIGN_OPTIMIZE avec optimize_throw_if_noop = 1. Utilisez FINAL
ou une PARTITION explicite pour fusionner dans l’espace protégé. Sur
ReplicatedMergeTree, cette exemption n’est enregistrée dans l’entrée du journal de réplication
que si le paramètre est non nul sur la réplique qui la met en file d’attente ; ainsi, un
OPTIMIZE mis en file d’attente alors que le paramètre valait 0 reste soumis à la marge de sécurité.
ALTER TABLE ... MODIFY SETTING n’est pas répliqué : attribuez donc la même valeur à chaque
réplique. Une réplique disposant d’une marge plus importante l’applique à nouveau aux fusions affectées
par d’autres répliques et peut les reporter indéfiniment. Conservez la valeur 0 jusqu’à ce que toutes les
répliques exécutent une version qui prend en charge ce paramètre : une réplique plus ancienne ne peut pas analyser
les entrées de log écrites pour les fusions exemptées et cesse de récupérer toute nouvelle
entrée pour la table, y compris celles des insertions ordinaires.