Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[enhancement](mysql-channel) avoid potential buffer overflow after flushing send buffer occurs IOE #30868

Conversation

TangSiyang2001
Copy link
Collaborator

Proposed changes

  1. Ensured always clearing send buffer after MysqlChannel::flush op.
  2. Corrected the logic of MysqlChannel::writeBuffer.

@doris-robot
Copy link

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

@TangSiyang2001 TangSiyang2001 force-pushed the avoid-flush-mysql-chann-buffer-overflow branch 8 times, most recently from 069a3e9 to 46502e3 Compare February 6, 2024 15:29
@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17698	4392	4336	4336
q2	2042	146	141	141
q3	10580	930	955	930
q4	4652	714	700	700
q5	7690	2778	2760	2760
q6	185	122	121	121
q7	1187	746	744	744
q8	9299	1960	1991	1960
q9	7294	6342	6324	6324
q10	8143	2476	2413	2413
q11	433	220	215	215
q12	807	299	292	292
q13	18026	3331	3317	3317
q14	276	250	265	250
q15	529	502	485	485
q16	539	426	417	417
q17	935	493	513	493
q18	6792	5880	5968	5880
q19	1566	1384	1305	1305
q20	575	351	353	351
q21	7192	3502	3108	3108
q22	818	331	306	306
Total cold run time: 107258 ms
Total hot run time: 36848 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4507	4367	4395	4367
q2	324	232	228	228
q3	2956	2903	2760	2760
q4	1903	1633	1645	1633
q5	5123	5231	5247	5231
q6	188	113	115	113
q7	2134	1707	1702	1702
q8	3104	3275	3257	3257
q9	8235	8303	8274	8274
q10	6041	3587	3508	3508
q11	545	446	471	446
q12	735	571	554	554
q13	16663	3127	3093	3093
q14	292	247	265	247
q15	531	490	495	490
q16	521	465	481	465
q17	1844	1679	1698	1679
q18	8042	7621	7601	7601
q19	9430	1519	1553	1519
q20	2156	1926	1894	1894
q21	4951	4549	4626	4549
q22	597	502	454	454
Total cold run time: 80822 ms
Total hot run time: 54064 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 174168 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 46502e3ee62d4aff51576ac68c64b849aadb1245, data reload: false

query1	942	338	335	335
query2	6554	1904	1863	1863
query3	6700	215	207	207
query4	31663	22001	22083	22001
query5	4294	420	357	357
query6	260	163	166	163
query7	4614	292	283	283
query8	244	173	178	173
query9	9336	2268	2249	2249
query10	416	229	205	205
query11	18669	15440	15424	15424
query12	127	79	74	74
query13	1633	418	451	418
query14	9706	6808	6852	6808
query15	237	180	186	180
query16	8140	270	248	248
query17	1871	546	500	500
query18	2095	272	261	261
query19	355	152	139	139
query20	83	77	74	74
query21	189	127	120	120
query22	4697	4612	4657	4612
query23	30783	30036	30021	30021
query24	8864	2770	2748	2748
query25	544	356	337	337
query26	707	151	148	148
query27	2168	305	307	305
query28	5482	1857	1822	1822
query29	878	601	637	601
query30	282	132	143	132
query31	926	710	745	710
query32	90	56	51	51
query33	581	232	216	216
query34	829	450	458	450
query35	879	779	733	733
query36	1063	932	939	932
query37	93	61	56	56
query38	3243	3114	3089	3089
query39	1321	1262	1252	1252
query40	188	102	94	94
query41	39	35	33	33
query42	98	94	95	94
query43	502	466	490	466
query44	1096	689	698	689
query45	189	178	170	170
query46	1046	672	678	672
query47	1615	1400	1506	1400
query48	432	345	344	344
query49	1050	301	289	289
query50	753	382	379	379
query51	5283	5152	5144	5144
query52	97	94	83	83
query53	345	287	273	273
query54	249	221	220	220
query55	79	77	77	77
query56	211	208	198	198
query57	979	903	920	903
query58	207	180	182	180
query59	2347	2314	2332	2314
query60	244	228	217	217
query61	82	83	85	83
query62	623	356	352	352
query63	298	259	273	259
query64	4796	3568	3451	3451
query65	3265	3253	3225	3225
query66	814	309	305	305
query67	14544	14326	14042	14042
query68	4471	556	559	556
query69	479	360	327	327
query70	1290	1143	1253	1143
query71	313	249	239	239
query72	6015	2862	2696	2696
query73	694	337	325	325
query74	6588	6234	6173	6173
query75	3069	2327	2328	2327
query76	3000	1019	996	996
query77	382	231	231	231
query78	9396	8697	8512	8512
query79	3275	521	496	496
query80	2121	360	342	342
query81	552	192	196	192
query82	867	82	79	79
query83	251	126	125	125
query84	277	84	81	81
query85	2233	343	327	327
query86	489	285	309	285
query87	3395	3162	3247	3162
query88	4595	2397	2394	2394
query89	438	361	364	361
query90	2072	162	163	162
query91	158	143	122	122
query92	56	44	45	44
query93	5222	521	507	507
query94	1327	178	170	170
query95	466	8041	370	370
query96	599	279	273	273
query97	4201	4096	4111	4096
query98	212	193	188	188
query99	1193	614	640	614
Total cold run time: 282725 ms
Total hot run time: 174168 ms

@TangSiyang2001 TangSiyang2001 force-pushed the avoid-flush-mysql-chann-buffer-overflow branch 2 times, most recently from e61deb9 to 3b99ef5 Compare February 6, 2024 16:07
@TangSiyang2001
Copy link
Collaborator Author

run buildall

@TangSiyang2001 TangSiyang2001 force-pushed the avoid-flush-mysql-chann-buffer-overflow branch from 3b99ef5 to 92d17ff Compare February 7, 2024 03:50
@TangSiyang2001
Copy link
Collaborator Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17633	4602	4425	4425
q2	2043	138	138	138
q3	10604	938	889	889
q4	4651	734	718	718
q5	7674	2787	2771	2771
q6	187	122	120	120
q7	1132	724	708	708
q8	9261	1954	1990	1954
q9	7282	6377	6325	6325
q10	8039	2417	2447	2417
q11	416	204	210	204
q12	734	275	268	268
q13	18035	3327	3304	3304
q14	281	253	266	253
q15	521	492	488	488
q16	475	406	419	406
q17	937	542	499	499
q18	6809	6032	5942	5942
q19	1565	1452	1363	1363
q20	617	359	328	328
q21	7103	3030	3065	3030
q22	798	314	305	305
Total cold run time: 106797 ms
Total hot run time: 36855 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4488	4436	4521	4436
q2	325	240	230	230
q3	2963	2795	2790	2790
q4	1910	1670	1669	1669
q5	5116	5208	5195	5195
q6	189	115	118	115
q7	2167	1723	1754	1723
q8	3094	3234	3211	3211
q9	8314	8252	8240	8240
q10	5786	3576	3551	3551
q11	540	464	453	453
q12	747	563	591	563
q13	13926	3069	3077	3069
q14	283	253	257	253
q15	521	499	481	481
q16	517	501	481	481
q17	1818	1674	1704	1674
q18	8049	7653	7578	7578
q19	9066	1519	1507	1507
q20	2116	1884	1913	1884
q21	4781	4481	4670	4481
q22	568	478	465	465
Total cold run time: 77284 ms
Total hot run time: 54049 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 174588 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 92d17ff71ab1714a070cc432b1e7d75f8e7d7512, data reload: false

query1	916	334	337	334
query2	6566	1952	1870	1870
query3	6705	206	199	199
query4	31996	22078	22073	22073
query5	4281	360	349	349
query6	276	169	163	163
query7	4594	290	278	278
query8	241	173	174	173
query9	8877	2240	2230	2230
query10	418	215	209	209
query11	18912	15395	15378	15378
query12	133	82	75	75
query13	1639	421	420	420
query14	9899	7092	7048	7048
query15	287	167	185	167
query16	8196	268	250	250
query17	2034	534	500	500
query18	2103	277	268	268
query19	358	137	138	137
query20	81	80	85	80
query21	192	128	127	127
query22	4768	4723	4554	4554
query23	30853	30024	30077	30024
query24	9794	2736	2789	2736
query25	544	350	337	337
query26	703	146	147	146
query27	2177	306	302	302
query28	5656	1831	1820	1820
query29	851	592	603	592
query30	278	132	147	132
query31	908	683	713	683
query32	90	51	51	51
query33	580	225	217	217
query34	829	457	463	457
query35	857	751	743	743
query36	987	901	854	854
query37	94	57	57	57
query38	3261	3122	3113	3113
query39	1313	1267	1245	1245
query40	188	100	97	97
query41	39	41	34	34
query42	96	87	94	87
query43	523	480	471	471
query44	1037	681	695	681
query45	190	183	173	173
query46	1020	658	658	658
query47	1575	1517	1488	1488
query48	431	341	367	341
query49	1041	296	281	281
query50	755	388	371	371
query51	5281	5138	5188	5138
query52	92	87	81	81
query53	325	265	275	265
query54	247	223	222	222
query55	83	77	81	77
query56	215	196	191	191
query57	970	908	864	864
query58	202	178	185	178
query59	2625	2348	2340	2340
query60	235	207	227	207
query61	85	85	82	82
query62	644	359	342	342
query63	303	274	262	262
query64	4653	3690	3676	3676
query65	3251	3232	3207	3207
query66	813	315	307	307
query67	14384	14308	14138	14138
query68	4366	534	526	526
query69	483	326	320	320
query70	1262	1234	1251	1234
query71	309	242	246	242
query72	6186	2823	2698	2698
query73	698	332	324	324
query74	6620	6213	6208	6208
query75	3042	2318	2287	2287
query76	2690	892	951	892
query77	342	227	225	225
query78	9150	8852	8507	8507
query79	2748	510	510	510
query80	2041	335	334	334
query81	538	193	196	193
query82	869	78	78	78
query83	257	123	120	120
query84	286	82	81	81
query85	2155	330	328	328
query86	487	304	312	304
query87	3429	3208	3261	3208
query88	3888	2372	2363	2363
query89	434	365	357	357
query90	1974	163	160	160
query91	165	123	120	120
query92	53	42	44	42
query93	3787	474	496	474
query94	1311	180	170	170
query95	465	7910	350	350
query96	585	283	281	281
query97	4239	4125	4124	4124
query98	220	191	186	186
query99	1154	708	692	692
Total cold run time: 280783 ms
Total hot run time: 174588 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 31.83 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 92d17ff71ab1714a070cc432b1e7d75f8e7d7512, data reload: false

query1	0.04	0.04	0.03
query2	0.06	0.02	0.03
query3	0.27	0.07	0.07
query4	2.03	0.11	0.11
query5	0.53	0.53	0.52
query6	1.22	0.64	0.63
query7	0.01	0.01	0.01
query8	0.04	0.02	0.02
query9	0.53	0.51	0.50
query10	0.56	0.54	0.57
query11	0.12	0.09	0.09
query12	0.12	0.09	0.10
query13	0.60	0.61	0.61
query14	0.78	0.79	0.81
query15	0.78	0.79	0.77
query16	0.37	0.39	0.39
query17	1.03	0.99	1.03
query18	0.19	0.27	0.25
query19	1.82	1.74	1.78
query20	0.01	0.01	0.01
query21	15.39	0.56	0.56
query22	2.45	2.88	2.66
query23	17.50	0.74	0.71
query24	2.34	1.33	1.00
query25	0.31	0.25	0.08
query26	0.52	0.14	0.14
query27	0.04	0.04	0.03
query28	12.01	0.84	0.84
query29	12.55	3.26	3.26
query30	0.57	0.52	0.55
query31	2.79	0.34	0.35
query32	3.37	0.48	0.47
query33	3.25	3.25	3.21
query34	15.88	4.25	4.25
query35	4.25	4.28	4.25
query36	1.11	1.06	1.07
query37	0.06	0.05	0.05
query38	0.04	0.03	0.03
query39	0.02	0.02	0.02
query40	0.16	0.13	0.13
query41	0.07	0.01	0.02
query42	0.03	0.01	0.02
query43	0.02	0.02	0.02
Total cold run time: 105.84 s
Total hot run time: 31.83 s

@doris-robot
Copy link

Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Load test result on commit 92d17ff71ab1714a070cc432b1e7d75f8e7d7512 with default session variables
Stream load json:         19 seconds loaded 2358488459 Bytes, about 118 MB/s
Stream load orc:          59 seconds loaded 1101869774 Bytes, about 17 MB/s
Stream load parquet:      31 seconds loaded 861443392 Bytes, about 26 MB/s
Insert into select:       13.9 seconds inserted 10000000 Rows, about 719K ops/s

@TangSiyang2001
Copy link
Collaborator Author

run feut

Copy link
Contributor

@dataroaring dataroaring left a comment

Choose a reason for hiding this comment

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

LGTM

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Feb 8, 2024
Copy link
Contributor

github-actions bot commented Feb 8, 2024

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

Copy link
Contributor

github-actions bot commented Feb 8, 2024

PR approved by anyone and no changes requested.

@dataroaring dataroaring merged commit 20186b3 into apache:master Feb 8, 2024
27 of 29 checks passed
yiguolei pushed a commit that referenced this pull request Feb 8, 2024
yiguolei pushed a commit that referenced this pull request Feb 16, 2024
mymeiyi pushed a commit to mymeiyi/doris that referenced this pull request Feb 19, 2024
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. dev/2.0.5 reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants