Skip to content

[refactor](be) Move adaptive block size predictor to core - #65995

Merged
mrhhsg merged 1 commit into
apache:masterfrom
mrhhsg:refactor/move-adaptive-block-size-predictor
Jul 31, 2026
Merged

[refactor](be) Move adaptive block size predictor to core#65995
mrhhsg merged 1 commit into
apache:masterfrom
mrhhsg:refactor/move-adaptive-block-size-predictor

Conversation

@mrhhsg

@mrhhsg mrhhsg commented Jul 24, 2026

Copy link
Copy Markdown
Member

What problem does this PR solve?

Issue Number: None

Related PR: #62835

Problem Summary:

AdaptiveBlockSizePredictor is a block-level helper shared by segment scans and external file scanners. Keeping it under storage/segment forces external scan code to depend on the storage layer even though the predictor only uses Block statistics and EWMA calculations.

This PR moves the predictor implementation and its focused unit test to core/block, updates all consumers to use the new include path, and removes the unused segment-specific ColumnMetadata declaration. It also makes predict_next_rows() const because it does not modify predictor state. The prediction behavior is unchanged.

The branch has been rebuilt on the current master, preserving the later external-scan rollback from #65998 rather than restoring the old update(rows, bytes) path.

Release note

None

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
      • ASAN focused harness compiled the unchanged production and test sources directly: AdaptiveBlockSizePredictorTest.* (25 tests passed)
      • The standard ./run-be-ut.sh --run --filter='AdaptiveBlockSizePredictorTest.*' -j 48 runner did not complete because this worktree's third-party installation is missing the unrelated liblance_c.a; CI will provide the full monolithic BE validation
    • Manual test (add detailed scripts or steps below)
      • Targeted ASAN_UT compilation passed for the predictor implementation, its focused test, and all three production consumers (SegmentIterator, FileScanner, and FileScannerV2)
      • ./build-support/clang-format.sh
      • ./build-support/check-format.sh
      • changed-line clang-tidy passed; the stock local invocation additionally encounters a pre-existing unmatched NOLINTEND in be/src/core/types.h
      • git diff --check origin/master...HEAD
    • 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.
  • 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

@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?

@mrhhsg

mrhhsg commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

/review

@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.

Automated review conclusion: no blocking or correctness issues found. Approval opinion from this code review.

Critical checkpoint conclusions:

  • Goal, scope, and tests: the PR cleanly moves AdaptiveBlockSizePredictor from Storage to Core, updates all three production consumers and the focused unit test, removes only unused storage-specific declarations, and leaves prediction behavior unchanged. The Core and BE-test recursive CMake globs discover the new paths, and aggregate BE link sets include Core.
  • Concurrency and lifecycle: unchanged. Each FileScanner, FileScannerV2, or SegmentIterator owns one predictor through unique_ptr and uses it on its existing sequential scan path. No new shared state, locks, atomics, static initialization, or release path is introduced.
  • Error handling, memory, and data correctness: no Status path, allocation policy, COW/nullable handling, transaction, persistence, visibility, or data-write behavior changes. The predictor remains a fixed-size per-instance helper.
  • Compatibility and parallel paths: legacy file scan, V2 file scan, and segment scan include the new header; repository and exact-head searches found no stale old path or remaining ColumnMetadata use. The const-qualified declaration and definition match every caller. No wire, storage-format, FE/BE protocol, configuration, or rolling-upgrade contract changes.
  • Performance and observability: runtime arithmetic and call frequency are unchanged; the patch removes one dead local vector and adds no logging, metrics, or hot-path work.
  • Test/result review: the predictor behavior suite is preserved under be/test/core/block and remains discoverable by the existing GTest filter. Changed expectations and includes are type/style cleanup only.

User focus: no additional focus was supplied.

Validation scope: static review only because this review runner prohibits builds and test execution. The author reports 26 focused unit tests passed; I did not rerun them. At the pre-submission check, the live macOS BE UT job was still in progress, while formatting and the other completed visible checks were green.

@mrhhsg

mrhhsg commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

run buildall

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17619	3619	3638	3619
q2	1998	294	199	199
q3	10321	1239	735	735
q4	4680	320	234	234
q5	7576	746	478	478
q6	168	152	111	111
q7	728	694	514	514
q8	9332	1515	1599	1515
q9	4284	3221	3140	3140
q10	6794	1188	984	984
q11	493	324	299	299
q12	740	524	424	424
q13	17951	2471	1962	1962
q14	197	184	173	173
q15	q16	564	516	469	469
q17	860	1029	1023	1023
q18	4636	3756	3432	3432
q19	1317	1185	1066	1066
q20	832	642	527	527
q21	5920	2575	2351	2351
q22	413	354	287	287
Total cold run time: 97423 ms
Total hot run time: 23542 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4067	3990	3976	3976
q2	257	268	191	191
q3	2693	2858	2680	2680
q4	1397	1385	1071	1071
q5	2714	2638	2598	2598
q6	220	148	102	102
q7	1341	1181	1110	1110
q8	2052	1791	1758	1758
q9	3884	3802	3807	3802
q10	2494	2513	2205	2205
q11	420	337	313	313
q12	582	568	422	422
q13	2352	2830	2074	2074
q14	237	237	225	225
q15	q16	546	534	487	487
q17	1320	1275	1285	1275
q18	5289	4853	4705	4705
q19	1148	1124	1155	1124
q20	1187	1160	1009	1009
q21	4564	3863	3940	3863
q22	492	428	409	409
Total cold run time: 39256 ms
Total hot run time: 35399 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 121126 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 cada6e66fd29f68041e4abc59de35f5de25eeeac, data reload: false

query5	4345	561	435	435
query6	443	234	218	218
query7	4862	588	349	349
query8	336	181	161	161
query9	8812	3989	3983	3983
query10	456	327	264	264
query11	5598	1383	1215	1215
query12	159	96	95	95
query13	1259	579	432	432
query14	6129	2940	2772	2772
query14_1	2460	2468	2498	2468
query15	197	157	139	139
query16	1114	554	521	521
query17	1129	629	505	505
query18	2694	455	338	338
query19	231	195	157	157
query20	107	95	95	95
query21	229	146	127	127
query22	7802	7923	7876	7876
query23	9983	9701	9423	9423
query23_1	9381	9464	9398	9398
query24	7387	1380	1017	1017
query24_1	1051	1020	1028	1020
query25	519	416	367	367
query26	1332	354	217	217
query27	2427	584	373	373
query28	4336	2188	2376	2188
query29	1096	648	514	514
query30	334	244	207	207
query31	922	676	673	673
query32	102	67	71	67
query33	545	292	269	269
query34	1120	1122	654	654
query35	540	521	468	468
query36	1118	1077	1071	1071
query37	150	111	84	84
query38	1317	1053	1017	1017
query39	640	635	606	606
query39_1	632	587	655	587
query40	246	168	147	147
query41	66	59	62	59
query42	92	89	89	89
query43	288	296	252	252
query44	1332	786	786	786
query45	133	127	128	127
query46	940	1050	667	667
query47	1409	1414	1379	1379
query48	402	390	323	323
query49	588	317	246	246
query50	999	411	329	329
query51	10903	11145	10650	10650
query52	87	87	76	76
query53	251	265	200	200
query54	266	243	236	236
query55	75	72	67	67
query56	280	292	278	278
query57	930	885	860	860
query58	273	243	239	239
query59	1375	1390	1260	1260
query60	298	255	254	254
query61	148	148	150	148
query62	407	300	266	266
query63	228	190	191	190
query64	2730	895	748	748
query65	2193	2134	2096	2096
query66	1754	390	336	336
query67	17103	17112	16858	16858
query68	3404	1389	999	999
query69	424	294	269	269
query70	1119	1055	1051	1051
query71	379	333	318	318
query72	2899	2486	2340	2340
query73	770	750	425	425
query74	1788	1634	1544	1544
query75	1661	1559	1316	1316
query76	2361	978	719	719
query77	328	328	288	288
query78	6460	6130	5779	5779
query79	1433	1010	715	715
query80	1290	527	476	476
query81	500	245	227	227
query82	606	153	115	115
query83	360	335	295	295
query84	293	159	136	136
query85	955	599	508	508
query86	427	312	329	312
query87	1183	1139	1064	1064
query88	3938	3057	3005	3005
query89	394	308	290	290
query90	2091	191	187	187
query91	202	203	167	167
query92	64	62	61	61
query93	1650	1485	964	964
query94	734	345	344	344
query95	754	559	447	447
query96	1020	851	347	347
query97	1412	1386	1361	1361
query98	189	198	181	181
query99	619	582	540	540
Total cold run time: 210401 ms
Total hot run time: 121126 ms

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 58.06% (24566/42313)
Line Coverage 42.09% (244988/582074)
Region Coverage 37.98% (194606/512409)
Branch Coverage 39.09% (87674/224269)

@hello-stephen

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

query1	0.01	0.03	0.00
query2	0.09	0.05	0.04
query3	0.25	0.13	0.12
query4	1.61	0.13	0.13
query5	0.19	0.18	0.19
query6	1.16	0.99	0.97
query7	0.04	0.01	0.01
query8	0.06	0.04	0.04
query9	0.32	0.28	0.27
query10	0.45	0.48	0.44
query11	0.18	0.12	0.12
query12	0.17	0.12	0.12
query13	0.37	0.39	0.39
query14	0.62	0.64	0.61
query15	0.50	0.48	0.48
query16	0.24	0.26	0.25
query17	0.95	1.00	0.97
query18	0.24	0.22	0.22
query19	1.64	1.50	1.54
query20	0.02	0.01	0.01
query21	15.46	0.25	0.16
query22	4.66	0.06	0.05
query23	16.14	0.32	0.12
query24	2.91	0.43	0.30
query25	0.11	0.04	0.05
query26	0.71	0.20	0.16
query27	0.04	0.04	0.04
query28	3.50	0.87	0.49
query29	12.48	4.29	3.43
query30	0.26	0.14	0.15
query31	2.76	0.52	0.21
query32	3.31	0.42	0.30
query33	1.67	1.70	1.76
query34	15.33	2.87	2.18
query35	2.16	2.16	2.15
query36	0.48	0.33	0.33
query37	0.07	0.06	0.05
query38	0.05	0.04	0.04
query39	0.04	0.03	0.04
query40	0.14	0.10	0.10
query41	0.09	0.03	0.03
query42	0.04	0.02	0.02
query43	0.04	0.04	0.04
Total cold run time: 91.56 s
Total hot run time: 18.98 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 75.24% (31042/41256)
Line Coverage 59.70% (345234/578239)
Region Coverage 56.49% (290475/514188)
Branch Coverage 57.72% (129482/224329)

### What problem does this PR solve?

Issue Number: None

Related PR: apache#62835

Problem Summary: AdaptiveBlockSizePredictor is shared by segment scans and external file scanners, but its declaration and implementation were owned by storage/segment. Move the predictor and its focused unit test to core/block, update all consumers, and remove unused segment-only metadata declarations so the core header no longer depends on storage.

### Release note

None

### Check List (For Author)

- Test:
    - Unit Test: ASAN focused harness compiled the unchanged production and test sources directly (25 tests passed)
    - Manual test: targeted ASAN_UT compilation of the predictor, test, and all three consumers; clang-format, check-format, changed-line clang-tidy, and diff check
    - Standard `run-be-ut.sh` did not complete because this worktree's third-party installation is missing the unrelated `liblance_c.a`
- Behavior changed: No
- Does this need documentation: No
@mrhhsg
mrhhsg force-pushed the refactor/move-adaptive-block-size-predictor branch from cada6e6 to 62f455b Compare July 28, 2026 09:32
@mrhhsg

mrhhsg commented Jul 28, 2026

Copy link
Copy Markdown
Member Author

/review

@mrhhsg

mrhhsg commented Jul 28, 2026

Copy link
Copy Markdown
Member Author

run buildall

@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.

Automated review conclusion: no blocking or correctness issues found. Approval opinion from this code review.

Critical checkpoint conclusions:

  • Goal and test proof: the PR moves AdaptiveBlockSizePredictor and its focused 25-test suite from storage/segment to core/block, updates all three production consumers, removes only unused segment-specific declarations, and preserves the prediction body. Recursive CMake source/test discovery covers both new paths.
  • Scope: the patch is small and focused. The non-path edits are the valid const qualification, removal of an unused ColumnMetadata declaration/local, explicit test includes, and type/style cleanup.
  • Concurrency: unchanged. Each FileScanner, FileScannerV2, or SegmentIterator owns one predictor and uses it on the existing sequential scan path; no shared state, lock, atomic, or thread-entry behavior changes.
  • Lifecycle: unchanged. Ownership remains a per-consumer unique_ptr; no static/global initialization, release ordering, or cleanup path is introduced.
  • Configuration and compatibility: no configuration, wire protocol, storage format, serialization, class layout, installed/public ABI, or rolling-upgrade boundary changes. The const-qualified declaration/definition match every rebuilt in-tree caller.
  • Parallel and conditional paths: segment scan, legacy file scan, and V2 file scan all use the new header; current/base reference closure found no stale old path or remaining ColumnMetadata use. No runtime condition changes.
  • Build/link behavior: Core and BE-test recursive CONFIGURE_DEPENDS globs discover the moved files. Linux groups the internal archives, while Apple ld continually searches static archives, so the Core-before-Exec/Storage order is valid on macOS. The live COMPILE check passed at the reviewed head.
  • Test coverage and results: all 25 focused predictor cases remain in the discovered test target, and their behavioral assertions are unchanged. The author reports a focused ASAN pass and targeted compilation of all three consumers; this review runner did not execute builds or tests. At submission, BE UT and macOS BE UT were still pending.
  • Error handling, memory, data correctness, persistence, and writes: no status path, allocation/accounting policy, COW/nullable handling, transaction, visibility, persistence, or data-write behavior changes.
  • Observability and performance: runtime arithmetic, call frequency, counters, and logging are unchanged; the patch removes one dead local vector and adds no hot-path work.
  • Other concerns: no additional issue was found after the normal full-review and relocation-risk convergence scans.

User focus: no additional focus was supplied; the whole PR was reviewed.

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 75.39% (31177/41355)
Line Coverage 59.91% (347511/580042)
Region Coverage 56.70% (292447/515793)
Branch Coverage 57.98% (130759/225543)

@hello-stephen

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

------ Round 1 ----------------------------------
============================================
q1	17656	3992	3990	3990
q2	1996	311	199	199
q3	10356	1405	839	839
q4	4678	464	338	338
q5	7484	859	553	553
q6	180	167	135	135
q7	733	806	622	622
q8	9875	1603	1527	1527
q9	6272	4331	4298	4298
q10	6848	1728	1492	1492
q11	497	345	324	324
q12	734	580	447	447
q13	18084	3315	2704	2704
q14	263	260	248	248
q15	q16	784	781	710	710
q17	1003	951	1027	951
q18	6915	5658	5574	5574
q19	1292	1259	1051	1051
q20	789	712	583	583
q21	6051	2507	2463	2463
q22	420	349	297	297
Total cold run time: 102910 ms
Total hot run time: 29345 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4365	4289	4258	4258
q2	284	313	216	216
q3	4550	4933	4400	4400
q4	2057	2141	1378	1378
q5	4336	4212	4272	4212
q6	226	178	124	124
q7	1713	1864	1735	1735
q8	2436	2182	2075	2075
q9	7697	7764	7771	7764
q10	4698	4685	4213	4213
q11	571	416	396	396
q12	746	749	543	543
q13	3423	3495	2938	2938
q14	302	333	301	301
q15	q16	716	742	650	650
q17	1361	1318	1324	1318
q18	7979	7503	7139	7139
q19	1068	1074	1090	1074
q20	2211	2215	1941	1941
q21	5188	4486	4447	4447
q22	513	448	405	405
Total cold run time: 56440 ms
Total hot run time: 51527 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 176536 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 62f455ba5913a43b949d54223ee860c875c04d20, data reload: false

query5	4340	639	493	493
query6	462	218	209	209
query7	5156	558	336	336
query8	334	186	172	172
query9	9117	4121	3945	3945
query10	490	350	288	288
query11	5950	2305	2113	2113
query12	162	103	98	98
query13	1287	616	456	456
query14	6240	5196	4860	4860
query14_1	4231	4218	4205	4205
query15	220	207	179	179
query16	1042	478	443	443
query17	1129	725	585	585
query18	2542	472	359	359
query19	205	189	150	150
query20	116	115	112	112
query21	236	162	136	136
query22	13616	13530	13305	13305
query23	17298	16483	16084	16084
query23_1	16186	16234	16311	16234
query24	7588	1721	1249	1249
query24_1	1293	1287	1279	1279
query25	555	460	384	384
query26	1333	354	224	224
query27	2548	570	386	386
query28	4425	1957	1972	1957
query29	1080	654	504	504
query30	345	261	226	226
query31	1115	1090	981	981
query32	108	63	63	63
query33	539	324	251	251
query34	1161	1116	656	656
query35	768	788	668	668
query36	1053	1028	888	888
query37	156	108	94	94
query38	1882	1712	1657	1657
query39	895	869	842	842
query39_1	834	826	836	826
query40	260	170	159	159
query41	62	61	64	61
query42	92	88	93	88
query43	313	317	279	279
query44	1366	757	736	736
query45	191	176	172	172
query46	1016	1177	757	757
query47	2154	2105	2028	2028
query48	399	420	279	279
query49	588	403	312	312
query50	1088	440	335	335
query51	10479	10759	10577	10577
query52	84	85	74	74
query53	252	263	210	210
query54	284	226	205	205
query55	74	71	67	67
query56	306	304	297	297
query57	1310	1280	1200	1200
query58	291	257	248	248
query59	1619	1643	1429	1429
query60	299	274	259	259
query61	157	149	147	147
query62	546	504	432	432
query63	247	200	196	196
query64	2812	1033	834	834
query65	4747	4665	4628	4628
query66	1822	499	373	373
query67	29305	29270	29155	29155
query68	3062	1492	958	958
query69	399	313	265	265
query70	907	812	830	812
query71	364	351	318	318
query72	2971	2646	2362	2362
query73	831	758	441	441
query74	5063	4940	4742	4742
query75	2644	2492	2137	2137
query76	2334	1159	780	780
query77	325	389	280	280
query78	11952	12012	11232	11232
query79	1475	1134	733	733
query80	1297	549	471	471
query81	538	339	289	289
query82	604	153	120	120
query83	367	315	292	292
query84	284	157	127	127
query85	992	597	503	503
query86	401	242	230	230
query87	1826	1827	1767	1767
query88	3654	2751	2708	2708
query89	435	377	336	336
query90	1944	199	189	189
query91	196	192	157	157
query92	64	58	56	56
query93	1656	1615	982	982
query94	735	346	296	296
query95	768	571	461	461
query96	1033	804	366	366
query97	2617	2632	2477	2477
query98	212	208	196	196
query99	1092	1118	944	944
Total cold run time: 263608 ms
Total hot run time: 176536 ms

@hello-stephen

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

query1	0.00	0.00	0.00
query2	0.12	0.05	0.05
query3	0.26	0.14	0.13
query4	1.61	0.14	0.14
query5	0.24	0.22	0.22
query6	1.29	1.10	1.05
query7	0.04	0.01	0.01
query8	0.06	0.03	0.04
query9	0.37	0.31	0.30
query10	0.55	0.55	0.55
query11	0.19	0.14	0.14
query12	0.18	0.15	0.14
query13	0.47	0.48	0.48
query14	1.02	1.01	0.99
query15	0.65	0.59	0.60
query16	0.32	0.34	0.31
query17	1.11	1.15	1.08
query18	0.22	0.21	0.21
query19	2.05	1.94	1.93
query20	0.02	0.01	0.01
query21	15.43	0.22	0.14
query22	4.87	0.05	0.04
query23	16.13	0.32	0.12
query24	2.97	0.42	0.32
query25	0.11	0.05	0.05
query26	0.74	0.21	0.16
query27	0.04	0.04	0.04
query28	3.47	0.89	0.58
query29	12.47	4.07	3.25
query30	0.27	0.16	0.17
query31	2.76	0.59	0.31
query32	3.22	0.59	0.48
query33	3.22	3.22	3.25
query34	15.57	4.25	3.52
query35	3.51	3.51	3.55
query36	0.55	0.42	0.43
query37	0.09	0.07	0.06
query38	0.05	0.05	0.03
query39	0.03	0.03	0.03
query40	0.19	0.16	0.16
query41	0.09	0.03	0.03
query42	0.03	0.02	0.02
query43	0.04	0.03	0.04
Total cold run time: 96.62 s
Total hot run time: 25.04 s

@github-actions github-actions Bot added the approved Indicates a PR has been approved by one committer. label Jul 31, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR approved by at least one committer and no changes requested.

@github-actions

Copy link
Copy Markdown
Contributor

PR approved by anyone and no changes requested.

@mrhhsg
mrhhsg merged commit c04e7e1 into apache:master Jul 31, 2026
32 checks passed
@mrhhsg
mrhhsg deleted the refactor/move-adaptive-block-size-predictor branch July 31, 2026 02:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants