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

[feature](Load)(step2)support nereids load job schedule #26356

Merged
merged 12 commits into from
Dec 26, 2023
Merged

[feature](Load)(step2)support nereids load job schedule #26356

merged 12 commits into from
Dec 26, 2023

Conversation

wsjz
Copy link
Contributor

@wsjz wsjz commented Nov 3, 2023

Proposed changes

We will Integrate new load job manager into new job scheduling framework so that the insert into task can be scheduled after the broker load sql is converted to insert into TVF(table value function) sql.

issue: #24221

Now support:

  1. load data by tvf insert into sql, but just for simple load(columns need to be defined in the table)
  2. show load stmt
  • job id, label name, job state, time info
  • simple progress
  1. cancel load from db
  2. support that enable new load through Config.enable_nereids_load
  3. can replay job after restarting doris

TODO:

  • support partition insert job
  • support show statistics from BE
  • support multiple task and collect task statistic
  • support transactional task
  • need add ut case

Further comments

If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...

@wsjz wsjz marked this pull request as ready for review December 11, 2023 13:45
@wsjz
Copy link
Contributor Author

wsjz commented Dec 12, 2023

run buildall

@wsjz
Copy link
Contributor Author

wsjz commented Dec 12, 2023

run buildall

@wsjz
Copy link
Contributor Author

wsjz commented Dec 14, 2023

run buildall

@doris-robot
Copy link

TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
Tpch sf100 test result on commit c3ecbe8b5077a06b1ebdb7f378765228625ae569, data reload: false

run tpch-sf100 query with default conf and session variables
q1	4754	4480	4477	4477
q2	364	152	158	152
q3	1477	1259	1216	1216
q4	1113	903	911	903
q5	3141	3167	3189	3167
q6	247	130	129	129
q7	979	486	484	484
q8	2218	2194	2199	2194
q9	6682	6654	6646	6646
q10	3219	3273	3255	3255
q11	321	204	201	201
q12	351	211	212	211
q13	4557	3815	3786	3786
q14	249	211	211	211
q15	580	523	523	523
q16	440	387	387	387
q17	1008	595	528	528
q18	7174	6858	6870	6858
q19	1530	1378	1414	1378
q20	520	320	292	292
q21	3069	2627	2676	2627
q22	350	290	292	290
Total cold run time: 44343 ms
Total hot run time: 39915 ms

run tpch-sf100 query with default conf and set session variable runtime_filter_mode=off
q1	4398	4423	4388	4388
q2	268	165	168	165
q3	3532	3535	3520	3520
q4	2403	2386	2385	2385
q5	5744	5719	5776	5719
q6	240	121	125	121
q7	2406	1917	1836	1836
q8	3517	3525	3527	3525
q9	9038	9037	8981	8981
q10	3932	4003	4022	4003
q11	506	384	379	379
q12	769	592	594	592
q13	4280	3564	3549	3549
q14	284	256	260	256
q15	574	523	522	522
q16	502	466	461	461
q17	1866	1863	1865	1863
q18	8636	8267	8319	8267
q19	1757	1747	1745	1745
q20	2269	1968	1932	1932
q21	6515	6179	6179	6179
q22	494	414	428	414
Total cold run time: 63930 ms
Total hot run time: 60802 ms

@doris-robot
Copy link

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 44.31 seconds
stream load tsv: 588 seconds loaded 74807831229 Bytes, about 121 MB/s
stream load json: 19 seconds loaded 2358488459 Bytes, about 118 MB/s
stream load orc: 67 seconds loaded 1101869774 Bytes, about 15 MB/s
stream load parquet: 33 seconds loaded 861443392 Bytes, about 24 MB/s
insert into select: 28.9 seconds inserted 10000000 Rows, about 346K ops/s
storage size: 17219723249 Bytes

@wsjz
Copy link
Contributor Author

wsjz commented Dec 16, 2023

run buildall

@doris-robot
Copy link

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 45.22 seconds
stream load tsv: 589 seconds loaded 74807831229 Bytes, about 121 MB/s
stream load json: 19 seconds loaded 2358488459 Bytes, about 118 MB/s
stream load orc: 67 seconds loaded 1101869774 Bytes, about 15 MB/s
stream load parquet: 33 seconds loaded 861443392 Bytes, about 24 MB/s
insert into select: 28.9 seconds inserted 10000000 Rows, about 346K ops/s
storage size: 17219958200 Bytes

@doris-robot
Copy link

TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
Tpch sf100 test result on commit 09fcd7c63648ab365f94b9859fccc7812fb09b03, data reload: true

run tpch-sf100 query with default conf and session variables
q1	4650	4427	4413	4413
q2	381	120	118	118
q3	1456	1221	1204	1204
q4	1153	911	866	866
q5	3217	3228	3206	3206
q6	244	121	123	121
q7	964	526	542	526
q8	2155	2180	2189	2180
q9	7176	6692	6659	6659
q10	3219	3271	3265	3265
q11	324	202	201	201
q12	359	214	215	214
q13	4936	3851	3823	3823
q14	237	203	207	203
q15	566	507	518	507
q16	461	381	381	381
q17	1016	609	580	580
q18	7407	7035	6731	6731
q19	1555	1400	1451	1400
q20	501	284	290	284
q21	3059	2629	2659	2629
q22	344	271	277	271
Total cold run time: 45380 ms
Total hot run time: 39782 ms

run tpch-sf100 query with default conf and set session variable runtime_filter_mode=off
q1	4422	4397	4424	4397
q2	263	160	165	160
q3	3508	3492	3489	3489
q4	2391	2393	2391	2391
q5	5708	5697	5708	5697
q6	237	121	122	121
q7	2375	1851	1842	1842
q8	3519	3523	3518	3518
q9	9284	9027	9161	9027
q10	3917	4005	4023	4005
q11	504	385	394	385
q12	768	602	611	602
q13	4309	3572	3571	3571
q14	289	246	254	246
q15	585	528	526	526
q16	511	463	496	463
q17	1868	1866	1836	1836
q18	8517	8097	8337	8097
q19	1714	1765	1721	1721
q20	2274	1969	1937	1937
q21	6508	6240	6111	6111
q22	501	427	429	427
Total cold run time: 63972 ms
Total hot run time: 60569 ms

@wsjz
Copy link
Contributor Author

wsjz commented Dec 18, 2023

run buildall

@doris-robot
Copy link

TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Tpch sf100 test result on commit db2cd09edf366d66eb55caae3f4fd6d5f0b49ea2, data reload: false

run tpch-sf100 query with default conf and session variables
q1	4729	4493	4491	4491
q2	362	151	158	151
q3	1458	1266	1218	1218
q4	1122	918	927	918
q5	3141	3136	3162	3136
q6	243	127	126	126
q7	983	481	481	481
q8	2240	2224	2187	2187
q9	6712	6685	6657	6657
q10	3226	3271	3279	3271
q11	312	203	203	203
q12	348	209	203	203
q13	4573	3786	3789	3786
q14	245	212	210	210
q15	564	521	524	521
q16	442	383	384	383
q17	1019	620	525	525
q18	7359	6845	6947	6845
q19	1531	1436	1412	1412
q20	557	317	296	296
q21	3048	2678	2684	2678
q22	345	280	279	279
Total cold run time: 44559 ms
Total hot run time: 39977 ms

run tpch-sf100 query with default conf and set session variable runtime_filter_mode=off
q1	4397	4398	4414	4398
q2	264	163	172	163
q3	3534	3527	3519	3519
q4	2383	2360	2374	2360
q5	5711	5735	5742	5735
q6	245	122	122	122
q7	2376	1889	1892	1889
q8	3520	3524	3525	3524
q9	9005	8992	9001	8992
q10	3927	4014	4012	4012
q11	522	392	374	374
q12	770	606	619	606
q13	4305	3567	3554	3554
q14	289	263	257	257
q15	573	524	522	522
q16	510	463	479	463
q17	1861	1873	1834	1834
q18	8652	8336	8332	8332
q19	1748	1760	1738	1738
q20	2257	1934	1932	1932
q21	6511	6157	6131	6131
q22	517	417	424	417
Total cold run time: 63877 ms
Total hot run time: 60874 ms

@shuke987
Copy link
Collaborator

run buildall

1 similar comment
@wsjz
Copy link
Contributor Author

wsjz commented Dec 18, 2023

run buildall

@doris-robot
Copy link

TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Tpch sf100 test result on commit db2cd09edf366d66eb55caae3f4fd6d5f0b49ea2, data reload: false

run tpch-sf100 query with default conf and session variables
q1	4749	4506	4497	4497
q2	363	151	159	151
q3	1463	1253	1198	1198
q4	1121	925	901	901
q5	3165	3166	3127	3127
q6	247	128	130	128
q7	986	486	475	475
q8	2219	2216	2187	2187
q9	6659	6650	6655	6650
q10	3201	3259	3249	3249
q11	329	203	209	203
q12	354	214	216	214
q13	4566	3800	3871	3800
q14	241	218	209	209
q15	570	537	524	524
q16	439	392	390	390
q17	1005	648	577	577
q18	7218	7034	6934	6934
q19	1552	1494	1363	1363
q20	537	319	300	300
q21	3040	2634	2664	2634
q22	346	283	281	281
Total cold run time: 44370 ms
Total hot run time: 39992 ms

run tpch-sf100 query with default conf and set session variable runtime_filter_mode=off
q1	4490	4396	4434	4396
q2	267	161	171	161
q3	3549	3527	3530	3527
q4	2392	2386	2382	2382
q5	5721	5740	5729	5729
q6	244	122	123	122
q7	2369	1849	1868	1849
q8	3520	3514	3512	3512
q9	9035	9007	9011	9007
q10	3904	3959	3996	3959
q11	506	392	386	386
q12	771	596	595	595
q13	4317	3546	3570	3546
q14	283	259	259	259
q15	568	518	525	518
q16	514	471	481	471
q17	1861	1872	1829	1829
q18	8648	8167	8298	8167
q19	1724	1758	1758	1758
q20	2254	1945	1937	1937
q21	6563	6211	6155	6155
q22	504	428	437	428
Total cold run time: 64004 ms
Total hot run time: 60693 ms

@doris-robot
Copy link

TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Tpch sf100 test result on commit 77e5930ee90ed59db5101451e5dfac82810aa1c3, data reload: false

run tpch-sf100 query with default conf and session variables
q1	4756	4485	4572	4485
q2	362	159	159	159
q3	1455	1276	1198	1198
q4	1112	922	919	919
q5	3181	3168	3202	3168
q6	241	128	126	126
q7	1009	495	487	487
q8	2225	2217	2224	2217
q9	6744	6686	6699	6686
q10	3206	3260	3273	3260
q11	325	197	201	197
q12	354	210	211	210
q13	4581	3798	3783	3783
q14	242	210	218	210
q15	569	527	519	519
q16	444	390	385	385
q17	1025	658	594	594
q18	7192	6958	6996	6958
q19	1550	1491	1360	1360
q20	577	318	286	286
q21	3083	2668	2687	2668
q22	353	280	289	280
Total cold run time: 44586 ms
Total hot run time: 40155 ms

run tpch-sf100 query with default conf and set session variable runtime_filter_mode=off
q1	4470	4417	4445	4417
q2	266	162	165	162
q3	3545	3536	3528	3528
q4	2410	2395	2394	2394
q5	5744	5730	5751	5730
q6	241	120	121	120
q7	2397	1859	1870	1859
q8	3534	3545	3542	3542
q9	9000	9010	8967	8967
q10	3907	3953	4009	3953
q11	502	389	395	389
q12	764	578	584	578
q13	4307	3596	3555	3555
q14	294	257	255	255
q15	564	522	529	522
q16	520	470	480	470
q17	1887	1836	1850	1836
q18	8840	8342	8394	8342
q19	1741	1773	1768	1768
q20	2256	1940	1935	1935
q21	6526	6170	6171	6170
q22	499	427	435	427
Total cold run time: 64214 ms
Total hot run time: 60919 ms

@doris-robot
Copy link

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 44.14 seconds
stream load tsv: 575 seconds loaded 74807831229 Bytes, about 124 MB/s
stream load json: 19 seconds loaded 2358488459 Bytes, about 118 MB/s
stream load orc: 66 seconds loaded 1101869774 Bytes, about 15 MB/s
stream load parquet: 32 seconds loaded 861443392 Bytes, about 25 MB/s
insert into select: 28.4 seconds inserted 10000000 Rows, about 352K ops/s
storage size: 17220998870 Bytes

@wsjz
Copy link
Contributor Author

wsjz commented Dec 18, 2023

run buildall

@wsjz
Copy link
Contributor Author

wsjz commented Dec 19, 2023

run clickbench

@wsjz
Copy link
Contributor Author

wsjz commented Dec 19, 2023

run pipelinex_p0

@doris-robot
Copy link

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 44.63 seconds
stream load tsv: 581 seconds loaded 74807831229 Bytes, about 122 MB/s
stream load json: 19 seconds loaded 2358488459 Bytes, about 118 MB/s
stream load orc: 66 seconds loaded 1101869774 Bytes, about 15 MB/s
stream load parquet: 33 seconds loaded 861443392 Bytes, about 24 MB/s
insert into select: 29.2 seconds inserted 10000000 Rows, about 342K ops/s
storage size: 17221068688 Bytes

@doris-robot
Copy link

TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Tpch sf100 test result on commit 6004f9eafd4d55c89a19d1fa519deb1d5cd9bb5d, data reload: false

run tpch-sf100 query with default conf and session variables
q1	4646	4451	4465	4451
q2	359	152	160	152
q3	1475	1250	1202	1202
q4	1113	876	886	876
q5	3142	3130	3164	3130
q6	246	129	130	129
q7	996	499	481	481
q8	2166	2231	2177	2177
q9	6682	6630	6665	6630
q10	3218	3273	3286	3273
q11	309	177	189	177
q12	358	210	204	204
q13	4549	3785	3791	3785
q14	241	210	218	210
q15	573	524	520	520
q16	437	380	384	380
q17	1024	626	606	606
q18	7267	6947	6960	6947
q19	1577	1412	1372	1372
q20	501	304	286	286
q21	3042	2639	2695	2639
q22	360	280	286	280
Total cold run time: 44281 ms
Total hot run time: 39907 ms

run tpch-sf100 query with default conf and set session variable runtime_filter_mode=off
q1	4343	4362	4354	4354
q2	266	163	174	163
q3	3546	3529	3527	3527
q4	2386	2376	2360	2360
q5	5728	5771	5756	5756
q6	240	121	123	121
q7	2379	1903	1870	1870
q8	3523	3533	3536	3533
q9	9012	9017	8988	8988
q10	3915	4004	4025	4004
q11	492	380	369	369
q12	764	593	597	593
q13	4302	3578	3556	3556
q14	281	258	264	258
q15	567	519	527	519
q16	504	463	500	463
q17	1859	1866	1854	1854
q18	8740	8202	8387	8202
q19	1767	1807	1817	1807
q20	2259	1947	1942	1942
q21	6522	6206	6181	6181
q22	506	427	442	427
Total cold run time: 63901 ms
Total hot run time: 60847 ms

* @param dbId db id
* @param labelName label name
*/
public void removeJob(long dbId, String labelName) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Not used?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

TODO: for clean old label method

morningman
morningman previously approved these changes Dec 22, 2023
Copy link
Contributor

@morningman morningman left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

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

@github-actions github-actions bot added the approved Indicates a PR has been approved by one committer. label Dec 22, 2023
Copy link
Contributor

PR approved by anyone and no changes requested.

@wsjz
Copy link
Contributor Author

wsjz commented Dec 25, 2023

run buildall

@github-actions github-actions bot removed the approved Indicates a PR has been approved by one committer. label Dec 25, 2023
@wsjz wsjz requested review from zddr and morningman December 25, 2023 07:04
@wsjz
Copy link
Contributor Author

wsjz commented Dec 25, 2023

run buildall

@doris-robot
Copy link

TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'

Tpch sf100 test result on commit be4617365b39cf5059ec0b65912908484d93fb66, data reload: false

run tpch-sf100 query with default conf and session variables
q1	4713	4409	4409	4409
q2	369	142	162	142
q3	1466	1278	1277	1277
q4	1101	852	867	852
q5	3169	3159	3182	3159
q6	255	129	131	129
q7	977	476	492	476
q8	2169	2223	2186	2186
q9	6707	6663	6662	6662
q10	3224	3268	3287	3268
q11	310	190	183	183
q12	359	210	207	207
q13	4554	3780	3790	3780
q14	234	209	211	209
q15	571	522	536	522
q16	446	388	392	388
q17	1022	663	575	575
q18	7068	6748	6872	6748
q19	1548	1414	1376	1376
q20	525	316	321	316
q21	3098	2675	2647	2647
q22	351	281	288	281
Total cold run time: 44236 ms
Total hot run time: 39792 ms

run tpch-sf100 query with default conf and set session variable runtime_filter_mode=off
q1	4368	4326	4313	4313
q2	273	175	176	175
q3	3519	3510	3525	3510
q4	2403	2382	2382	2382
q5	5714	5739	5739	5739
q6	246	123	126	123
q7	2358	1848	1858	1848
q8	3533	3553	3542	3542
q9	9047	9003	8979	8979
q10	3907	4007	3991	3991
q11	495	377	368	368
q12	771	582	617	582
q13	4301	3554	3554	3554
q14	285	248	247	247
q15	578	528	525	525
q16	485	442	462	442
q17	1892	1876	1867	1867
q18	8525	8144	8081	8081
q19	1761	1743	1740	1740
q20	2249	1962	1933	1933
q21	6508	6139	6173	6139
q22	518	445	397	397
Total cold run time: 63736 ms
Total hot run time: 60477 ms

@doris-robot
Copy link

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 44.88 seconds
stream load tsv: 560 seconds loaded 74807831229 Bytes, about 127 MB/s
stream load json: 19 seconds loaded 2358488459 Bytes, about 118 MB/s
stream load orc: 66 seconds loaded 1101869774 Bytes, about 15 MB/s
stream load parquet: 32 seconds loaded 861443392 Bytes, about 25 MB/s
insert into select: 28.6 seconds inserted 10000000 Rows, about 349K ops/s
storage size: 17183712737 Bytes

Copy link
Contributor

@morningman morningman 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 Dec 25, 2023
Copy link
Contributor

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

@morningman morningman merged commit 509cfea into apache:master Dec 26, 2023
17 of 18 checks passed
CalvinKirs added a commit to CalvinKirs/incubator-doris that referenced this pull request Dec 27, 2023
* [Performance](point query)Opimize partition prune for point query (apache#28150)

* [Performance](point query)Opimize partition prune for point query

* [fix](stacktrace) ignore stacktrace for error code INVALID_ARGUMENT INVERTED_INDEX_NOT_IMPLEMENTED (apache#27898) (apache#28598)

* ignore stacktrace for error INVALID_ARGUMENT INVERTED_INDEX_NOT_IMPLEMENTED

* AndBlockColumnPredicate::evaluate

* [bugfix](topn) fix coredump in copy_column_data_to_block when nullable mismatch (apache#28597)

* [bugfix](topn) fix coredump in copy_column_data_to_block when nullable mismatch

return RuntimeError if copy_column_data_to_block nullable mismatch to avoid coredump in input_col_ptr->filter_by_selector(sel_rowid_idx, select_size, raw_res_ptr) .

The problem is reported by a doris user but I can not reproduce it, so there is no testcase added currently.

* clang format

* [feature](Nereids): eliminate semi join (apache#28588)

Eliminate Semi/Anti Join which is FALSE or TRUE.

* [feature](Nereids) support datev1 and datetimev1 (apache#28581)

* [improvement](http) add show_table_data http api (apache#28380)

In some cases, users need to get the data size of single replica of a table, and evaluate certain actions based on this, such as estimating the precise backup size.

Signed-off-by: nextdreamblue <zxw520blue1@163.com>

* [Enhance](regression)enhance jdbc case to adapt to use case concurrency (apache#28565)

enhance jdbc case to adapt to use case concurrency

* [opt](Nereids)when both Nereids and old parsers report errors, prompt error messages for the Nereids (apache#28580)

* [Improvement](regression) change compound predicate regression case name to make it more clear (apache#28612)

* [regression](memtable) add case for memtable flush error handle (apache#28285)

Co-authored-by: ziyang zhang <zhangziyang@stu.cdut.edu.cn>

* [regression-test](memtable)  test memtable flush is high priority for vtable writerV1 (apache#28502)

* enhance performance for broken tablet checking under multi-core scenario with a coarse-grained read lock (apache#28552)

* [fix](load) fix memtracking orphan too large (apache#28600)

* [fix](memtable-limiter) do not block write if load mem usage is low (apache#28602)


Co-authored-by: Yongqiang YANG <98214048+dataroaring@users.noreply.github.com>

* [refactor](renamefile) rename some files according to the class names (apache#28606)

* [feature](mtmv)create mtmv support refresh_partition_num (apache#28566)

- create/alter mtmv support refresh_partition_num
- mtmv task according to refresh_partition_num executes refresh tasks in batches
- `tasks` tvf add column `CompletedPartitions` and `progress`
- fix mtmv can not `show temp partition` and `drop temp partition`
- fix task can not get error msg when insert overwrite error
- fix when the partition field is capitalized, the verification of creating a mtmv does not pass

* [fix](Nereids) stats estimation of lessThan apache#28444

* [fix](regression)Change analyze_timeout to global.  (apache#28587)

Fix hive statistics regression case. analyze_timeout is a global session variable.

* [chore] Add bvar for meta operations of BE (apache#28374)

* [Bug](cooldown) Fix problem that followers may never completely cooldown (apache#28561)

* [Improve](tvf)jni-avro support split file (apache#27933)

* [feature](mtmv)after creating a materialized view, if other operations fail, roll back  (apache#28621)

after create mtmv, if create job failed,need drop mtmv

* [fix](meta) update killed query state (#) (apache#25917)

* [refactor](profile&names) using dst_id in pipelinex profile to be same as non pipeline; rename some function names (apache#28626)

Co-authored-by: yiguolei <yiguolei@gmail.com>

* [feature][executor]support workload schedule policy (apache#28443)

* [feature](expr) Support kill query by query_id (apache#28530)

Issue Number: open apache#28517

* [chore](user) Add user property `parallel_fragment_exec_instance_num` (apache#28447)

* [feature](inverted index) add ignore_above property to prevent long s… (apache#28585)

When string is too long, clucene will throw an error. 
And the string is too long to analyze. So we ignore the string in index process when the string is longer than 256 bytes by default.
We add an poperty `ignore_above` for user to customize.

* [Enhance](broker) add inputstream expire scheduled checker to avoid memory leak for broker scan (apache#28589)

This pr introduces 2 broker conf:

1. enable_input_stream_expire_check: which indicates whether enable inputStream expire check.
2. input_stream_expire_seconds: which indicates the timeout seconds for inputStream since last update.

* [fix](hive) add support for `quoteChar` and `seperatorChar` for hive (apache#28613)

add support for quoteChar and seperatorChar .

* [Fix](transactional-hive) Fix hive transactional table return empty result. (apache#28518)

* [Fix](memtable) fix `shrink_memtable_by_agg` without duplicated keys (apache#28660)

remove duplicated logic:
```
vectorized::Block in_block = _input_mutable_block.to_block();
_put_into_output(in_block);
```
`_input_mutable_block.to_block()` will move `_input_mutable_block`, and lead to `flush` with empty block

* [enhance](partition_id) check partition id before store meta (apache#28055)

* [opt](task-assignment) use consistent hash as default task assigner and cache the consistent hash ring (apache#28522)

1. Use consistent hash algo as the default assigner for file query scan node
    A consistent assignment can better utilize the page cache of BE node.

2. Cache the consistent hash ring
    Init a consistent hash ring is time-consuming because there a thousands of virtual node need to be added.
    So cache it for better performance

* [Fix](Job)Fixed job scheduling missing certain time window schedules (apache#28659)

Since scheduling itself consumes a certain amount of time, the start time of the time window should not be the current time, but the end time of the last schedule.

* [fix](test) fix ccr test cases (apache#28664)

* [fix](regression) fix test_set_replica_status due to force_olap_table_replication_num=3 (apache#28573)

* [fix](regression) restore reserve num replicas (apache#28541)

* [fix](regression) fix test_alter_colocate_table due to force_olap_table_replication_num=3 (apache#28575)

* [improvement](transaction) reduce publish txn log (apache#28277)

* [fix](stream_load)fix bug for stream (apache#27752)

1. forbid thed  stream_load without content-length or chunked Transfer Encoding
2. forbid thed  stream_load both with content-length and chunked Transfer Encoding

Co-authored-by: xingying01 <xingying01@corp.netease.com>

* [Revert](partial update) Revert "Fix missing rowsets during doing alignment when flushing memtable due to compaction (apache#28062)" (apache#28674)

This reverts commit 485d7db.

* [feat](Nereids) support outer join and aggregate bitmap rewrite by mv (apache#28596)

- Support left outer join rewrite by materialized view
- Support bitmap_union roll up to imp count(distinct)
- Support partition materialized view rewrite

* [refactor](runtimefilter) do not use QueryContext in runtime filter (apache#28559)

* [fix](planner)should bind expr using no slot to correct tuple (apache#28656)

* [fix](planner) ctas update datev1 to datev2 should use equals (apache#28641)

* [fix](Nereids) should only do bind relation in view analyzer (apache#28637)

* [code](pipelineX) refine some pipelineX code  (apache#28570)

* [fix](partial update) report error directly if missing rowsets during doing alignment when flushing memtable due to compaction  (apache#28677)

* [opt](inverted index) Add null document interface to optimize empty string indexing (apache#28661)

* [feature](invert index) match_regexp feature added (apache#28257)

* [Feature](datatype) update be ut codes and fix bugs for IPv4/v6 (apache#28670)

* [test](Nereids): remove shape plan project and distribute in eager test (apache#28701)

* [fix](statistics)Fix drop stats fail silently bug. (apache#28635)

Drop stats use IN predicate to filter the column stats to delete. The default length of IN predicate is 1024, drop table stats with more than 1024 columns may fail.
This pr is to split the delete sql based on the IN predicate length.

* [fix](mtmv) fix insert overwrite getExecTimeout error (apache#28700)

should use InsertTimeout but QueryTimeout

* [Enhancement](auto-partition) change the behaviour when insert overwrite an auto partition table apache#28683

If we specific target partition(s) when inserting overwrite an auto partition table,
before:
could create new partition
now:
behalf just like non-auto partition table

* [FIX](regresstest) fix case with double value apache#28668

double value in case has 27 figures after the point, which will make not standable output

* [test](Nereids): add test for scalar agg (apache#28712)

* [fix](meta_scanner) fix meta_scanner process ColumnNullable (apache#28711)

* [fix](nereids) Fix data wrong using mv rewrite and ignore case when getting mv related partition table (apache#28699)

1. Fix data wrong using mv rewrite
2. Ignore case when getting mv related partition table
3. Enable infer expression column name without alias when create mv

* [test](regression-test) order by decs should only make effect on its nearest column apache#28728

* [refine](pipelineX)Make the 'set ready' logic of SenderQueue in pipelineX the same as that in the pipeline (apache#28488)

* [fix](Nereids) delete partition failed (apache#28717)

1. parser's partitionSpec changed unexpectly by PR apache#26492
2. delete without using should support un-equals expression

* [fix](tvf)Fixed the avro-scanner projection pushdown failing to query on multiple BEs (apache#28709)

* [fix](block) fix nullptr in MutableBlock::allocated_bytes (apache#28738)

* [fix](mtmv)fix thread local reference to checkpoint's Env, causing Env to be unable to be reclaimed, resulting in excessive memory usage by FE (apache#28723)

when replay addTaskResult log,will create one ConnectContext,and set Env.getCurrentEnv,then store this ctx in ConnectContext.threadLocalInfo,threadLocalInfo is static,so this ctx can not be recycling,Env of replay thread also can not be recycling

* [Fix](json reader) fix json reader crash due to `fmt::format_to` (apache#28737)

```
4# __gnu_cxx::__verbose_terminate_handler() [clone .cold] at ../../../../libstdc++-v3/libsupc++/vterminate.cc:75
5# __cxxabiv1::__terminate(void (*)()) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
6# 0x00005622F33D22B1 in /mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
7# 0x00005622F33D2404 in /mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
8# fmt::v7::detail::error_handler::on_error(char const*) in /mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
9# char const* fmt::v7::detail::parse_replacement_field<char, fmt::v7::detail::format_handler<fmt::v7::detail::buffer_appender<char>, char, fmt::v7::basic_format_context<fmt::v7::detail::buffer_appender<char>, char> >&>(char const*, char const*, fmt::v7::detail::format_handler<fmt::v7::detail::buffer_appender<char>, char, fmt::v7::basic_format_context<fmt::v7::detail::buffer_appender<char>, char> >&) in /mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
10# void fmt::v7::detail::vformat_to<char>(fmt::v7::detail::buffer<char>&, fmt::v7::basic_string_view<char>, fmt::v7::basic_format_args<fmt::v7::basic_format_context<fmt::v7::detail::buffer_appender<fmt::v7::type_identity<char>::type>, fmt::v7::type_identity<char>::type> >, fmt::v7::detail::locale_ref) in /mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster0/be/lib/doris_be
11# doris::vectorized::NewJsonReader::_append_error_msg(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool*) at /root/doris/be/src/vec/exec/format/json/new_json_reader.cpp:924
12# doris::vectorized::NewJsonReader::_set_column_value
```

* [bug](coredump) Fix coredump in aggregation node's destruction(apache#28684)

fix coredump in aggregation node's destruction

* [pipelineX](improvement) Support global runtime filter (apache#28692)

* [FIX](explode)fix explode array decimal (apache#28744)

* fix explode with array<decimal> has specific precision at old planner

* [refactor](broadcastbuffer) using a queue to remove ref and unref codes (apache#28698)

Co-authored-by: yiguolei <yiguolei@gmail.com>Add a new class broadcastbufferholderqueue to manage holders
Using shared ptr to manage holders, not use ref and unref, it is too difficult to maintain.

* [enhance](blacklist) seperate blacklist conf from heartbeat (apache#28638)

There is a circuit breaker lasting for 2 minutes in grpc, then if a be is down and up again, send fragments to the be fails lasting for 2 minutes.

* [fix](stmt):fix CreateTableStmt toSql placed comment in wrong place (apache#27504)

Issue Number: close apache#27474
Co-authored-by: tongyang.han <tongyang.han@jiduauto.com>

* [Improve](compile) add `__AVX2__` macro for JsonbParser (apache#28754)

* [Improve](compile) add `__AVX2__` macro for JsonbParser

* throw exception instead of CHECK

* [Feature](materialized-view) support match logicalAggregate(logicalProject(logicalFilter(logicalOlapScan())) without agg (apache#28747)

support match logicalAggregate(logicalProject(logicalFilter(logicalOlapScan())) without agg

* [Fix] (schema change) forbid adding time type column (apache#28751)

* [fix](group_commit) fix group commit cancel stuck (apache#28749)

* [fix](scanner) fix concurrency bugs when scanner is stopped or finished (apache#28650)

`ScannerContext` will schedule scanners even after stopped, and confused with `_is_finished` and `_should_stop`.
 Only Fix the concurrency bugs when scanner is stopped or finished reported in apache#28384

* [fix](regression) fix stream load properties case fail (apache#28680)

* [fix](fe ut) fix PropertyConverterTest (apache#28722)

* [improve](rpc) Log channel state before shutdown backend service client (apache#28667)

* [fix](publish version) fix publish fail but return ok (apache#28425)

* [test](Nereids): remove shape plan project and distribute in eager test (apache#28724)

* [refactor](nereids) make NormalizeAggregate rule more clear and readable (apache#28607)

* [FIX](type) fix matchExactType for complex type (apache#28233)

fe matchExactType function should call type.matchTypes for its own logic, do not switch case to do special logic otherwise we may meet core in be like this.
 ```
F20231208 18:54:39.359673 680131 block.h:535] Check failed: _data_types[i]->is_nullable()  target type: Struct(l_info:Nullable(Array(Nullable(String)))) src type: Struct(col:Nullable(Array(Nullable(UInt8))))
*** Check failure stack trace: ***
    @     0x5584e952b926  google::LogMessage::SendToLog()
    @     0x5584e9527ef0  google::LogMessage::Flush()
    @     0x5584e952c169  google::LogMessageFatal::~LogMessageFatal()
    @     0x5584cf17201e  doris::vectorized::MutableBlock::merge_impl<>()
    @     0x5584ceac4b1d  doris::vectorized::MutableBlock::merge<>()
    @     0x5584d4dd7de3  doris::vectorized::VUnionNode::get_next_const()
    @     0x5584d4dd9a45  doris::vectorized::VUnionNode::get_next()
    @     0x5584bce469bd  std::__invoke_impl<>()
    @     0x5584bce466d0  std::__invoke<>()
    @     0x5584bce465c7  _ZNSt5_BindIFMN5doris8ExecNodeEFNS0_6StatusEPNS0_12RuntimeStateEPNS0_10vectorized5BlockEPbEPS1_St12_PlaceholderILi1EESC_ILi2EESC_ILi3EEEE6__callIS2_JOS4_OS7_OS8_EJLm0ELm1ELm2ELm3EEEET_OSt5tupleIJDpT0_EESt12_Index_tupleIJXspT1_EEE
    @     0x5584bce46358  std::_Bind<>::operator()<>()
    @     0x5584bce46208  std::__invoke_impl<>()
    @     0x5584bce46178  _ZSt10__invoke_rIN5doris6StatusERSt5_BindIFMNS0_8ExecNodeEFS1_PNS0_12RuntimeStateEPNS0_10vectorized5BlockEPbEPS3_St12_PlaceholderILi1EESD_ILi2EESD_ILi3EEEEJS5_S8_S9_EENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESL_E4typeEOSM_DpOSN_
    @     0x5584bce45c18  std::_Function_handler<>::_M_invoke()
    @     0x5584bce6412f  std::function<>::operator()()
    @     0x5584bce56382  doris::ExecNode::get_next_after_projects()
    @     0x5584bce26218  doris::PlanFragmentExecutor::get_vectorized_internal()
    @     0x5584bce2431b  doris::PlanFragmentExecutor::open_vectorized_internal()
    @     0x5584bce22a96  doris::PlanFragmentExecutor::open()
    @     0x5584bce27c9d  doris::PlanFragmentExecutor::execute()
    @     0x5584bcbdb3f8  doris::FragmentMgr::_exec_actual()
    @     0x5584bcbf982f  doris::FragmentMgr::exec_plan_fragment()::$_0::operator()()
    @     0x5584bcbf9715  std::__invoke_impl<>()
    @     0x5584bcbf96b5  _ZSt10__invoke_rIvRZN5doris11FragmentMgr18exec_plan_fragmentERKNS0_23TExecPlanFragmentParamsERKSt8functionIFvPNS0_12RuntimeStateEPNS0_6StatusEEEE3$_0JEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESH_E4typeEOSI_DpOSJ_
    @     0x5584bcbf942d  std::_Function_handler<>::_M_invoke()
    @     0x5584b9dfd883  std::function<>::operator()()
    @     0x5584bd6e3929  doris::FunctionRunnable::run()
    @     0x5584bd6cf8ce  doris::ThreadPool::dispatch_thread()
```

* [test](Nereids): add assert debug log for TopnToMaxTest (apache#28755)

* [improve](move-memtable) limit task num in load stream flush token (apache#28748)

* [feature](Nereids) elimite inner join by foreign key (apache#28486)

* [enhancement](backup/restore) support alter s3 repo info about ak/sk/token (apache#27027)

in some cases:

s3.session_token/AWS_TOKEN will be expired after hours, and may be upload snapshot job will failed if data is big large;
as same reason, repo will be expired too when RepositoryMgr exec repo ping
so it need support alter s3 repo properties about ak/sk/token and update upload snapshot job properties to continue backup.

Signed-off-by: nextdreamblue <zxw520blue1@163.com>

* [improve](transaction) extend abort transaction time (apache#28662)

* [regression](p2) fix test cases result (apache#28768)

regression-test/data/external_table_p2/hive/test_hive_hudi.out
regression-test/data/external_table_p2/hive/test_hive_to_array.out
regression-test/suites/external_table_p2/tvf/test_local_tvf_compression.groovy
regression-test/suites/external_table_p2/tvf/test_path_partition_keys.groovy
regression-test/data/external_table_p2/hive/test_hive_text_complex_type.out

* (fix)[meta][export] fix replay export NPE issue (apache#28752)

The ConnectionContext does not exist in replay thread

* [Bug fix][metrics] correct fe collector type for jvm_gc (apache#28784)

Co-authored-by: 胥剑旭 <xujianxu@xujianxudeMacBook-Pro.local>

* [Chore](decimal) set check_overflow_for_decimal to true when alter table(apache#28777)

set check_overflow_for_decimal to true when alter table

* [pipelineX](fix) Fix TPCH Q2 (apache#28783)

* (topN)runtime_predicate is only triggered when the column name is obtained (apache#28419)

Issue Number: close apache#27485

* [fix](planner)fix bug of bound conjunct to wrong tuple (apache#28811)

this fix bug introduced by apache#28656

* [bug](pipelineX) Fix pipelineX bug on multiple BE (apache#28792)

* [opt](inverted index) ignore_above only affects untokenized strings (apache#28819)

* [improve](load) reduce lock scope in MemTableWriter active consumption (apache#28790)

* [opt](Nereids) improve Shape check cases (apache#28124)

* tmplate update
* log tpcds stats when check shape

* [fix](group commit)Fix the issue of duplicate addition of wal path when encouter exception (apache#28691)

* [fix](compaction) compaction should catch exception when vertical block reader read next block (apache#28625)

* [fix](Nereids) join order is not right after sql parsing (apache#28721)

for sql
```
t1, t2 join t3
```

we should generate plan like:
```
t1 join (t2 join t3)
```

but we generate:
```
(t1 join t2) join t3
```
to follow legancy planner.

* [fix](metrics) fix bvar memtable_input_block_allocated_size (apache#28725)

* [enhancement](audit-log) add status code and error msg to audit log for proxy stmt (apache#27607)

* [improvement](external catalog)Change log level to debug for getRowCountFromExternalSource. (apache#28801)

* [fix](partial update) only report error when in strict mode partial update when finding missing rowsets during flushing memtable (apache#28764)

related pr: apache#28062, apache#28674, apache#28677
fix apache#28677

* [fix](function) Fix from_second functions overflow and wrong result (apache#28685)

* [Enhancement](load) Limit the number of incorrect data drops and add documents (apache#27727)

In the load process, if there are problems with the original data, we will store the error data in an error_log file on the disk for subsequent debugging. However, if there are many error data, it will occupy a lot of disk space. Now we want to limit the number of error data that is saved to the disk.

Be familiar with the usage of doris' import function and internal implementation process
Add a new be configuration item load_error_log_limit_bytes = default value 200MB
Use the newly added threshold to limit the amount of data that RuntimeState::append_error_msg_to_file writes to disk
Write regression cases for testing and verification

Co-authored-by: xy720 <22125576+xy720@users.noreply.github.com>

* [test](partial update) add complex type regression cases for partial update (apache#28758)

NOTE: There's some issue for MAP type to work with row store, so in this PR we don't have cases for MAP type
Will add the support for MAP type in future.

* [fix](test)fix test_create_table test case for nereids (apache#28693)

* [improve](config) set mutable and masterOnly in FE config stream_load_default_memtable_on_sink_node (apache#28835)

* [fix](group-commit) check if wal need recovery is abnormal (apache#28769)

* [Fix](Variant) fix variant predicate rewrite OrToIn with wrong plan (apache#28695)

using the name without paths info will lead to wrong In plan, e.g.
```
where cast(v:a as text) = 'hello' or cast(v:b as text) = 'world'
```
will be rewrite to:
```
where cast(v as text) in ('hello', 'world')
``
This is wrong, because they are different slots

* [refactor](buffer) remove download buffer since it is no longer useful (apache#28832)

remove download buffer since it is no longer useful

* [Feature](Variant) Implement variant new sub column access method (apache#28484)

* [Feature](Variant) Implement variant new sub column access method

The query SELECT v["a"]["b"] from simple_var WHERE cast(v["a"]["b"] as int) = 1 encompasses three primary testing scenarios:

```
1. A basic test involving the variant data type.
2. A scenario dealing with GitHub event data in the context of a variant.
3. A case related to the TPC-H benchmark using a variant.
```

* [fix](memory) Add thread asynchronous purge jemalloc dirty pages (apache#28655)

jemallctl purge all arena dirty pages may take several seconds, which will block memory GC and cause OOM.
So purge asynchronously in a thread.

* [fix](regression) fix regression error of test_compress_type (apache#28826)

* [improvement](executor) Add tvf and regression test for Workload Scheduler (apache#28733)

1 Add select workload schedule policy tvf
2 Add reg test

* [chore](error msg) print type info when colocate with ddl failed due to type mismatch (apache#28773)

* [opt](query cancel) optimization for query cancel apache#28778

* [Fix](multi-catalog) skip hms events if hms table is not supported. (apache#28644)

Co-authored-by: wangxiangyu <wangxiangyu@360shuke.com>

* [Enhancement](job) No need to query some backends which are not alive. (apache#28608)

No need to execute some jobs if backend is not alive

* [fix](paimon)fix type convert for paimon (apache#28774)

fix type convert for paimon

* [fix](stream load)add test case and doc for arrow type of stream load (apache#28098)

add test case and doc for arrow type of stream load

* [feature](mtmv)mtmv partition refresh case (apache#28787)

* (enhance)(InternalQuery) Support to collect profile for intenal query (apache#28762)

* [optimize](count) optimize pk exact query without reading data (apache#28494)

* [opt](sessionVar)show changed sessoin var first apache#28840

“show variables” command list changed vars before not changed vars,

* check  stats and log memo for ds46 (apache#28396)

* [bug](sharedscan) Fix shared scan bug (apache#28841)

* [fix](hash join) fix stack overflow caused by evaluate case expr on huge build block (apache#28851)

* [refactor](executor)remove scan group apache#28847

* [pipelineX](refactor) rename functions (apache#28846)

* [Feature](inverted index) add lowercase option for inverted index analyzer (apache#28704)

* [feature](Nereids) Pull up join from union all (apache#28682)

* [fix](ci) tpch pipeline should not re-load data (apache#28874)

* [fix](ci) tpch pipeline should not re-load data

* 2

---------

Co-authored-by: stephen <hello-stephen@qq.com>

* [exec](compress) use FragmentTransmissionCompressionCodec control the exchange compress behavior (apache#28818)

* [improve](move-memtable) tweak load stream flush token num and max tasks (apache#28884)

* [improve](load) remove extra layer of heavy work pool in tablet_writer_add_block (apache#28550)

* [improve](load) limit delta writer flush task parallelism (apache#28883)

* [fix](multi-catalog)filter impala generated path (apache#28786)

file impala generated dir _imapala_insert_staging

* [enhancement](udf) add prepare function for java-udf (apache#28750)

* [refactor](test)Refactor workload group/schedule policy test apache#28888

[refactor](test)Refactor workload group/schedule policy test
apache#28888

* [improve](move-memtable) avoid using heavy work pool during append data (apache#28745)

* [enhancement](broker-load) fix-move-memtable-session-var-for-s3 (apache#28894)

* [exec](load) change default parallel num from 1 to 8 in no pipeline exec engine (apache#28864)

* [fix](segcompaction) disable segcompaction by default (apache#28906)

Signed-off-by: freemandealer <freeman.zhang1992@gmail.com>

* [fix](pipelineX) fix cannot runtime obtain profile on pipelineX apache#28795

* [fix](mtmv) fix failed to specify the number of buckets when bucket auto (apache#28854)

Issue Number: close #xxx

- fix failed to specify the number of buckets when bucket auto
- delete unused SessionVariable
- if mtmv used external table ,check `isMaterializedViewRewriteEnableContainForeignTable`

* [bugfix](scannercore) scanner will core in deconstructor during collect profile (apache#28727)

* [FIX](map)fix map with rowstore table (apache#28877)

* [feature](mtmv)MTMV pause and resume (apache#28887)

- PAUSE MATERIALIZED VIEW JOB ON mv1
- RESUME MATERIALIZED VIEW JOB ON mv1
- fix when drop db,not drop job
- add lock for one materialized view can only run one task at a time

* [feature](mtmv)add more test case1 (apache#28910)

* [fix](block) add block columns size dcheck (apache#28539)

* [fix](chore) update dcheck to avoid core during stress test (apache#28895)

* [fix](doc) Add the usage example of bos to the documentation of s3 tvf (apache#28899)

* [fix](mtmv)fix can not create mtmv all use default value (apache#28922)

* [fix](parquet) the end offset of column chunk may be wrong in parquet metadata (apache#28891)

* [fix](paimon)fix `like` predicate (apache#28803)

fix like predict

* [fix](merge-on-write) migration may cause duplicate keys for mow table (apache#28923)

* [fix](mtmv) Related partition exclude null generate column when increment build materialized view (apache#28855)

Infer partition column by materialized view partition column, exclude null generate column in join when increment build materialized view

* [nereids] fix join fd computing bug (apache#28849)

* [Fix](statistics) Fix partition name NPE and sample for all table during auto analyze (apache#28916)

Fix partition name NPE and sample for all table during auto analyze.
Sample for all tables because getData may have latency, which may cause full analyze a huge table and use too much resource. Sample for all tables to avoid this. Will improve the strategy later.

* [fix](nereids) Fix query mv rewrite fail when mv cache build quickly (apache#28876)

* [optimize](zonemap) skip zonemap if predicate does not support_zonemap (apache#28595)

* [optimize](zonemap) skip zonemap if predicate does not support_zonemap apache#27608 (apache#28506)

* Revert "[bugfix](scannercore) scanner will core in deconstructor during collect profile (apache#28727)" (apache#28931)

This reverts commit 4066de3.

* [fix] (nereids) Catch exception when mv fail and fix the npe (apache#28932)

* [fix](regression-test) test_partial_update_native_insert_stmt_complex is flaky (apache#28927)

* [improvement](group commit) make get column function more reliable when replaying wal (apache#28900)

* [opt](nereids) convert or to inpredicate and optimize inpredicate partition prune (apache#28316)

* [enhancement](bulk-load) cancel loading tasks directly without retrying when timeout exceeded (apache#28666)

* [chore](test) Add testing util sync point (apache#28924)

* [chore](prompt) Optimize tablet and replica prompt by pointing out what the numbers mean (apache#28925)

* [fix](join) incorrect result of left semi/anti join with empty build side (apache#28898)

* [docs] (DebugPoints) Update docs about Debug Points (apache#28347)


---------

Co-authored-by: qinhao <qinhao@newland.com.cn>

* [feature](api) add profile text api (apache#28697)

* [opt](invert index) Empty strings are not written to the index in the case of TOKENIZED (apache#28822)

* [feature](pipelineX) control exchange sink by memory usage (apache#28814)

* [fix](pipelineX) fix use global rf when there no shared_scans (apache#28869)

* [refactor](pipelineX)do not override dependency() function in pipelineX (apache#28848)

* [fix](log) regularise some BE error type and fix a load task check apache#28729

* [chore](test) correct create table statement (apache#28863)

* [fix](nereids)subquery unnest need handle subquery in Not expr correnctly (apache#28713)

* [feature](nereids)support decimalv2 (apache#28726)

* [fix](nereids)group by expr may be bound twice in bind agg slot (apache#28771)

* [doc](insert) Add group commit docs (apache#25949)

* [performance](variant) support topn 2phase read for variant column (apache#28318)

 [performance](variant) support topn 2phase read for variant column

* return residual expr of join (apache#28760)

* [fix](load) fix nullptr when getting memtable flush running count (apache#28942)

* [fix](load) fix nullptr when getting memtable flush running count

* style

* (enhance)(regression) Support `force_olap_table_replication_num=3` run test_insert_random_distribution_table case (apache#28903)

* [Test](Job)Add test case (apache#28481)

* [fix](doc) typo fix in auto-partition page (apache#28512)

* [feature](load) enable memtable on sink node by default (apache#28963)

* [Chore](Job)print log before task execute (apache#28962)

* [fix](hdfs) Fix HdfsFileSystem::exists_impl crash (apache#28952)

Calling hdfsGetLastExceptionRootCause without initializing ThreadLocalState
will crash. This PR modifies the condition for determining the existence of
a hdfs file, because hdfsExists will set errno to ENOENT when the file does
not exist, we can use this condition to check whether a file existence rather
than check the existence of the root cause.

* [fix](block) fix be core while mutable block merge may cause different row size between columns in origin block (apache#27943)

* [fix](doc) typo fix in dynamic-partition page (apache#28511)

* [fix](hash join) fix column ref DCHECK failure of hash join node block mem reuse (apache#28991)

Introduced by apache#28851, after evaluating build side expr, some columns in resulting block may be referenced more than once in the same block.

e.g. coalesce(col_a, 'string') if col_a is nullable but actually contains no null values, in this case funcition coalesce will insert a new nullable column which references the original col_a.

* [opt](assert_num_rows) support filter in AssertNumRows operator and fix some explain (apache#28935)

* NEED

* Update pipeline x

* fix pipelinex compile

* [fix](parquet_reader) misused bool pointer (apache#28986)

Signed-off-by: pengyu <pengyu@selectdb.com>

* [doc](multi-catalog)add krb and some ertificates FAQs (apache#28858)

add some security docs

* [fix](planner)should save original select list item before analyze (apache#28187)

* [fix](planner)should save original select list item before analyze

* fix test case

* fix failed case

* [bug](storage) Fix gc rowset bug (apache#28979)

* [fix](mtmv)add log for resolve pending task (apache#28999)

* add lock for resolve pending task

* add lock for resolve pending task

* [improvement](nereids) Get partition related table disable nullable field and complete agg matched pattern mv rules. (apache#28973)

* [improvement] (nereids) Get partition related table disable nullable field and modify regression test, complete agg mv rules.

* make filed not null to create partition mv

* [chore](config) modify `tablet_schema_cache_recycle_interval` from 24h to 1h (apache#28980)

To prevent from too many tablet schema cache in memory and lead to performance issue when hold lock
to erase item

* [opt](scanner) optimize the number of threads of scanners (apache#28640)

1. Remove `doris_max_remote_scanner_thread_pool_thread_num`, use `doris_scanner_thread_pool_thread_num` only.
2. Set the default value `doris_scanner_thread_pool_thread_num` as `std::max(48, CpuInfo::num_cores() * 4)`

* [chore](config) modify `variant_ratio_of_defaults_as_sparse_column` from 0.95 to 1 (apache#28984)

since sparse column is not stable at present

* [feature](nereids)support partition property in nereids (apache#28982)

* [feature](Nereids) support table valued function http_stream (apache#29004)

* [feature](Load)(step2)support nereids load job schedule (apache#26356)

We will  Integrate new load job manager into  new job scheduling framework so that the insert into task can be scheduled after the broker load sql  is converted to insert into TVF(table value function) sql.

issue: apache#24221

Now support:
1. load data by tvf insert into sql, but just for simple load(columns need to be defined in the table)
2. show load stmt
- job id, label name, job state, time info
- simple progress
3. cancel load from db
4. support that enable new load through Config.enable_nereids_load
5. can replay job after restarting doris

TODO:
- support partition insert job
- support show statistics from BE
- support multiple task and collect task statistic
- support transactional task
- need add ut case

* [enhance](tablet) Reduce log in tablet meta (apache#28719)

* [fix](case) Add sync to test case (apache#29034)

* [opt](compound) Optimize by deleting the compound expr after obtaining the final result (apache#28934)

* [hotfix](jdbc catalog) fix load table and column names npe (apache#28865)

This fix is for the npe situation that occurs when FE of non-Master nodes initializes Jdbc Catalog metadata.

* [opt](Nereids) support cast bewteen numeric and  boolean in FE (apache#29006)

* [improvement](jdbc catalog) Optimize connection pool caching logic (apache#28859)

In the old caching logic, we only used jdbcurl, user, and password as cache keys. This may cause the old link to be still used when replacing the jar package, so we should concatenate all the parameters required for the connection pool as the key.

* [fix](Nereids) runtime filter push down failed (apache#28997)

project child not always NamedExpression

failed msg
```
org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = class org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral cannot be cast to class org.apache.doris.nereids.trees.expressions.NamedExpression (org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral and org.apache.doris.nereids.trees.expressions.NamedExpression are in unnamed module of loader 'app')
    at org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:623) ~[classes/:?]
    at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:478) ~[classes/:?]
    at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:457) ~[classes/:?]
    at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:245) ~[classes/:?]
    at org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:166) ~[classes/:?]
    at org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:193) ~[classes/:?]
    at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:246) ~[classes/:?]
    at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[classes/:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
    at java.lang.Thread.run(Thread.java:829) ~[?:?]
Caused by: java.lang.ClassCastException: class org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral cannot be cast to class org.apache.doris.nereids.trees.expressions.NamedExpression (org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral and org.apache.doris.nereids.trees.expressions.NamedExpression are in unnamed module of loader 'app')
    at org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.pushDownRuntimeFilter(PhysicalSetOperation.java:178) ~[classes/:?]
    at org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.pushDownRuntimeFilter(PhysicalHashJoin.java:229) ~[classes/:?]
    at org.apache.doris.nereids.processor.post.RuntimeFilterGenerator.pushDownRuntimeFilterCommon(RuntimeFilterGenerator.java:386) ~[classes/:?]
```

* [fix](Nereids) generating function should not folding to NullLiteral (apache#29003)

should not fold table generating function to null when do constant folding.
we should remove Generate node and replaced it by project later.

* [improve](load) add profile for WaitFlushLimitTime (apache#29013)

* [opt](Nereids) let inverted index work with top opt (apache#29000)

* [feature](Nereids) support values inline table in query (apache#28972)

* [enhencement](config) change default memtable size & loadStreamPerNode & default load parallelism (apache#28977)

We change memtable size from 200MB to 100MB to achieve smoother flush
performance. We change loadStreamPerNode from 20 to 60 to avoid stream
rpc to be the bottleneck when enable memtable_on_sink_node. We change
default s3&broker load parallelsim to make the most of CPUs on moderm
multi-core systems.

Signed-off-by: freemandealer <freeman.zhang1992@gmail.com>

* [improve](move-memtable) increase load_stream_flush_token_max_tasks (apache#29011)

* [feature](scan) Implement parallel scanning by dividing the tablets based on the row range (apache#28967)

* [feature](scan) parallel scann on dup/mow mode

* fix bugs

* [refactor](create tablet) default create tablet round robin  (apache#28911)

* [Bug] optimize the collection import Lists dependency packge apache#28523 (apache#28579)

* [fix](regression) Fix flaky test test_partial_update_2pc_schema_change (apache#29037)

* [Bug](security) BE download_files function exists log print sensitive msg apache#28592 (apache#28594)

* Revert "[feature](load) enable memtable on sink node by default (apache#28963)" (apache#29090)

This reverts commit 17917a0.

* [improvement](statistics)Remove retry load when load stats cache fail (apache#28904)

Remove retry load when load stats cache fail. This case usually happens when BE is down or BE OOM, retry doesn't work in these cases and may increase BE work load.

* [fix](pipeline) sort_merge should throw exception in has_next_block if got failed status (apache#29076)

Test in regression-test/suites/datatype_p0/decimalv3/test_decimalv3_overflow.groovy::249 sometimes failed when there are multiple BEs and FE process report status slowly for some reason.

explain select k1, k2, k1 * k2 from test_decimal128_overflow2 order by 1,2,3
--------------

+----------------------------------------------------------------------------------------------------------------------------+
| Explain String(Nereids Planner)                                                                                            |
+----------------------------------------------------------------------------------------------------------------------------+
| PLAN FRAGMENT 0                                                                                                            |
|   OUTPUT EXPRS:                                                                                                            |
|     k1[#5]                                                                                                                 |
|     k2[#6]                                                                                                                 |
|     (k1 * k2)[#7]                                                                                                          |
|   PARTITION: UNPARTITIONED                                                                                                 |
|                                                                                                                            |
|   HAS_COLO_PLAN_NODE: false                                                                                                |
|                                                                                                                            |
|   VRESULT SINK                                                                                                             |
|      MYSQL_PROTOCAL                                                                                                        |
|                                                                                                                            |
|   111:VMERGING-EXCHANGE                                                                                                    |
|      offset: 0                                                                                                             |
|                                                                                                                            |
| PLAN FRAGMENT 1                                                                                                            |
|                                                                                                                            |
|   PARTITION: HASH_PARTITIONED: k1[#0], k2[#1]                                                                              |
|                                                                                                                            |
|   HAS_COLO_PLAN_NODE: false                                                                                                |
|                                                                                                                            |
|   STREAM DATA SINK                                                                                                         |
|     EXCHANGE ID: 111                                                                                                       |
|     UNPARTITIONED                                                                                                          |
|                                                                                                                            |
|   108:VSORT                                                                                                                |
|   |  order by: k1[#5] ASC, k2[#6] ASC, (k1 * k2)[#7] ASC                                                                   |
|   |  offset: 0                                                                                                             |
|   |                                                                                                                        |
|   102:VOlapScanNode                                                                                                        |
|      TABLE: regression_test_datatype_p0_decimalv3.test_decimal128_overflow2(test_decimal128_overflow2), PREAGGREGATION: ON |
|      partitions=1/1 (test_decimal128_overflow2), tablets=8/8, tabletList=22841,22843,22845 ...                             |
|      cardinality=6, avgRowSize=0.0, numNodes=1                                                                             |
|      pushAggOp=NONE                                                                                                        |
|      projections: k1[#0], k2[#1], (k1[#0] * k2[#1])                                                                        |
|      project output tuple id: 1                                                                                            |
+----------------------------------------------------------------------------------------------------------------------------+
36 rows in set (0.03 sec)
Why failed:

Multiple BEs
Fragments 0 and 1 are MUST on different BEs
Pipeline task of VOlapScanNode which executes k1*k2 failed sets query status to cancelled
Pipeline task of VSort call try close, send Cancelled status to VMergeExchange
sort_curso did not throw exception when it meets error

* [feature](Nereids): support infer join when comapring mv (apache#28988)

* [fix](nereids) "not is null" stats estimation fix (apache#28860)

* fix not is null stats

* [opt](nereids)expr normalize after filter pushdown (apache#28743)

normalize expression after filter push down

* [Enhancement](Wal)Support dynamic wal space limit (apache#27726)

* [fix](doc) spell errors fixes query profile docs (apache#28437)

* [opt](Nerieds) add infer props to expression (apache#28953)

* [fix](read) remove logic of estimating count of rows to read in segment iterator to avoid wrong result of unique key. (apache#29109)

* [fix](paimon) read batch by doris' batch size (apache#29039)

* [fix](mtmv)add log for resolve pending task (apache#29078)

* [Refact](inverted index) refactor inverted index writer init (apache#29072)

* [fix](paimon)Remove the static attribute of the source for paimon (apache#29032)

* [fix](planner) Fix delete statement on MOR unique table (apache#28968)

add conditions for mor table removed in apache#26776

* [fix][compile]unused variable (apache#28992)

* [Fix](WorkFlow)Auto replay not work

* [Fix](WorkFlow)Auto replay not work

* [Fix](WorkFlow)Auto replay not work

---------

Signed-off-by: nextdreamblue <zxw520blue1@163.com>
Signed-off-by: freemandealer <freeman.zhang1992@gmail.com>
Signed-off-by: pengyu <pengyu@selectdb.com>
Co-authored-by: lihangyu <15605149486@163.com>
Co-authored-by: Kang <kxiao.tiger@gmail.com>
Co-authored-by: jakevin <jakevingoo@gmail.com>
Co-authored-by: morrySnow <101034200+morrySnow@users.noreply.github.com>
Co-authored-by: xueweizhang <zxw520blue1@163.com>
Co-authored-by: zhangguoqiang <18372634969@163.com>
Co-authored-by: zhangdong <493738387@qq.com>
Co-authored-by: airborne12 <airborne08@gmail.com>
Co-authored-by: Ma1oneZhang <73012001+Ma1oneZhang@users.noreply.github.com>
Co-authored-by: ziyang zhang <zhangziyang@stu.cdut.edu.cn>
Co-authored-by: Siyang Tang <82279870+TangSiyang2001@users.noreply.github.com>
Co-authored-by: Kaijie Chen <ckj@apache.org>
Co-authored-by: Yongqiang YANG <98214048+dataroaring@users.noreply.github.com>
Co-authored-by: yiguolei <676222867@qq.com>
Co-authored-by: minghong <englefly@gmail.com>
Co-authored-by: Jibing-Li <64681310+Jibing-Li@users.noreply.github.com>
Co-authored-by: Gavin Chou <gavineaglechou@gmail.com>
Co-authored-by: plat1ko <platonekosama@gmail.com>
Co-authored-by: wudongliang <46414265+DongLiang-0@users.noreply.github.com>
Co-authored-by: Nitin-Kashyap <66766227+Nitin-Kashyap@users.noreply.github.com>
Co-authored-by: yiguolei <yiguolei@gmail.com>
Co-authored-by: wangbo <wangbo@apache.org>
Co-authored-by: nanfeng <42513321+nanfeng1999@users.noreply.github.com>
Co-authored-by: Xinyi Zou <zouxinyi02@gmail.com>
Co-authored-by: qiye <jianliang5669@gmail.com>
Co-authored-by: DuRipeng <453243496@qq.com>
Co-authored-by: wuwenchi <wuwenchihdu@hotmail.com>
Co-authored-by: Qi Chen <kaka11.chen@gmail.com>
Co-authored-by: Mingyu Chen <morningman@163.com>
Co-authored-by: Xin Liao <liaoxinbit@126.com>
Co-authored-by: yujun <yu.jun.reach@gmail.com>
Co-authored-by: walter <w41ter.l@gmail.com>
Co-authored-by: xy <whuxingying@163.com>
Co-authored-by: xingying01 <xingying01@corp.netease.com>
Co-authored-by: seawinde <149132972+seawinde@users.noreply.github.com>
Co-authored-by: Mryange <59914473+Mryange@users.noreply.github.com>
Co-authored-by: starocean999 <40539150+starocean999@users.noreply.github.com>
Co-authored-by: bobhan1 <bh2444151092@outlook.com>
Co-authored-by: zzzxl <33418555+zzzxl1993@users.noreply.github.com>
Co-authored-by: yangshijie <sjyang2022@zju.edu.cn>
Co-authored-by: zclllyybb <zhaochangle@selectdb.com>
Co-authored-by: amory <wangqiannan@selectdb.com>
Co-authored-by: zhiqiang <seuhezhiqiang@163.com>
Co-authored-by: xy720 <22125576+xy720@users.noreply.github.com>
Co-authored-by: Gabriel <gabrielleebuaa@gmail.com>
Co-authored-by: htyoung <hty551020@hotmail.com>
Co-authored-by: Pxl <pxl290@qq.com>
Co-authored-by: Luwei <814383175@qq.com>
Co-authored-by: meiyi <myimeiyi@gmail.com>
Co-authored-by: Ashin Gau <AshinGau@users.noreply.github.com>
Co-authored-by: HHoflittlefish777 <77738092+HHoflittlefish777@users.noreply.github.com>
Co-authored-by: 谢健 <jianxie0@gmail.com>
Co-authored-by: XuJianxu <xjxlzlpzl@163.com>
Co-authored-by: 胥剑旭 <xujianxu@xujianxudeMacBook-Pro.local>
Co-authored-by: Yoko <53637394+TomaYoko@users.noreply.github.com>
Co-authored-by: huanghaibin <284824253@qq.com>
Co-authored-by: lw112 <131352377+felixwluo@users.noreply.github.com>
Co-authored-by: zhannngchen <48427519+zhannngchen@users.noreply.github.com>
Co-authored-by: Xiangyu Wang <dut.xiangyu@gmail.com>
Co-authored-by: wangxiangyu <wangxiangyu@360shuke.com>
Co-authored-by: AlexYue <yj976240184@gmail.com>
Co-authored-by: TengJianPing <18241664+jacktengg@users.noreply.github.com>
Co-authored-by: xzj7019 <131111794+xzj7019@users.noreply.github.com>
Co-authored-by: Dongyang Li <hello_stephen@qq.com>
Co-authored-by: stephen <hello-stephen@qq.com>
Co-authored-by: HappenLee <happenlee@hotmail.com>
Co-authored-by: slothever <18522955+wsjz@users.noreply.github.com>
Co-authored-by: zhangstar333 <87313068+zhangstar333@users.noreply.github.com>
Co-authored-by: zhengyu <freeman.zhang1992@gmail.com>
Co-authored-by: Jerry Hu <mrhhsg@gmail.com>
Co-authored-by: HowardQin <hao.qin@esgyn.cn>
Co-authored-by: qinhao <qinhao@newland.com.cn>
Co-authored-by: deardeng <565620795@qq.com>
Co-authored-by: caiconghui <55968745+caiconghui@users.noreply.github.com>
Co-authored-by: py023 <137761033+py023@users.noreply.github.com>
Co-authored-by: zy-kkk <zhongyk10@gmail.com>
Co-authored-by: Guangming Lu <71873108+LuGuangming@users.noreply.github.com>
Co-authored-by: abmdocrt <Yukang.Lian2022@gmail.com>
hello-stephen pushed a commit to hello-stephen/doris that referenced this pull request Dec 28, 2023
We will  Integrate new load job manager into  new job scheduling framework so that the insert into task can be scheduled after the broker load sql  is converted to insert into TVF(table value function) sql.

issue: apache#24221

Now support:
1. load data by tvf insert into sql, but just for simple load(columns need to be defined in the table)
2. show load stmt
- job id, label name, job state, time info
- simple progress
3. cancel load from db
4. support that enable new load through Config.enable_nereids_load
5. can replay job after restarting doris

TODO:
- support partition insert job
- support show statistics from BE
- support multiple task and collect task statistic
- support transactional task
- need add ut case
HappenLee pushed a commit to HappenLee/incubator-doris that referenced this pull request Jan 12, 2024
We will  Integrate new load job manager into  new job scheduling framework so that the insert into task can be scheduled after the broker load sql  is converted to insert into TVF(table value function) sql.

issue: apache#24221

Now support:
1. load data by tvf insert into sql, but just for simple load(columns need to be defined in the table)
2. show load stmt
- job id, label name, job state, time info
- simple progress
3. cancel load from db
4. support that enable new load through Config.enable_nereids_load
5. can replay job after restarting doris

TODO:
- support partition insert job
- support show statistics from BE
- support multiple task and collect task statistic
- support transactional task
- need add ut case
@wsjz wsjz deleted the load_step2 branch March 22, 2024 07:42
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. meta-change reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants