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

[pipelineX](refactor) remove source state from operator functions #31435

Merged
merged 3 commits into from
Feb 27, 2024

Conversation

Gabriel39
Copy link
Contributor

Proposed changes

Issue Number: close #xxx

Further comments

If this is a relatively large or complex change, kick off the discussion at [email protected] by explaining why you chose the solution you did and what alternatives you considered, etc...

@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

@Gabriel39
Copy link
Contributor Author

run buildall

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

@@ -74,19 +74,16 @@ Status DataGenSourceOperatorX::prepare(RuntimeState* state) {
return Status::OK();
}

Status DataGenSourceOperatorX::get_block(RuntimeState* state, vectorized::Block* block,
SourceState& source_state) {
Status DataGenSourceOperatorX::get_block(RuntimeState* state, vectorized::Block* block, bool* eos) {
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: method 'get_block' can be made static [readability-convert-member-functions-to-static]

be/src/pipeline/exec/datagen_operator.h:75:

-     Status get_block(RuntimeState* state, vectorized::Block* block, bool* eos) override;
+     static Status get_block(RuntimeState* state, vectorized::Block* block, bool* eos) override;

@@ -300,8 +300,7 @@ void ExchangeSinkOperatorX::_handle_eof_channel(RuntimeState* state, ChannelPtrT
static_cast<void>(channel->close(state, Status::OK()));
}

Status ExchangeSinkOperatorX::sink(RuntimeState* state, vectorized::Block* block,
SourceState source_state) {
Status ExchangeSinkOperatorX::sink(RuntimeState* state, vectorized::Block* block, bool eos) {
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: method 'sink' can be made static [readability-convert-member-functions-to-static]

be/src/pipeline/exec/exchange_sink_operator.h:196:

-     Status sink(RuntimeState* state, vectorized::Block* in_block, bool eos) override;
+     static Status sink(RuntimeState* state, vectorized::Block* in_block, bool eos) override;

@@ -300,8 +300,7 @@
static_cast<void>(channel->close(state, Status::OK()));
}

Status ExchangeSinkOperatorX::sink(RuntimeState* state, vectorized::Block* block,
SourceState source_state) {
Status ExchangeSinkOperatorX::sink(RuntimeState* state, vectorized::Block* block, bool eos) {
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: function 'sink' has cognitive complexity of 123 (threshold 50) [readability-function-cognitive-complexity]

Status ExchangeSinkOperatorX::sink(RuntimeState* state, vectorized::Block* block, bool eos) {
                              ^
Additional context

be/src/pipeline/exec/exchange_sink_operator.cpp:315: +1, including nesting penalty of 0, nesting level increased to 1

    if (all_receiver_eof) {
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:319: +1, including nesting penalty of 0, nesting level increased to 1

    if (_part_type == TPartitionType::UNPARTITIONED || local_state.channels.size() == 1) {
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:323: +2, including nesting penalty of 1, nesting level increased to 2

        if (local_state.only_local_exchange) {
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:324: +3, including nesting penalty of 2, nesting level increased to 3

            if (!block->empty()) {
            ^

be/src/pipeline/exec/exchange_sink_operator.cpp:333: +1, nesting level increased to 2

        } else {
          ^

be/src/pipeline/exec/exchange_sink_operator.cpp:335: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(local_state.get_next_available_buffer(&block_holder));
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:335: +4, including nesting penalty of 3, nesting level increased to 4

            RETURN_IF_ERROR(local_state.get_next_available_buffer(&block_holder));
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:339: +3, including nesting penalty of 2, nesting level increased to 3

                RETURN_IF_ERROR(local_state._serializer.next_serialized_block(
                ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:339: +4, including nesting penalty of 3, nesting level increased to 4

                RETURN_IF_ERROR(local_state._serializer.next_serialized_block(
                ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:342: +3, including nesting penalty of 2, nesting level increased to 3

                if (serialized) {
                ^

be/src/pipeline/exec/exchange_sink_operator.cpp:344: +4, including nesting penalty of 3, nesting level increased to 4

                    if (!cur_block.empty()) {
                    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:348: +1, nesting level increased to 4

                    } else {
                      ^

be/src/pipeline/exec/exchange_sink_operator.cpp:369: +1, nesting level increased to 1

    } else if (_part_type == TPartitionType::RANDOM) {
           ^

be/src/pipeline/exec/exchange_sink_operator.cpp:373: +2, including nesting penalty of 1, nesting level increased to 2

        if (!current_channel->is_receiver_eof()) {
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:375: +3, including nesting penalty of 2, nesting level increased to 3

            if (current_channel->is_local()) {
            ^

be/src/pipeline/exec/exchange_sink_operator.cpp:377: +4, including nesting penalty of 3, nesting level increased to 4

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:391: expanded from macro 'HANDLE_CHANNEL_STATUS'

    do {                                                 \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:377: +5, including nesting penalty of 4, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:392: expanded from macro 'HANDLE_CHANNEL_STATUS'

        if (status.is<ErrorCode::END_OF_FILE>()) {       \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:377: +1, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:394: expanded from macro 'HANDLE_CHANNEL_STATUS'

        } else {                                         \
          ^

be/src/pipeline/exec/exchange_sink_operator.cpp:377: +6, including nesting penalty of 5, nesting level increased to 6

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:395: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:377: +7, including nesting penalty of 6, nesting level increased to 7

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:395: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:378: +1, nesting level increased to 3

            } else {
              ^

be/src/pipeline/exec/exchange_sink_operator.cpp:380: +4, including nesting penalty of 3, nesting level increased to 4

                RETURN_IF_ERROR(local_state._serializer.serialize_block(
                ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:380: +5, including nesting penalty of 4, nesting level increased to 5

                RETURN_IF_ERROR(local_state._serializer.serialize_block(
                ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:384: +4, including nesting penalty of 3, nesting level increased to 4

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:391: expanded from macro 'HANDLE_CHANNEL_STATUS'

    do {                                                 \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:384: +5, including nesting penalty of 4, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:392: expanded from macro 'HANDLE_CHANNEL_STATUS'

        if (status.is<ErrorCode::END_OF_FILE>()) {       \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:384: +1, nesting level increased to 5

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:394: expanded from macro 'HANDLE_CHANNEL_STATUS'

        } else {                                         \
          ^

be/src/pipeline/exec/exchange_sink_operator.cpp:384: +6, including nesting penalty of 5, nesting level increased to 6

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:395: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:384: +7, including nesting penalty of 6, nesting level increased to 7

                HANDLE_CHANNEL_STATUS(state, current_channel, status);
                ^

be/src/vec/sink/vdata_stream_sender.h:395: expanded from macro 'HANDLE_CHANNEL_STATUS'

            RETURN_IF_ERROR(status);                     \
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:390: +1, nesting level increased to 1

    } else if (_part_type == TPartitionType::HASH_PARTITIONED ||
           ^

be/src/pipeline/exec/exchange_sink_operator.cpp:395: +2, including nesting penalty of 1, nesting level increased to 2

            RETURN_IF_ERROR(
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:395: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:398: +2, including nesting penalty of 1, nesting level increased to 2

        if (_part_type == TPartitionType::HASH_PARTITIONED) {
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:399: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(channel_add_rows(
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:399: +4, including nesting penalty of 3, nesting level increased to 4

            RETURN_IF_ERROR(channel_add_rows(
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:402: +1, nesting level increased to 2

        } else {
          ^

be/src/pipeline/exec/exchange_sink_operator.cpp:403: +3, including nesting penalty of 2, nesting level increased to 3

            RETURN_IF_ERROR(channel_add_rows(
            ^

be/src/common/status.h:541: expanded from macro 'RETURN_IF_ERROR'

    do {                                \
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:403: +4, including nesting penalty of 3, nesting level increased to 4

            RETURN_IF_ERROR(channel_add_rows(
            ^

be/src/common/status.h:543: expanded from macro 'RETURN_IF_ERROR'

        if (UNLIKELY(!_status_.ok())) { \
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:407: +1, nesting level increased to 1

    } else {
      ^

be/src/pipeline/exec/exchange_sink_operator.cpp:414: +1, including nesting penalty of 0, nesting level increased to 1

    if (eos) {
    ^

be/src/pipeline/exec/exchange_sink_operator.cpp:416: +2, including nesting penalty of 1, nesting level increased to 2

        for (int i = 0; i < local_state.channels.size(); ++i) {
        ^

be/src/pipeline/exec/exchange_sink_operator.cpp:418: +3, including nesting penalty of 2, nesting level increased to 3

            if (!st.ok() && final_st.ok()) {
            ^

be/src/pipeline/exec/exchange_sink_operator.cpp:418: +1

            if (!st.ok() && final_st.ok()) {
                         ^

@@ -102,7 +101,7 @@ class SetSourceOperatorX final : public OperatorX<SetSourceLocalState<is_interse
template <typename HashTableContext>
Status _get_data_in_hashtable(SetSourceLocalState<is_intersect>& local_state,
HashTableContext& hash_table_ctx, vectorized::Block* output_block,
const int batch_size, SourceState& source_state);
const int batch_size, bool* eos);
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: parameter 'batch_size' is const-qualified in the function declaration; const-qualification of parameters only has an effect in function definitions [readability-avoid-const-params-in-decls]

Suggested change
const int batch_size, bool* eos);
int batch_size, bool* eos);

@@ -32,17 +32,12 @@ SortSourceOperatorX::SortSourceOperatorX(ObjectPool* pool, const TPlanNode& tnod
const DescriptorTbl& descs)
: OperatorX<SortLocalState>(pool, tnode, operator_id, descs) {}

Status SortSourceOperatorX::get_block(RuntimeState* state, vectorized::Block* block,
SourceState& source_state) {
Status SortSourceOperatorX::get_block(RuntimeState* state, vectorized::Block* block, bool* eos) {
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: method 'get_block' can be made static [readability-convert-member-functions-to-static]

be/src/pipeline/exec/sort_source_operator.h:62:

-     Status get_block(RuntimeState* state, vectorized::Block* block, bool* eos) override;
+     static Status get_block(RuntimeState* state, vectorized::Block* block, bool* eos) override;

@@ -1264,26 +1262,24 @@ Status StreamingAggLocalState::close(RuntimeState* state) {
return Base::close(state);
}

Status StreamingAggOperatorX::pull(RuntimeState* state, vectorized::Block* block,
SourceState& source_state) const {
Status StreamingAggOperatorX::pull(RuntimeState* state, vectorized::Block* block, bool* eos) const {
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: method 'pull' can be made static [readability-convert-member-functions-to-static]

Suggested change
Status StreamingAggOperatorX::pull(RuntimeState* state, vectorized::Block* block, bool* eos) const {
Status StreamingAggOperatorX::pull(RuntimeState* state, vectorized::Block* block, bool* eos) {

be/src/pipeline/exec/streaming_aggregation_operator.h:194:

-     Status pull(RuntimeState* state, vectorized::Block* block, bool* eos) const override;
+     static Status pull(RuntimeState* state, vectorized::Block* block, bool* eos) override;

}

DataDistribution required_data_distribution() const override {
return {ExchangeType::PASSTHROUGH};
}

Status push(RuntimeState* state, vectorized::Block* input_block,
SourceState source_state) const override {
Status push(RuntimeState* state, vectorized::Block* input_block, bool eos) const override {
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: method 'push' can be made static [readability-convert-member-functions-to-static]

Suggested change
Status push(RuntimeState* state, vectorized::Block* input_block, bool eos) const override {
static Status push(RuntimeState* state, vectorized::Block* input_block, bool eos) override {

@@ -114,11 +111,10 @@
return Status::OK();
}

Status pull(RuntimeState* state, vectorized::Block* output_block,
SourceState& source_state) const override {
Status pull(RuntimeState* state, vectorized::Block* output_block, bool* eos) const override {
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: method 'pull' can be made static [readability-convert-member-functions-to-static]

Suggested change
Status pull(RuntimeState* state, vectorized::Block* output_block, bool* eos) const override {
static Status pull(RuntimeState* state, vectorized::Block* output_block, bool* eos) override {

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.70% (8547/23938)
Line Coverage: 27.53% (69386/252036)
Region Coverage: 26.68% (35971/134838)
Branch Coverage: 23.48% (18387/78298)
Coverage Report: http://coverage.selectdb-in.cc/coverage/32b5aefcbe461018b05eda06fea370a336ea6796_32b5aefcbe461018b05eda06fea370a336ea6796/report/index.html

@Gabriel39
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.71% (8548/23939)
Line Coverage: 27.53% (69376/252039)
Region Coverage: 26.68% (35978/134856)
Branch Coverage: 23.48% (18384/78304)
Coverage Report: http://coverage.selectdb-in.cc/coverage/289aca765959d58389047d23d0df9e09e848c802_289aca765959d58389047d23d0df9e09e848c802/report/index.html

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	17675	4092	4075	4075
q2	2046	139	132	132
q3	10584	990	957	957
q4	4650	947	955	947
q5	7606	2980	3037	2980
q6	183	124	125	124
q7	1238	759	755	755
q8	9273	2013	2052	2013
q9	7195	6286	6318	6286
q10	8175	2484	2481	2481
q11	424	199	214	199
q12	785	318	321	318
q13	17958	3171	3210	3171
q14	276	255	257	255
q15	534	503	500	500
q16	472	416	406	406
q17	961	891	907	891
q18	6705	6090	6034	6034
q19	1571	1528	1537	1528
q20	539	278	272	272
q21	6945	3639	3589	3589
q22	800	304	294	294
Total cold run time: 106595 ms
Total hot run time: 38207 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4051	4051	4045	4045
q2	305	212	222	212
q3	3045	2947	2912	2912
q4	1833	1796	1814	1796
q5	5121	5134	5130	5130
q6	204	119	119	119
q7	2183	1726	1755	1726
q8	3155	3214	3228	3214
q9	8277	8237	8207	8207
q10	6110	3656	3648	3648
q11	522	433	431	431
q12	690	530	523	523
q13	6995	3083	3053	3053
q14	281	252	252	252
q15	541	496	487	487
q16	511	474	479	474
q17	1702	1690	1686	1686
q18	7805	7532	7413	7413
q19	1691	1656	1666	1656
q20	2103	1902	1905	1902
q21	4797	4659	4696	4659
q22	517	447	432	432
Total cold run time: 62439 ms
Total hot run time: 53977 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 168968 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 289aca765959d58389047d23d0df9e09e848c802, data reload: false

query1	935	344	329	329
query2	6546	1879	1846	1846
query3	6694	208	208	208
query4	23355	20581	20471	20471
query5	4296	358	347	347
query6	258	170	162	162
query7	4604	295	293	293
query8	262	204	194	194
query9	8510	2259	2263	2259
query10	423	204	218	204
query11	14621	14091	13971	13971
query12	136	81	83	81
query13	1646	430	423	423
query14	8341	6709	6383	6383
query15	209	176	178	176
query16	7090	268	246	246
query17	1038	507	497	497
query18	1907	265	264	264
query19	192	145	144	144
query20	86	80	82	80
query21	190	127	124	124
query22	4739	4631	4488	4488
query23	30433	29952	29887	29887
query24	11736	3080	3166	3080
query25	656	349	345	345
query26	1722	150	161	150
query27	3050	314	313	313
query28	7036	1825	1814	1814
query29	1117	553	549	549
query30	278	130	136	130
query31	860	679	688	679
query32	99	58	54	54
query33	707	218	223	218
query34	1036	481	486	481
query35	832	749	750	749
query36	919	833	876	833
query37	126	60	62	60
query38	3129	3006	2998	2998
query39	1326	1271	1250	1250
query40	281	105	99	99
query41	35	36	35	35
query42	104	95	94	94
query43	442	430	426	426
query44	1059	703	717	703
query45	190	174	172	172
query46	1033	780	796	780
query47	1478	1457	1424	1424
query48	424	356	363	356
query49	1106	296	274	274
query50	769	378	368	368
query51	4315	4303	4320	4303
query52	109	88	92	88
query53	333	258	265	258
query54	319	218	227	218
query55	90	78	82	78
query56	216	197	204	197
query57	955	862	850	850
query58	216	200	190	190
query59	2298	2216	2159	2159
query60	229	216	216	216
query61	84	85	81	81
query62	616	358	359	358
query63	289	255	255	255
query64	6506	2934	3127	2934
query65	3212	3237	3201	3201
query66	1426	330	311	311
query67	14212	14156	14026	14026
query68	3658	558	567	558
query69	525	382	379	379
query70	1200	1169	1273	1169
query71	320	258	242	242
query72	5842	2802	2675	2675
query73	713	314	315	314
query74	6182	5992	5996	5992
query75	3015	2452	2426	2426
query76	2339	1039	1158	1039
query77	324	232	221	221
query78	8955	8541	8454	8454
query79	2306	510	530	510
query80	1051	337	353	337
query81	491	192	203	192
query82	934	84	83	83
query83	235	124	117	117
query84	278	78	75	75
query85	1349	348	342	342
query86	406	299	301	299
query87	3241	3090	3098	3090
query88	3034	2360	2349	2349
query89	401	334	321	321
query90	1941	162	165	162
query91	153	124	123	123
query92	54	47	45	45
query93	1532	528	507	507
query94	1270	179	176	176
query95	433	334	337	334
query96	580	264	266	264
query97	4223	4117	4182	4117
query98	218	210	191	191
query99	1052	649	631	631
Total cold run time: 261741 ms
Total hot run time: 168968 ms

@doris-robot
Copy link

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

query1	0.03	0.03	0.03
query2	0.06	0.02	0.02
query3	0.23	0.06	0.06
query4	1.65	0.10	0.10
query5	0.52	0.51	0.52
query6	1.34	0.66	0.66
query7	0.02	0.01	0.02
query8	0.04	0.03	0.03
query9	0.57	0.53	0.51
query10	0.57	0.55	0.56
query11	0.12	0.09	0.10
query12	0.13	0.10	0.10
query13	0.63	0.61	0.62
query14	0.79	0.80	0.80
query15	0.85	0.83	0.82
query16	0.38	0.37	0.38
query17	0.98	0.97	0.99
query18	0.26	0.24	0.25
query19	1.78	1.69	1.78
query20	0.01	0.01	0.02
query21	15.40	0.60	0.63
query22	2.63	4.39	2.02
query23	17.61	1.16	1.04
query24	2.00	0.78	0.22
query25	0.40	0.18	0.07
query26	0.18	0.14	0.17
query27	0.04	0.04	0.05
query28	11.97	0.83	0.83
query29	12.59	3.28	3.30
query30	0.62	0.58	0.52
query31	2.80	0.35	0.36
query32	3.34	0.48	0.49
query33	3.18	3.17	3.20
query34	15.36	4.75	4.74
query35	4.75	4.71	4.74
query36	1.14	1.06	1.06
query37	0.07	0.05	0.05
query38	0.04	0.03	0.03
query39	0.02	0.02	0.01
query40	0.17	0.13	0.13
query41	0.08	0.02	0.01
query42	0.02	0.02	0.01
query43	0.03	0.02	0.02
Total cold run time: 105.4 s
Total hot run time: 31.71 s

@doris-robot
Copy link

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

Load test result on commit 289aca765959d58389047d23d0df9e09e848c802 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:      32 seconds loaded 861443392 Bytes, about 25 MB/s
Insert into select:       15.8 seconds inserted 10000000 Rows, about 632K ops/s

@Gabriel39
Copy link
Contributor Author

run buildall

@doris-robot
Copy link

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

------ Round 1 ----------------------------------
q1	18570	4212	4163	4163
q2	2544	143	142	142
q3	11548	995	979	979
q4	4742	971	978	971
q5	8101	2965	3073	2965
q6	188	129	123	123
q7	1291	781	767	767
q8	9269	2013	2032	2013
q9	7645	6379	6266	6266
q10	8196	2513	2487	2487
q11	422	213	199	199
q12	791	324	312	312
q13	17962	3257	3214	3214
q14	272	247	256	247
q15	548	495	500	495
q16	485	393	404	393
q17	948	894	862	862
q18	6481	5961	6032	5961
q19	1567	1526	1520	1520
q20	566	277	279	277
q21	6658	3582	3579	3579
q22	814	303	302	302
Total cold run time: 109608 ms
Total hot run time: 38237 ms

----- Round 2, with runtime_filter_mode=off -----
q1	4029	4049	4021	4021
q2	307	217	213	213
q3	3014	2933	2954	2933
q4	1844	1797	1814	1797
q5	5088	5106	5090	5090
q6	201	114	117	114
q7	2124	1699	1770	1699
q8	3142	3189	3221	3189
q9	8243	8282	8292	8282
q10	6259	3662	3665	3662
q11	512	431	424	424
q12	704	521	549	521
q13	3780	3096	3072	3072
q14	283	262	272	262
q15	544	500	504	500
q16	508	454	486	454
q17	1705	1686	1688	1686
q18	7712	7516	7535	7516
q19	1668	1649	1636	1636
q20	2113	1913	1912	1912
q21	4782	4585	4681	4585
q22	525	465	435	435
Total cold run time: 59087 ms
Total hot run time: 54003 ms

@doris-robot
Copy link

TeamCity be ut coverage result:
Function Coverage: 35.71% (8548/23938)
Line Coverage: 27.53% (69389/252043)
Region Coverage: 26.68% (35983/134858)
Branch Coverage: 23.49% (18391/78306)
Coverage Report: http://coverage.selectdb-in.cc/coverage/63b5f92e50225f7dc0875843b10012933b801b52_63b5f92e50225f7dc0875843b10012933b801b52/report/index.html

@doris-robot
Copy link

TPC-DS: Total hot run time: 170043 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 63b5f92e50225f7dc0875843b10012933b801b52, data reload: false

query1	929	343	341	341
query2	6524	1696	1777	1696
query3	6701	214	200	200
query4	22961	20674	20618	20618
query5	4196	364	365	364
query6	265	170	174	170
query7	4608	311	297	297
query8	264	205	204	204
query9	8479	2285	2290	2285
query10	407	227	221	221
query11	14714	14194	14128	14128
query12	132	82	82	82
query13	1660	459	422	422
query14	8576	6837	6416	6416
query15	209	177	184	177
query16	7092	257	252	252
query17	1040	521	503	503
query18	1896	273	262	262
query19	199	153	154	153
query20	87	82	85	82
query21	195	122	116	116
query22	4661	4749	4668	4668
query23	30545	30047	29908	29908
query24	11835	3176	3157	3157
query25	649	357	350	350
query26	1807	154	162	154
query27	2967	320	319	319
query28	6933	1850	1838	1838
query29	1205	588	562	562
query30	286	139	140	139
query31	854	682	699	682
query32	98	66	57	57
query33	712	234	230	230
query34	1015	484	506	484
query35	855	765	754	754
query36	914	892	859	859
query37	174	66	61	61
query38	3097	2981	2993	2981
query39	1329	1277	1254	1254
query40	279	105	104	104
query41	37	37	35	35
query42	102	97	94	94
query43	455	425	419	419
query44	1077	714	724	714
query45	194	177	174	174
query46	1034	803	811	803
query47	1524	1452	1517	1452
query48	422	342	345	342
query49	1168	293	298	293
query50	777	382	394	382
query51	4425	4305	4288	4288
query52	104	94	93	93
query53	337	264	267	264
query54	311	227	230	227
query55	88	81	86	81
query56	216	212	207	207
query57	991	897	859	859
query58	216	197	202	197
query59	2150	2126	2053	2053
query60	245	227	221	221
query61	84	87	85	85
query62	610	356	352	352
query63	285	256	259	256
query64	6539	2957	3144	2957
query65	3262	3226	3198	3198
query66	1436	322	318	318
query67	14733	14417	14300	14300
query68	5003	560	577	560
query69	531	385	390	385
query70	1207	1237	1254	1237
query71	373	251	249	249
query72	6269	2803	2635	2635
query73	718	332	329	329
query74	6404	6013	5947	5947
query75	3060	2481	2462	2462
query76	2849	1034	1145	1034
query77	347	241	239	239
query78	8974	8618	8412	8412
query79	1241	520	522	520
query80	979	371	358	358
query81	471	197	194	194
query82	958	93	87	87
query83	229	124	121	121
query84	281	82	78	78
query85	1335	353	348	348
query86	411	295	276	276
query87	3333	3129	3055	3055
query88	2813	2356	2356	2356
query89	385	331	332	331
query90	1861	169	172	169
query91	157	124	125	124
query92	57	49	53	49
query93	1134	532	511	511
query94	1187	182	176	176
query95	436	347	350	347
query96	591	270	269	269
query97	4276	4132	4162	4132
query98	215	209	200	200
query99	1058	639	647	639
Total cold run time: 263314 ms
Total hot run time: 170043 ms

@doris-robot
Copy link

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

query1	0.05	0.04	0.02
query2	0.06	0.02	0.02
query3	0.23	0.06	0.06
query4	1.67	0.10	0.10
query5	0.52	0.51	0.51
query6	1.29	0.68	0.67
query7	0.02	0.02	0.01
query8	0.04	0.02	0.02
query9	0.57	0.54	0.53
query10	0.56	0.57	0.58
query11	0.13	0.10	0.09
query12	0.12	0.09	0.10
query13	0.62	0.62	0.62
query14	0.78	0.82	0.80
query15	0.86	0.84	0.82
query16	0.38	0.37	0.39
query17	0.96	1.02	0.97
query18	0.26	0.25	0.23
query19	1.76	1.76	1.70
query20	0.01	0.00	0.01
query21	15.41	0.64	0.66
query22	2.59	4.15	2.38
query23	17.47	1.01	0.94
query24	1.98	0.39	0.37
query25	0.43	0.08	0.13
query26	0.19	0.18	0.15
query27	0.06	0.04	0.05
query28	12.27	0.84	0.83
query29	12.72	3.21	3.28
query30	0.63	0.56	0.57
query31	2.80	0.36	0.37
query32	3.35	0.48	0.48
query33	3.17	3.20	3.17
query34	15.36	4.78	4.74
query35	4.74	4.75	4.75
query36	1.12	1.07	1.08
query37	0.06	0.04	0.04
query38	0.05	0.02	0.03
query39	0.02	0.02	0.02
query40	0.16	0.13	0.13
query41	0.07	0.02	0.02
query42	0.02	0.02	0.01
query43	0.03	0.02	0.02
Total cold run time: 105.59 s
Total hot run time: 32.23 s

@doris-robot
Copy link

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

Load test result on commit 63b5f92e50225f7dc0875843b10012933b801b52 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:      32 seconds loaded 861443392 Bytes, about 25 MB/s
Insert into select:       16.9 seconds inserted 10000000 Rows, about 591K ops/s

Copy link
Contributor

@yiguolei yiguolei 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 27, 2024
Copy link
Contributor

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

Copy link
Contributor

PR approved by anyone and no changes requested.

@Gabriel39 Gabriel39 merged commit 0cd0a94 into apache:master Feb 27, 2024
27 of 30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by one committer. reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants