Skip to content

[Improvement](file scan) Keep File Scanner V2 predicate pruning enabled - #66357

Open
Gabriel39 wants to merge 3 commits into
apache:masterfrom
Gabriel39:dev/file-scanner-v2-always-filter
Open

[Improvement](file scan) Keep File Scanner V2 predicate pruning enabled#66357
Gabriel39 wants to merge 3 commits into
apache:masterfrom
Gabriel39:dev/file-scanner-v2-always-filter

Conversation

@Gabriel39

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary:

File Scanner V2 inherited the legacy session gates for runtime-filter partition pruning and Parquet expression ZoneMap pruning. Disabling either switch therefore also disabled the corresponding V2 pruning path, even though V2 owns an independent pruning pipeline.

This change keeps both pruning paths enabled for File Scanner V2 regardless of the legacy session switch values. File Scanner V1 behavior is unchanged.

Release note

File Scanner V2 always applies partition predicate pruning and Parquet expression ZoneMap pruning.

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes. File Scanner V2 no longer honors runtime_filter_partition_prune or expr_zonemap_filter; both pruning paths remain enabled.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

### What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: FileScannerV2 inherited legacy session gates that could disable partition predicate pruning and Parquet expression ZoneMap pruning.

### Release note

FileScannerV2 always applies partition predicate pruning and Parquet expression ZoneMap pruning.

### Check List (For Author)

- Test: Unit Test\n- Behavior changed: Yes. FileScannerV2 ignores the two legacy pruning switches.\n- Does this need documentation: No
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@Gabriel39

Copy link
Copy Markdown
Contributor Author

run buildall

@Gabriel39

Copy link
Copy Markdown
Contributor Author

/review

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 28642 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit fb3af512887a2c42a28edc82f54a01883fca44bd, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17622	3941	4014	3941
q2	2090	317	201	201
q3	10202	1381	808	808
q4	4682	471	344	344
q5	7496	847	564	564
q6	186	198	137	137
q7	753	805	612	612
q8	9339	1486	1471	1471
q9	5275	4043	4018	4018
q10	6747	1613	1348	1348
q11	503	354	333	333
q12	729	582	458	458
q13	18134	3145	2660	2660
q14	257	262	243	243
q15	q16	738	730	659	659
q17	958	968	1061	968
q18	6744	5767	5445	5445
q19	1307	1280	1088	1088
q20	834	685	600	600
q21	5862	2664	2450	2450
q22	434	356	294	294
Total cold run time: 100892 ms
Total hot run time: 28642 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4304	4193	4262	4193
q2	283	319	210	210
q3	4484	4924	4345	4345
q4	2180	2249	1430	1430
q5	4247	4094	4120	4094
q6	226	175	129	129
q7	1699	1601	1446	1446
q8	2713	2294	2084	2084
q9	7387	7415	7556	7415
q10	4291	4322	3867	3867
q11	570	408	367	367
q12	721	720	502	502
q13	3127	3455	2886	2886
q14	303	299	291	291
q15	q16	714	735	643	643
q17	1303	1293	1254	1254
q18	7945	7196	7231	7196
q19	1168	1099	1090	1090
q20	2209	2200	1937	1937
q21	5258	4577	4450	4450
q22	516	459	410	410
Total cold run time: 55648 ms
Total hot run time: 50239 ms

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes for one P1 correctness issue and two P2 issues.

Accepted findings:

  • P1: unavoidable Parquet metadata pruning can skip an earlier error-preserving conjunct and prune on a later ZoneMap-safe conjunct, changing an error into an empty result.
  • P2: the scanner now performs a second full conjunct-tree clone per split even when there are no partition values and the sole consumer immediately returns.
  • P2: the two still-forwarded session switches acquire path- and backend-version-dependent semantics without a durable FE/Thrift contract update or a stable V2 differential/escape path.

Critical checkpoint conclusions:

  • Goal and proof: the production hunks do make V2 partition and expression ZoneMap pruning ignore the two false gates. The added unit tests prove scanner vector plumbing and helper-level footer/Page pruning under false, but they do not prove end-to-end semantic equivalence; the P1 error-order counterexample means the goal is not safely accomplished yet.
  • Scope and clarity: the production edit is narrow and localized. The required fixes remain focused: apply an unsafe-expression prefix fence to both footer and Page metadata evaluation, avoid ineligible empty-map clone work, and align the exposed option contract/test controls.
  • Concurrency and locking: no new thread, lock, atomic, or shared mutable state is introduced. Late runtime-filter snapshots are lock-protected and refreshed before the scanner turn; split preparation is serial. No deadlock or lock-order issue was found.
  • Lifecycle and static initialization: split-local expression contexts retain RAII close behavior and split state is reset before reuse. No static/global initialization dependency, ownership cycle, leak, or double advancement was found.
  • Configuration and compatibility: no new configuration field, symbol, serialization, storage-format, or wire-layout change is added. The existing forwarded fields remain wire-compatible, but V1/older-BE and new V2 readers interpret the same explicit false value differently; this behavioral compatibility issue is reported inline.
  • Parallel paths and conditions: V1 remains gated intentionally. All reviewed V2 TableReader variants delegate partition evaluation to the same base path. Footer and Page-index metadata paths both flow through the changed capability decision and both need the same error-order barrier. The new comments explain intent but do not update the public option contract.
  • Tests and expected results: the two new unit tests correctly assert their narrow helper/plumbing behavior, and no generated result file is involved. Coverage is missing for the reachable earlier-error/later-prunable case, the no-partition clone path, and a genuine V2 disabled-versus-enabled result baseline. No build or tests were run because this review task explicitly forbids them.
  • Error handling: changed Status values remain propagated and malformed/unsupported metadata generally retains candidates. The substantive error-handling defect is semantic: metadata pruning can suppress an earlier assert_true error.
  • Memory safety and BE nullability: no new raw ownership, untracked large buffer, nullable-column cast, or const/nullable shape handling is introduced. Conservative NULL, NaN, order, type, timezone, and malformed-index fallbacks remain intact.
  • Data correctness: no version, MoW, write, or persistence path is touched. The P1 finding is a read-result correctness/error-observability regression; no additional wrong-row case survived review.
  • Observability: existing scanner prepare/prune and Parquet statistics/Page-index counters and timers cover these paths. No new metric or log is required beyond retaining an operable and testable control contract.
  • Transactions, persistence, and writes: not applicable; this is read-only scan planning and adds no EditLog, transaction, atomicity, or crash-recovery behavior.
  • FE-BE propagation: no new variable is added. The issue is that the two existing variables continue to be forwarded while their meaning diverges across reader paths and versions.
  • Performance: the accepted scanner finding is concrete redundant per-file CPU/allocation work for non-partitioned many-file scans. No other unbounded I/O, memory, or asymptotic regression was substantiated.
  • Other issues and user focus: no additional review focus was supplied, so the whole PR was reviewed. The review converged in Round 2: every normal and risk-focused reviewer returned NO_NEW_VALUABLE_FINDINGS for this same frozen three-comment set, and every other candidate was dismissed with evidence or merged as a duplicate.

if (!expr_zonemap::is_expr_zonemap_filter_enabled(runtime_state)) {
return false;
}
bool has_expr_zonemap_filter(const format::FileScanRequest& request, const RuntimeState*) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Preserve error order before making metadata pruning unavoidable

request.conjuncts can contain an earlier localized error-preserving expression (for example assert_true(y != 0, 'bad')) followed by a ZoneMap-safe x > 100. With a PLAIN row group where y=0 and max(x)=2, and with cost-based conjunct reordering disabled, the old enable_expr_zonemap_filter=false path reaches row evaluation and raises bad; after this change the metadata evaluator skips the unsupported first conjunct, prunes on the later comparison, and returns no rows. The row scheduler and partition pruner already treat such expressions as ordering barriers. Please apply the same safe-prefix fence to both footer and page-index metadata evaluation before ignoring this switch, and add an error-preservation test.

Comment thread be/src/exec/scan/file_scanner_v2.cpp Outdated
}
// FileScannerV2 owns its complete pruning pipeline, so safe partition predicates must not
// inherit the legacy scanner's session gate.
RETURN_IF_ERROR(_build_table_conjuncts(&partition_prune_conjuncts));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Skip pruning-clone work when this split has no partition values

The scanner already has the generated partition_values map here, but this now deep-clones and rewrites every conjunct even when that map is empty. TableReader::_evaluate_partition_prune_conjuncts() immediately returns for an empty map, and no other reader consumes these clones, so a non-partitioned many-file scan pays a second expression-tree allocation/traversal per file with no possible pruning benefit. Please keep pruning unconditional for eligible V2 splits while guarding this clone on a non-empty/eligible partition-value set, and cover the no-partition path in the unit test.

Comment thread be/src/exec/scan/file_scanner_v2.cpp Outdated
RETURN_IF_ERROR(_build_table_conjuncts(&partition_prune_conjuncts));
}
// FileScannerV2 owns its complete pruning pipeline, so safe partition predicates must not
// inherit the legacy scanner's session gate.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Align the public switch contract before treating it as legacy

enable_runtime_filter_partition_prune and enable_expr_zonemap_filter are still forwarded session controls; FE/Thrift describe the latter as controlling scanner/BE-reader ZoneMap pruning, and V1/older-BE paths still honor both. This makes the meaning of false depend on scanner selection or backend version, while existing Iceberg/Paimon suites that use false as the non-pruned correctness baseline now exercise the same default-V2 pruning path in both halves. Please either keep honoring these controls, or update the durable FE/Thrift/user-facing contract and provide an explicit V2 per-feature test/escape path before removing those differential baselines; the PR release note and local legacy comment do not update the exposed session semantics.

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 169525 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit fb3af512887a2c42a28edc82f54a01883fca44bd, data reload: false

query5	4307	615	476	476
query6	462	214	193	193
query7	4905	586	352	352
query8	343	177	181	177
query9	8741	4076	4035	4035
query10	487	373	302	302
query11	5817	2242	1997	1997
query12	147	97	101	97
query13	1247	611	438	438
query14	6176	4669	4349	4349
query14_1	3765	3782	3813	3782
query15	220	208	176	176
query16	1046	497	464	464
query17	1130	737	560	560
query18	2487	476	351	351
query19	206	190	157	157
query20	111	106	113	106
query21	235	161	138	138
query22	12976	13166	12763	12763
query23	17376	16379	15961	15961
query23_1	16119	16123	16100	16100
query24	7718	1710	1234	1234
query24_1	1255	1213	1255	1213
query25	557	449	404	404
query26	1335	337	222	222
query27	2563	599	361	361
query28	4422	2040	2041	2040
query29	1060	623	489	489
query30	350	262	224	224
query31	1113	1081	943	943
query32	110	62	62	62
query33	522	332	255	255
query34	1188	1106	633	633
query35	732	761	637	637
query36	780	768	721	721
query37	158	113	95	95
query38	1853	1640	1620	1620
query39	850	816	800	800
query39_1	773	795	780	780
query40	248	165	150	150
query41	70	72	67	67
query42	96	96	94	94
query43	323	326	274	274
query44	1436	764	778	764
query45	196	174	173	173
query46	1092	1148	711	711
query47	1575	1554	1520	1520
query48	389	402	293	293
query49	578	400	302	302
query50	1059	438	346	346
query51	10975	10607	10702	10607
query52	87	91	74	74
query53	269	282	196	196
query54	294	228	221	221
query55	74	71	70	70
query56	299	313	286	286
query57	1019	995	965	965
query58	281	246	279	246
query59	1526	1563	1382	1382
query60	324	268	248	248
query61	154	141	148	141
query62	394	316	268	268
query63	242	196	192	192
query64	2811	1070	835	835
query65	3898	3831	3852	3831
query66	1845	460	363	363
query67	27641	28175	27907	27907
query68	2933	1609	933	933
query69	402	320	261	261
query70	878	767	795	767
query71	367	318	365	318
query72	3006	2611	2301	2301
query73	807	836	422	422
query74	4614	4508	4303	4303
query75	2374	2326	1990	1990
query76	2319	1160	750	750
query77	338	362	261	261
query78	11203	11221	10709	10709
query79	1406	1209	787	787
query80	1314	554	455	455
query81	530	322	284	284
query82	655	144	118	118
query83	385	325	306	306
query84	283	161	127	127
query85	988	602	529	529
query86	410	239	227	227
query87	1816	1807	1715	1715
query88	3704	2801	2768	2768
query89	389	330	301	301
query90	1953	197	189	189
query91	205	200	162	162
query92	63	59	53	53
query93	1673	1487	956	956
query94	715	346	305	305
query95	797	602	476	476
query96	1050	754	325	325
query97	2439	2480	2341	2341
query98	206	194	192	192
query99	725	725	610	610
Total cold run time: 255755 ms
Total hot run time: 169525 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 24.04 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit fb3af512887a2c42a28edc82f54a01883fca44bd, data reload: false

query1	0.00	0.00	0.00
query2	0.09	0.04	0.04
query3	0.25	0.13	0.14
query4	1.61	0.14	0.14
query5	0.24	0.22	0.23
query6	1.17	0.85	0.82
query7	0.04	0.01	0.01
query8	0.06	0.04	0.04
query9	0.39	0.33	0.31
query10	0.54	0.55	0.55
query11	0.19	0.14	0.14
query12	0.18	0.14	0.14
query13	0.47	0.46	0.48
query14	1.00	1.00	0.99
query15	0.61	0.60	0.59
query16	0.31	0.31	0.33
query17	1.12	1.07	1.08
query18	0.21	0.19	0.20
query19	2.07	1.98	1.97
query20	0.02	0.01	0.01
query21	15.48	0.21	0.13
query22	4.94	0.05	0.05
query23	16.14	0.31	0.13
query24	2.96	0.42	0.31
query25	0.12	0.05	0.04
query26	0.71	0.22	0.16
query27	0.04	0.04	0.03
query28	3.52	0.79	0.36
query29	12.53	4.09	3.24
query30	0.28	0.15	0.16
query31	2.78	0.56	0.32
query32	3.22	0.59	0.50
query33	3.18	3.19	3.16
query34	15.74	3.98	3.30
query35	3.29	3.23	3.25
query36	0.57	0.45	0.46
query37	0.09	0.06	0.07
query38	0.05	0.04	0.04
query39	0.04	0.03	0.03
query40	0.17	0.15	0.14
query41	0.10	0.03	0.02
query42	0.04	0.03	0.03
query43	0.05	0.04	0.03
Total cold run time: 96.61 s
Total hot run time: 24.04 s

@Gabriel39
Gabriel39 marked this pull request as ready for review August 2, 2026 06:39
@Gabriel39
Gabriel39 requested a review from yiguolei as a code owner August 2, 2026 06:39
@Gabriel39

Copy link
Copy Markdown
Contributor Author

run buildall

@Gabriel39

Copy link
Copy Markdown
Contributor Author

/review

@Gabriel39

Copy link
Copy Markdown
Contributor Author

run buildall

@Gabriel39

Copy link
Copy Markdown
Contributor Author

/review

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Codex automated review failed and did not complete.

Error: Codex completed, but no new pull request review was submitted for the current head SHA.
Workflow run: https://github.com/apache/doris/actions/runs/30738406652

Please inspect the workflow logs and rerun the review after the underlying issue is resolved.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review status: the current head still cannot be approved because the existing P1 metadata error-order thread remains unresolved. I am not adding a duplicate inline comment; the prior discussion_r3698036618 already identifies the exact changed line, reachable input, and required fix. The existing clone-cost thread also still covers the narrower nonempty-but-predicate-ineligible partition case. No new unduplicated inline issue was found.

Current-head assessment:

  • The empty-partition-map guard and its unit assertion address the original unconditional clone work for nonpartitioned splits.
  • The FE and Thrift descriptions now make the scanner-dependent semantics explicit while preserving the existing field IDs, defaults, and forwarding, so no distinct wire or rolling-upgrade defect remains.
  • parquet_statistics.cpp still deliberately skips the required safe-prefix fix: an earlier localized deterministic-but-error-preserving conjunct can be ignored by metadata evaluation, allowing a later ZoneMap-capable conjunct to prune a Row Group or page range and suppress the earlier row-level error. Both footer Statistics and native ColumnIndex/OffsetIndex paths are affected, and the changed positive test does not cover this negative case.
  • A partitioned split whose map is nonempty but whose safe prefix has no partition-only predicate still builds a second complete cloned/re-written conjunct set that TableReader discards. This is the same location, outcome, and requested eligibility guard already covered by discussion_r3698036620, so it is not reposted.

Critical checkpoint conclusions:

  • Goal and proof: the production changes do make FileScannerV2 ignore the two legacy gates, and the new unit tests prove the positive plumbing for partition, footer, and page pruning under false. The goal is not safely complete while the existing error-preservation counterexample remains reachable and untested.
  • Scope and clarity: the changed surface is small and focused. The acknowledged TODO at the core metadata gate should be resolved in this PR rather than shipping a known semantic hole.
  • Concurrency and locking: no new thread, lock, atomic, or shared mutable state is introduced. Scheduler late-RuntimeFilter refresh occurs before scanner work, and split preparation remains serial per scanner; no lock-order or deadlock issue was found.
  • Lifecycle and static initialization: partition pruning uses independent per-split clones, VExprContext destructor-driven close, and common TableReader split reset/EOF handling. No static-initialization dependency, ownership cycle, leak, or split-state escape was found.
  • Configuration and compatibility: no new option or wire field is added. Existing Thrift IDs 150 and 224, optional defaults, and FE forwarding are unchanged; V1/older BEs continue honoring false, while the new V2 behavior is now documented. No symbol, storage-format, persistence, or protocol-layout incompatibility was found.
  • Parallel paths and conditions: every reviewed V2 TableReader path reaches the common partition safe-prefix logic, which correctly stops at nondeterministic/error-preserving expressions and requires partition-only identities. Parquet footer and page-index pruning both share the changed gate and both still need the corresponding original-order safety fence.
  • Tests and expected results: the changed BE tests are deterministic and involve no generated result file. Existing TableReader tests cover real partition pruning, unsafe-prefix retention, refreshed conjunct replacement, and reader reuse. Missing coverage is the already-reported earlier-error/later-ZoneMap case at both metadata levels and the nonempty-but-ineligible clone case. No build or tests were run because this review environment explicitly forbids them.
  • Error handling and data correctness: changed Status values remain propagated, and malformed/unsupported metadata generally retains candidates. The blocking defect is semantic error suppression, which can change a failing query into an empty result. No version, MoW, transaction, EditLog, write, or crash-recovery path is touched.
  • Memory safety and nullability: no new raw ownership, untracked large allocation, nullable cast, or const/nullable column-shape handling is introduced.
  • Observability: existing FileScannerV2 prepare/prune and Parquet Statistics/PageIndex counters and timers cover the changed work; no new log or metric is required.
  • Performance: the empty-map fix removes the concrete nonpartitioned per-file cloning regression. Remaining ineligible clone work is already tracked by the existing P2 discussion; no other unbounded I/O, memory, or asymptotic regression was substantiated.
  • User focus: no additional review focus was supplied, so the full PR was reviewed.

Two independent normal reviews, one dedicated risk review, and the main-agent sweep found no new valuable issue beyond the existing threads. Please resolve the P1 safe-prefix/error-preservation issue (and its negative test) before approval.

@hello-stephen

Copy link
Copy Markdown
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 77.57% (1912/2465)
Line Coverage 64.55% (34226/53024)
Region Coverage 64.46% (17281/26809)
Branch Coverage 53.94% (9250/17148)

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 28977 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit b374eb24875dafba80de227336412aa7e8b0ab6b, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17412	3930	3912	3912
q2	2012	321	194	194
q3	10194	1371	793	793
q4	4687	467	343	343
q5	7518	840	570	570
q6	184	164	134	134
q7	768	797	588	588
q8	9343	1580	1496	1496
q9	5322	4051	4069	4051
q10	6837	1643	1385	1385
q11	497	360	323	323
q12	733	584	465	465
q13	18092	3297	2742	2742
q14	261	262	243	243
q15	q16	735	731	656	656
q17	1024	1045	1000	1000
q18	6943	5750	5731	5731
q19	1427	1320	1062	1062
q20	885	689	618	618
q21	6143	2575	2362	2362
q22	439	361	309	309
Total cold run time: 101456 ms
Total hot run time: 28977 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4271	4178	4192	4178
q2	282	311	210	210
q3	4538	4972	4400	4400
q4	2178	2275	1411	1411
q5	4248	4109	4110	4109
q6	229	173	124	124
q7	1689	1603	1438	1438
q8	2977	2184	2104	2104
q9	7538	7492	7513	7492
q10	4342	4291	3905	3905
q11	556	392	363	363
q12	712	720	509	509
q13	3141	3466	2875	2875
q14	317	311	277	277
q15	q16	685	708	640	640
q17	1286	1273	1242	1242
q18	7979	7262	7239	7239
q19	1208	1099	1137	1099
q20	2224	2191	1906	1906
q21	5267	4561	4390	4390
q22	518	458	411	411
Total cold run time: 56185 ms
Total hot run time: 50322 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 169582 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit b374eb24875dafba80de227336412aa7e8b0ab6b, data reload: false

query5	4322	619	468	468
query6	473	230	210	210
query7	4847	567	335	335
query8	320	182	162	162
query9	8742	4005	3995	3995
query10	457	354	313	313
query11	5841	2176	1987	1987
query12	143	97	96	96
query13	1286	629	409	409
query14	6081	4602	4372	4372
query14_1	3778	3772	3747	3747
query15	215	210	177	177
query16	1031	471	526	471
query17	1117	696	574	574
query18	2585	470	350	350
query19	212	191	152	152
query20	106	107	103	103
query21	245	160	134	134
query22	13072	12996	12756	12756
query23	17343	16315	16033	16033
query23_1	16096	16115	16087	16087
query24	7402	1724	1229	1229
query24_1	1284	1246	1235	1235
query25	577	441	375	375
query26	1331	360	218	218
query27	2516	627	391	391
query28	4448	2054	2018	2018
query29	1060	626	499	499
query30	345	265	230	230
query31	1117	1083	960	960
query32	106	65	59	59
query33	519	316	262	262
query34	1167	1125	650	650
query35	727	757	642	642
query36	765	765	679	679
query37	150	106	88	88
query38	1833	1648	1619	1619
query39	826	818	844	818
query39_1	795	780	823	780
query40	258	166	148	148
query41	72	70	70	70
query42	94	94	92	92
query43	312	321	274	274
query44	1434	794	751	751
query45	196	173	173	173
query46	1063	1186	713	713
query47	1559	1569	1450	1450
query48	408	383	318	318
query49	584	399	299	299
query50	1031	440	357	357
query51	10871	10829	10597	10597
query52	128	85	73	73
query53	257	276	217	217
query54	281	239	214	214
query55	75	69	65	65
query56	295	302	293	293
query57	1019	997	935	935
query58	295	275	283	275
query59	1542	1560	1440	1440
query60	307	278	248	248
query61	154	142	145	142
query62	397	319	261	261
query63	239	198	195	195
query64	2813	1005	833	833
query65	3886	3836	3850	3836
query66	1778	480	365	365
query67	28186	28167	28011	28011
query68	3186	1667	1044	1044
query69	402	297	256	256
query70	889	800	785	785
query71	361	330	325	325
query72	3073	2640	2345	2345
query73	826	826	471	471
query74	4608	4450	4303	4303
query75	2379	2336	1996	1996
query76	2309	1111	778	778
query77	336	372	267	267
query78	11164	11097	10478	10478
query79	1393	1154	711	711
query80	1042	529	472	472
query81	533	323	281	281
query82	563	151	115	115
query83	404	335	313	313
query84	283	161	127	127
query85	993	624	558	558
query86	376	254	221	221
query87	1803	1796	1726	1726
query88	3714	2817	2779	2779
query89	394	314	283	283
query90	1802	194	187	187
query91	205	187	166	166
query92	64	61	57	57
query93	1641	1604	973	973
query94	617	348	340	340
query95	806	605	492	492
query96	1014	830	365	365
query97	2475	2488	2321	2321
query98	206	197	191	191
query99	718	735	610	610
Total cold run time: 255484 ms
Total hot run time: 169582 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 23.87 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit b374eb24875dafba80de227336412aa7e8b0ab6b, data reload: false

query1	0.00	0.00	0.00
query2	0.10	0.04	0.05
query3	0.26	0.13	0.12
query4	1.61	0.14	0.13
query5	0.23	0.23	0.22
query6	1.16	0.79	0.83
query7	0.04	0.01	0.01
query8	0.05	0.04	0.04
query9	0.37	0.32	0.31
query10	0.55	0.56	0.54
query11	0.19	0.14	0.13
query12	0.18	0.13	0.13
query13	0.46	0.46	0.47
query14	1.01	1.00	1.01
query15	0.60	0.58	0.58
query16	0.32	0.34	0.30
query17	1.11	1.07	1.11
query18	0.22	0.21	0.20
query19	2.07	1.96	2.01
query20	0.01	0.01	0.02
query21	15.41	0.18	0.13
query22	4.96	0.05	0.06
query23	16.13	0.31	0.13
query24	2.98	0.42	0.33
query25	0.10	0.04	0.05
query26	0.75	0.21	0.14
query27	0.05	0.04	0.04
query28	3.52	0.78	0.33
query29	12.53	4.07	3.23
query30	0.27	0.15	0.15
query31	2.78	0.55	0.32
query32	3.24	0.60	0.49
query33	3.26	3.16	3.28
query34	15.76	3.93	3.29
query35	3.19	3.21	3.24
query36	0.55	0.43	0.42
query37	0.09	0.06	0.07
query38	0.05	0.04	0.03
query39	0.04	0.03	0.03
query40	0.17	0.16	0.15
query41	0.09	0.04	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.04
Total cold run time: 96.54 s
Total hot run time: 23.87 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 100.00% (2/2) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 59.16% (25632/43323)
Line Coverage 43.25% (257244/594852)
Region Coverage 38.93% (203913/523787)
Branch Coverage 40.28% (93060/231035)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100.00% (2/2) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 75.77% (32016/42254)
Line Coverage 60.42% (357017/590876)
Region Coverage 57.08% (300001/525554)
Branch Coverage 58.45% (135071/231073)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 100.00% (1/1) 🎉
Increment coverage report
Complete coverage report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants