Skip to content

[improvement](fe) Evaluate protobuf 4 with Arrow 19#61943

Open
CalvinKirs wants to merge 3 commits intoapache:masterfrom
CalvinKirs:rich-master-protobuf4-arrow19-eval-20260331
Open

[improvement](fe) Evaluate protobuf 4 with Arrow 19#61943
CalvinKirs wants to merge 3 commits intoapache:masterfrom
CalvinKirs:rich-master-protobuf4-arrow19-eval-20260331

Conversation

@CalvinKirs
Copy link
Copy Markdown
Member

What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: Align FE-side protobuf and Arrow Java dependencies for the protobuf 4 / Arrow 19 evaluation, add the required Gson exclusion for protobuf 4 builders, and cover the behavior with a focused FE unit test.

Release note

None

Check List (For Author)

  • Test: FE unit test

    • Regression test / Unit Test / Manual test / No need to test (with reason): Unit Test via ./run-fe-ut.sh --run org.apache.doris.persist.gson.GsonProtobufCompatibilityTest and ./run-fe-ut.sh --run org.apache.doris.persist.gson.GsonSerializationTest,org.apache.doris.persist.gson.GsonDerivedClassSerializationTest,org.apache.doris.persist.gson.ThriftToJsonTest,org.apache.doris.persist.gson.GsonProtobufCompatibilityTest,org.apache.doris.mysql.ConnectionExceedTest
  • Behavior changed: Yes (FE protobuf runtime is aligned to 4.33.4 for this evaluation branch, and protobuf builders are excluded from Gson persistence output)

  • Does this need documentation: No

What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:

Release note

None

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.
  • 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: Align FE-side protobuf and Arrow Java dependencies for the protobuf 4 / Arrow 19 evaluation, add the required Gson exclusion for protobuf 4 builders, and cover the behavior with a focused FE unit test.

### Release note

None

### Check List (For Author)

- Test: FE unit test

    - Regression test / Unit Test / Manual test / No need to test (with reason): Unit Test via ./run-fe-ut.sh --run org.apache.doris.persist.gson.GsonProtobufCompatibilityTest and ./run-fe-ut.sh --run org.apache.doris.persist.gson.GsonSerializationTest,org.apache.doris.persist.gson.GsonDerivedClassSerializationTest,org.apache.doris.persist.gson.ThriftToJsonTest,org.apache.doris.persist.gson.GsonProtobufCompatibilityTest,org.apache.doris.mysql.ConnectionExceedTest

- Behavior changed: Yes (FE protobuf runtime is aligned to 4.33.4 for this evaluation branch, and protobuf builders are excluded from Gson persistence output)

- Does this need documentation: No
@CalvinKirs CalvinKirs requested a review from morningman as a code owner March 31, 2026 09:57
@CalvinKirs
Copy link
Copy Markdown
Member Author

run buildall

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

### What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: Update the default FE and BE JDK 17 runtime configs to open java.base/java.nio to the Arrow memory module as well as unnamed modules, so the shipped conf files match the desired Arrow MemoryUtil access pattern.

### Release note

None

### Check List (For Author)

- Test: No need to test (config-only JVM option adjustment)
- Behavior changed: Yes (default FE and BE conf now target the Arrow memory module explicitly)
- Does this need documentation: No
@CalvinKirs
Copy link
Copy Markdown
Member Author

run buildall

@doris-robot
Copy link
Copy Markdown

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

------ Round 1 ----------------------------------
orders	Doris	NULL	NULL	0	0	0	NULL	0	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	17667	4581	4287	4287
q2	q3	10638	769	526	526
q4	4681	347	249	249
q5	7559	1214	1028	1028
q6	173	173	145	145
q7	774	867	674	674
q8	9293	1447	1347	1347
q9	4822	4420	4708	4420
q10	6250	1910	1629	1629
q11	478	247	251	247
q12	717	578	472	472
q13	18023	2693	1943	1943
q14	233	236	215	215
q15	q16	724	720	662	662
q17	726	831	459	459
q18	5990	5567	5320	5320
q19	1260	997	608	608
q20	555	503	376	376
q21	4647	1865	1418	1418
q22	346	292	357	292
Total cold run time: 95556 ms
Total hot run time: 26317 ms

----- Round 2, with runtime_filter_mode=off -----
orders	Doris	NULL	NULL	150000000	42	6422171781	NULL	22778155	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	4881	4665	4642	4642
q2	q3	3884	4367	3809	3809
q4	869	1207	769	769
q5	4062	4401	4314	4314
q6	193	173	141	141
q7	1776	1672	1551	1551
q8	2456	2724	2646	2646
q9	7616	7363	7475	7363
q10	3702	3980	3661	3661
q11	511	437	414	414
q12	484	581	442	442
q13	2519	2864	2095	2095
q14	312	334	387	334
q15	q16	795	789	710	710
q17	1158	1402	1390	1390
q18	7177	6786	6713	6713
q19	925	923	913	913
q20	2054	2161	2084	2084
q21	3941	3585	3410	3410
q22	454	426	362	362
Total cold run time: 49769 ms
Total hot run time: 47763 ms

@doris-robot
Copy link
Copy Markdown

TPC-DS: Total hot run time: 169083 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 dba9e59be6b862c8aa2c734017894cd76d67c6e7, data reload: false

query5	4330	636	502	502
query6	334	232	210	210
query7	4212	476	268	268
query8	349	249	229	229
query9	8728	2710	2707	2707
query10	509	389	368	368
query11	7038	5069	4834	4834
query12	196	132	137	132
query13	1315	476	349	349
query14	5642	3766	3490	3490
query14_1	2847	2891	2860	2860
query15	204	194	176	176
query16	999	473	463	463
query17	1024	747	632	632
query18	2449	460	368	368
query19	229	221	190	190
query20	130	127	125	125
query21	218	138	110	110
query22	13203	15152	14491	14491
query23	16765	16403	15620	15620
query23_1	15742	15744	15678	15678
query24	7187	1623	1218	1218
query24_1	1226	1285	1228	1228
query25	549	471	410	410
query26	1245	271	148	148
query27	2770	482	295	295
query28	4467	1880	1862	1862
query29	847	590	478	478
query30	300	230	190	190
query31	1003	965	876	876
query32	88	71	70	70
query33	515	335	282	282
query34	889	860	537	537
query35	631	690	612	612
query36	1091	1132	967	967
query37	133	94	84	84
query38	2908	2943	2868	2868
query39	876	839	804	804
query39_1	799	810	791	791
query40	226	150	134	134
query41	61	60	57	57
query42	260	259	258	258
query43	240	258	216	216
query44	
query45	197	185	177	177
query46	900	1000	611	611
query47	2102	2528	2037	2037
query48	302	317	234	234
query49	633	456	386	386
query50	695	276	217	217
query51	4117	4008	4064	4008
query52	260	264	248	248
query53	293	338	298	298
query54	292	282	274	274
query55	92	88	79	79
query56	310	332	304	304
query57	1919	1692	1604	1604
query58	283	273	273	273
query59	2783	2962	2762	2762
query60	336	341	331	331
query61	151	152	157	152
query62	646	586	532	532
query63	309	278	271	271
query64	5093	1301	1037	1037
query65	
query66	1469	450	367	367
query67	24260	24261	24144	24144
query68	
query69	409	308	298	298
query70	978	954	970	954
query71	334	304	301	301
query72	2871	2463	2559	2463
query73	547	540	318	318
query74	9592	9602	9400	9400
query75	2822	2742	2461	2461
query76	2296	1058	696	696
query77	385	390	310	310
query78	10996	11211	10562	10562
query79	1145	782	558	558
query80	1549	631	549	549
query81	554	263	226	226
query82	1017	162	124	124
query83	348	268	249	249
query84	278	120	104	104
query85	1241	498	462	462
query86	416	304	287	287
query87	3171	3094	2993	2993
query88	3589	2676	2666	2666
query89	430	367	350	350
query90	1881	190	181	181
query91	176	177	141	141
query92	86	79	69	69
query93	1116	880	508	508
query94	646	331	301	301
query95	600	398	316	316
query96	651	517	235	235
query97	2474	2481	2443	2443
query98	230	231	226	226
query99	1017	993	905	905
Total cold run time: 250054 ms
Total hot run time: 169083 ms

@hello-stephen
Copy link
Copy Markdown
Contributor

FE UT Coverage Report

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

@CalvinKirs CalvinKirs added 4.1.x-tbd Planned for 4.1.x (TBD), currently staying on master for observation. and removed dev/4.1.x labels Apr 1, 2026
@CalvinKirs
Copy link
Copy Markdown
Member Author

run buildall

@doris-robot
Copy link
Copy Markdown

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

------ Round 1 ----------------------------------
orders	Doris	NULL	NULL	0	0	0	NULL	0	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	17649	4478	4288	4288
q2	q3	10677	749	507	507
q4	4677	352	252	252
q5	7562	1215	1031	1031
q6	177	178	147	147
q7	773	833	678	678
q8	9301	1489	1328	1328
q9	4869	4779	4688	4688
q10	6304	1963	1650	1650
q11	460	280	247	247
q12	755	580	472	472
q13	18026	2692	1935	1935
q14	232	239	210	210
q15	q16	746	755	672	672
q17	734	874	417	417
q18	5968	5307	5275	5275
q19	1123	989	619	619
q20	540	491	380	380
q21	4525	1837	1450	1450
q22	363	294	425	294
Total cold run time: 95461 ms
Total hot run time: 26540 ms

----- Round 2, with runtime_filter_mode=off -----
orders	Doris	NULL	NULL	150000000	42	6422171781	NULL	22778155	NULL	NULL	2023-12-26 18:27:23	2023-12-26 18:42:55	NULL	utf-8	NULL	NULL	
============================================
q1	4883	4719	4550	4550
q2	q3	3880	4367	3819	3819
q4	892	1203	792	792
q5	4075	4443	4325	4325
q6	192	191	155	155
q7	1850	1665	1564	1564
q8	2490	3071	2586	2586
q9	7608	7491	7446	7446
q10	3872	4022	3599	3599
q11	506	433	421	421
q12	483	598	472	472
q13	2464	3017	2059	2059
q14	282	301	290	290
q15	q16	720	795	716	716
q17	1204	1386	1415	1386
q18	7188	6773	6768	6768
q19	936	899	903	899
q20	2094	2129	2065	2065
q21	4076	3537	3555	3537
q22	480	429	407	407
Total cold run time: 50175 ms
Total hot run time: 47856 ms

@doris-robot
Copy link
Copy Markdown

TPC-DS: Total hot run time: 168866 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 48ef7a55fb1eb9560b487901ccd27e7ed08d4549, data reload: false

query5	4341	638	505	505
query6	337	232	204	204
query7	4218	449	271	271
query8	331	249	234	234
query9	8720	2703	2712	2703
query10	512	393	334	334
query11	6971	5094	4848	4848
query12	182	127	124	124
query13	1277	463	358	358
query14	5786	3779	3449	3449
query14_1	2812	2824	2804	2804
query15	219	193	180	180
query16	978	470	466	466
query17	896	715	602	602
query18	2437	431	341	341
query19	214	203	182	182
query20	129	124	121	121
query21	213	146	110	110
query22	13124	13325	13242	13242
query23	16171	15825	16200	15825
query23_1	16374	16465	16270	16270
query24	7469	1744	1278	1278
query24_1	1320	1310	1251	1251
query25	573	489	441	441
query26	1277	285	157	157
query27	2978	511	312	312
query28	4868	1930	1914	1914
query29	927	602	522	522
query30	300	230	189	189
query31	999	948	865	865
query32	88	69	70	69
query33	523	334	286	286
query34	916	871	524	524
query35	645	686	599	599
query36	1123	1074	986	986
query37	129	95	82	82
query38	2907	2936	2842	2842
query39	869	831	820	820
query39_1	800	801	818	801
query40	235	153	139	139
query41	65	59	62	59
query42	260	257	256	256
query43	239	250	214	214
query44	
query45	200	187	183	183
query46	875	983	600	600
query47	2510	2127	2089	2089
query48	335	310	225	225
query49	632	454	426	426
query50	695	281	216	216
query51	4056	4079	4031	4031
query52	267	267	253	253
query53	287	327	286	286
query54	303	279	270	270
query55	95	92	82	82
query56	319	325	321	321
query57	1932	1656	1830	1656
query58	287	277	276	276
query59	2789	2952	2738	2738
query60	346	341	319	319
query61	164	156	161	156
query62	638	607	533	533
query63	312	278	281	278
query64	5074	1307	1009	1009
query65	
query66	1472	462	360	360
query67	24166	24278	24208	24208
query68	
query69	411	321	277	277
query70	995	985	964	964
query71	337	330	293	293
query72	3023	2884	2633	2633
query73	544	546	328	328
query74	9705	9592	9381	9381
query75	2858	2799	2506	2506
query76	2295	1034	693	693
query77	371	383	323	323
query78	10978	11161	10471	10471
query79	2256	776	582	582
query80	1756	620	540	540
query81	558	268	222	222
query82	1010	155	115	115
query83	336	267	248	248
query84	295	124	106	106
query85	904	510	468	468
query86	409	329	288	288
query87	3120	3118	2999	2999
query88	3546	2642	2636	2636
query89	423	370	345	345
query90	2005	177	174	174
query91	164	168	140	140
query92	78	73	81	73
query93	1031	843	517	517
query94	661	318	296	296
query95	579	405	333	333
query96	649	535	224	224
query97	2471	2481	2381	2381
query98	233	223	219	219
query99	1034	984	932	932
Total cold run time: 252289 ms
Total hot run time: 168866 ms

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

Labels

4.1.x-tbd Planned for 4.1.x (TBD), currently staying on master for observation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants