Blog· Tested on ClickHouse 26.4
Three requests that turned out to have answers
Skipping unavailable nodes in cluster(), enable_analyzer showing up as allow_experimental_analyzer, and a ttl_only_move_parts setting: three issues closed within days, each with a good reason.
Source: github.com
Three of my requests ended in a comment rather than a pull request. Each taught me where to look.
- #84884,
cluster()andclusterAllReplicas()should skip unavailable nodes. A down node fails the whole query (ALL_CONNECTION_TRIES_FAILED), exactly when you want to readsystem.server_settingsfrom every node. Eight minutes after I opened it,den-craneasked whether I had triedSETTINGS skip_unavailable_shards = 1. I had not; I closed it within the hour. The setting defaults to0, and 26.3 addedmax_skip_unavailable_shards_numandmax_skip_unavailable_shards_ratioas a guard against silently answering from half a cluster. See compare settings across a cluster. - #87468,
enable_analyzeris logged asallow_experimental_analyzer. Insystem.query_logtheSettingsmap showed the old name.novikdclosed it with one line:enable_analyzeris an alias and the original name is what gets recorded. The alias is visible insystem.settings.alias_for. Practical consequence: filter the query log on the old name. - #92005,
ttl_only_move_parts. I assumed a counterpart tottl_only_drop_partswas missing.UnamedRusanswered the next morning: TTL moves already work on whole parts, so there is nothing to opt into. A delete TTL is row-based, a move TTL is not. See tiered storage and TTL: delete only matching rows.
The cheap lesson: grep system.settings and system.merge_tree_settings with LIKE '%skip%' before filing. The less cheap one: if three of my requests hit features or behaviors that already exist, discoverability is itself a usability problem.
Discussion
Comments live in GitHub Discussions. Sign in with GitHub to join in.