Skip to content

25.8 stable backport of #83096: A bunch of micro-optimizations to speed up small queries - #2535

Merged
mkmkme merged 2 commits into
stable-25.8from
backport/stable-25.8/83096
Oct 15, 2026
Merged

mkmkme merged 2 commits into
stable-25.8from
backport/stable-25.8/83096

Conversation

@ilejn

@ilejn ilejn commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

Changelog category (leave one):

  • Performance Improvement

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

A bunch of micro-optimizations to speed up small queries

References ClickHouse#81043

(ClickHouse#83096 by @Algunenano)

CI/CD Options

Exclude tests:

  • Fast test
  • Integration Tests
  • Stateless tests
  • Stateful tests
  • Unit tests
  • Performance tests
  • Aarch64 tests
  • All with ASAN
  • All with TSAN
  • All with MSAN
  • All with UBSAN
  • All with Coverage
  • All Regression
  • Disable CI Cache

Regression jobs to run:

  • Fast suites (mostly <1h)
  • Aggregate Functions (2h)
  • Alter (1.5h)
  • Benchmark (30m)
  • CAS (content-addressed storage; Antalya only)
  • ClickHouse Keeper (1h)
  • Iceberg (2h)
  • LDAP (1h)
  • OAuth (5m)
  • Parquet (1.5h)
  • RBAC (1.5h)
  • SSL Server (1h)
  • S3 (2h)
  • S3 Export (2h)
  • Swarms (30m)
  • Tiered Storage (2h)

A bunch of micro-optimizations to speed up small queries

Signed-off-by: Ilya Golshtein <igolshtein@altinity.com>
@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Workflow [PR], commit [1d8f092]

@ilejn ilejn changed the title Merge pull request #83096 from Algunenano/convertToSubcolumns 25.8 stable backport of #83096: A bunch of micro-optimizations to speed up small queries - #83096 Oct 9, 2026
@ilejn ilejn changed the title 25.8 stable backport of #83096: A bunch of micro-optimizations to speed up small queries - #83096 25.8 stable backport of #83096: A bunch of micro-optimizations to speed up small queries Oct 9, 2026
@mkmkme mkmkme added backport Backport 25.8 25.8 Altinity Stable stable-25.8 labels Oct 13, 2026
@mkmkme

mkmkme commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator

@blau-ai

@blau-ai

blau-ai commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator

CI triage for #2535 (backport/stable-25.8/83096 → stable-25.8)

Verdict: 0 PR-caused, 5 not-PR-caused (1 flaky, 2 infra, 2 pre-existing image CVEs). Nothing in the red checks points at this backport. This PR is a pure perf micro-optimization (swapping std::stack/std::deque → boost::container::devector in the pipeline executor, plus an IMergeTreeReader column-handling refactor); none of the failures touch that code. My recommendation is to re-run the failed jobs; no code change is warranted.


1. Stateless tests (amd_ubsan, parallel) — FLAKY, not PR-caused
Single failure out of 7967: 03221_merge_profile_events.

 Vertical 1 20000 1 2 480000 1 1 1 1 1 1 1 1   (reference)
 Vertical 1 20000 1 2 480000 1 1 1 1 1 1 0 1   (got)

The only differing column is ProfileEvents['UserTimeMicroseconds'] > 0, which returned 0 for the small (20 000-row) Vertical merge. UserTimeMicroseconds is OS thread-CPU accounting (getrusage/taskstats); for a tiny, fast merge it can round to 0, especially on a virtualized UBSan runner. All the merge-logic columns (algorithm, rows, columns, bytes, stage timings) match exactly — only the CPU-time counter flipped. The PR does not touch profile-event or merge CPU accounting, so this is a timing flake.
→ Safe to re-run.

2. Stress test (amd_debug) & (amd_ubsan) — INFRA, not PR-caused
Both report check_status.tsv doesn't exists; the real cause is in test_results.tsv:

Cannot start clickhouse-server  FAIL
<Error> Application: Caught exception while loading metadata:
  Azure::Storage::StorageException ... Code 111, Connection refused

The server couldn't start because the Azurite (Azure blob) emulator was unreachable (connection refused during metadata load), so the stress harness never produced a status file. This is an environment/sidecar-container issue, unrelated to the diff.
→ Safe to re-run.

3. Grype Scan (clickhouse-keeper) / GrypeScanKeeper — PRE-EXISTING, not PR-caused
"20 high/critical vulnerabilities" in the clickhouse-keeper container image. These are OS/base-image package CVEs surfaced by the image scanner; this PR changes only C++ source and cannot affect them. This gate is failing image-wide on the 25.8 line, independent of the backport.
→ Needs an image/package bump (separate from this PR), not a change here.

4. "PR" check — aggregate gate. Red only because it rolls up the checks above; no independent failure.


Head SHA analyzed: 1d8f092 · report: result_pr.json on the praktika S3 bucket. If a re-run of the stateless + stress jobs comes back green, this backport is clear to merge.

@mkmkme
mkmkme merged commit 08ccee8 into stable-25.8 Oct 15, 2026
335 of 346 checks passed
@mkmkme mkmkme added the verified Approved for release label Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

25.8 25.8 Altinity Stable 25.8.33.10001 backport Backport stable-25.8 verified Approved for release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants