starrocks icon indicating copy to clipboard operation
starrocks copied to clipboard

Skew shuffle join

Open before-Sunrise opened this issue 1 year ago • 3 comments

Why I'm doing:

What I'm doing:

Fixes #issue

What type of PR is this:

  • [ ] BugFix
  • [ ] Feature
  • [ ] Enhancement
  • [ ] Refactor
  • [ ] UT
  • [ ] Doc
  • [ ] Tool

Does this PR entail a change in behavior?

  • [x] Yes, this PR will result in a change in behavior.
  • [ ] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

  • [ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
  • [ ] Parameter changes: default values, similar parameters but with different default values
  • [ ] Policy changes: use new policy to replace old one, functionality automatically enabled
  • [ ] Feature removed
  • [ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

  • [ ] I have added test cases for my bug fix or my new feature
  • [ ] This pr needs user documentation (for new or modified features or behaviors)
    • [ ] I have added documentation for my new feature or new function
  • [ ] This is a backport pr

Bugfix cherry-pick branch check:

  • [ ] I have checked the version labels which the pr will be auto-backported to the target branch
    • [ ] 3.3
    • [ ] 3.2
    • [ ] 3.1
    • [ ] 3.0
    • [ ] 2.5

before-Sunrise avatar Jun 04 '24 12:06 before-Sunrise

[FE Incremental Coverage Report]

:x: fail : 47 / 393 (11.96%)

file detail

path covered_line new_line coverage not_covered_line_detail
:large_blue_circle: com/starrocks/planner/SplitCastDataSink.java 0 34 00.00% [30, 32, 34, 36, 40, 42, 43, 44, 45, 47, 52, 54, 55, 56, 57, 59, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 79, 80, 85, 86, 90, 94, 98, 103]
:large_blue_circle: com/starrocks/sql/optimizer/operator/physical/PhysicalCTEAnchorOperator.java 0 4 00.00% [41, 42, 43, 44]
:large_blue_circle: com/starrocks/sql/optimizer/rule/tree/SkewShuffleJoinEliminationRule.java 0 147 00.00% [45, 47, 48, 49, 53, 54, 60, 61, 62, 67, 72, 73, 74, 76, 81, 83, 85, 86, 87, 90, 91, 94, 95, 98, 99, 100, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 128, 129, 131, 132, 133, 135, 136, 137, 139, 140, 141, 143, 144, 145, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 160, 161, 162, 163, 172, 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 221, 222, 223, 224, 226, 227, 228, 229, 230, 232, 240, 241, 242, 246, 248, 250, 252, 254, 258, 260, 265, 267, 268, 271, 275, 276, 278, 279, 284, 285, 286, 288]
:large_blue_circle: com/starrocks/sql/optimizer/operator/physical/PhysicalSplitProduceOperator.java 0 13 00.00% [26, 27, 28, 31, 37, 42, 43, 46, 47, 50, 51, 56, 61]
:large_blue_circle: com/starrocks/sql/optimizer/operator/physical/PhysicalMergeOperator.java 0 11 00.00% [31, 32, 33, 37, 42, 43, 46, 47, 50, 51, 56]
:large_blue_circle: com/starrocks/sql/optimizer/operator/physical/PhysicalSplitConsumeOperator.java 0 16 00.00% [31, 32, 33, 34, 37, 41, 46, 51, 52, 55, 56, 59, 60, 61, 66, 71]
:large_blue_circle: com/starrocks/sql/optimizer/OptExpressionVisitor.java 0 3 00.00% [290, 294, 298]
:large_blue_circle: com/starrocks/planner/SplitPlanFragment.java 0 40 00.00% [27, 28, 30, 33, 37, 41, 42, 43, 44, 45, 46, 49, 53, 57, 62, 63, 66, 68, 70, 72, 73, 74, 75, 76, 77, 78, 81, 85, 86, 91, 92, 96, 97, 101, 102, 106, 107, 111, 113, 114]
:large_blue_circle: com/starrocks/sql/plan/PlanFragmentBuilder.java 27 100 27.00% [3717, 3718, 3719, 3720, 3728, 3729, 3731, 3736, 3737, 3739, 3740, 3741, 3742, 3744, 3745, 3748, 3750, 3751, 3752, 3753, 3754, 3755, 3758, 3759, 3762, 3763, 3765, 3766, 3768, 3769, 3771, 3772, 3773, 3778, 3779, 3781, 3782, 3784, 3785, 3786, 3789, 3790, 3791, 3792, 3793, 3794, 3796, 3797, 3799, 3801, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3812, 3813, 3815, 3817, 3820, 3821, 3822, 3823, 3827, 3829, 3830, 3832, 3834, 3857, 3858]
:large_blue_circle: com/starrocks/planner/UnionNode.java 2 4 50.00% [59, 60]
:large_blue_circle: com/starrocks/sql/plan/ExecPlan.java 1 2 50.00% [147]
:large_blue_circle: com/starrocks/sql/optimizer/operator/physical/PhysicalHashJoinOperator.java 2 4 50.00% [71, 75]
:large_blue_circle: com/starrocks/sql/optimizer/rule/implementation/HashJoinImplementationRule.java 3 3 100.00% []
:large_blue_circle: com/starrocks/planner/DataPartition.java 1 1 100.00% []
:large_blue_circle: com/starrocks/common/LocalExchangerType.java 8 8 100.00% []
:large_blue_circle: com/starrocks/sql/optimizer/operator/OperatorType.java 3 3 100.00% []

github-actions[bot] avatar Jun 06 '24 09:06 github-actions[bot]

Quality Gate Failed Quality Gate failed

Failed conditions
7.1% Duplication on New Code (required ≤ 3%)

See analysis details on SonarCloud

sonarqubecloud[bot] avatar Jul 18 '24 13:07 sonarqubecloud[bot]

[BE Incremental Coverage Report]

:x: fail : 12 / 412 (02.91%)

file detail

path covered_line new_line coverage not_covered_line_detail
:large_blue_circle: be/src/exec/pipeline/exchange/split_local_exchange.h 0 4 00.00% [27, 28, 31, 32]
:large_blue_circle: be/src/exec/hash_joiner.h 0 2 00.00% [94, 242]
:large_blue_circle: be/src/exec/pipeline/nljoin/nljoin_context.cpp 0 4 00.00% [177, 180, 181, 188]
:large_blue_circle: be/src/exec/pipeline/runtime_filter_types.h 0 3 00.00% [55, 56, 301]
:large_blue_circle: be/src/exec/pipeline/pipeline_builder.cpp 0 4 00.00% [387, 388, 389, 391]
:large_blue_circle: be/src/exec/pipeline/exchange/multi_cast_local_exchange.h 0 2 00.00% [55, 56]
:large_blue_circle: be/src/exec/pipeline/hashjoin/hash_join_build_operator.cpp 0 15 00.00% [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 175, 176]
:large_blue_circle: be/src/runtime/multi_cast_data_stream_sink.h 0 4 00.00% [30, 39, 40, 44]
:large_blue_circle: be/src/exec/pipeline/exchange/split_local_exchange.cpp 0 101 00.00% [20, 21, 22, 23, 26, 27, 28, 30, 31, 32, 33, 34, 36, 39, 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 60, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 75, 76, 77, 79, 82, 83, 85, 86, 87, 88, 89, 90, 93, 94, 95, 97, 98, 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, 114, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 131, 132, 133, 134, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 152, 154, 155, 156, 157, 159, 160, 161, 162]
:large_blue_circle: be/src/runtime/runtime_filter_worker.cpp 0 121 00.00% [102, 123, 124, 129, 130, 131, 132, 133, 134, 135, 136, 137, 164, 190, 195, 198, 199, 201, 203, 205, 207, 208, 210, 211, 212, 213, 214, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 247, 288, 289, 290, 293, 294, 295, 311, 312, 314, 392, 398, 400, 403, 404, 405, 407, 409, 410, 412, 414, 415, 416, 417, 418, 421, 422, 423, 424, 425, 427, 429, 434, 435, 436, 438, 441, 444, 445, 447, 449, 455, 499, 519, 520, 521, 522, 523, 524, 653, 722, 724, 756, 757, 758, 759, 1033, 1098, 1099, 1100, 1101, 1102, 1103, 1105, 1106, 1108, 1111, 1112, 1113, 1116]
:large_blue_circle: be/src/exec/pipeline/exchange/multi_cast_local_exchange_sink_operator.cpp 0 8 00.00% [48, 49, 50, 51, 53, 54, 55, 56]
:large_blue_circle: be/src/exec/pipeline/hashjoin/spillable_hash_join_build_operator.cpp 0 1 00.00% [147]
:large_blue_circle: be/src/exec/hash_joiner.cpp 0 4 00.00% [75, 76, 574, 589]
:large_blue_circle: be/src/exec/mor_processor.cpp 0 2 00.00% [48, 49]
:large_blue_circle: be/src/exec/data_sink.cpp 0 38 00.00% [177, 178, 181, 182, 184, 185, 186, 187, 188, 190, 191, 311, 358, 360, 361, 362, 364, 365, 366, 367, 368, 371, 372, 375, 376, 377, 378, 379, 380, 381, 384, 385, 386, 388, 391, 392, 393, 396]
:large_blue_circle: be/src/exec/union_node.cpp 0 7 00.00% [31, 32, 33, 35, 37, 429, 430]
:large_blue_circle: be/src/exec/hash_join_node.cpp 0 5 00.00% [148, 149, 476, 477, 1028]
:large_blue_circle: be/src/exec/pipeline/exchange/local_exchange.h 0 3 00.00% [276, 278, 280]
:large_blue_circle: be/src/exec/pipeline/exchange/local_exchange.cpp 0 4 00.00% [344, 345, 346, 348]
:large_blue_circle: be/src/exprs/runtime_filter_bank.h 0 1 00.00% [126]
:large_blue_circle: be/src/runtime/multi_cast_data_stream_sink.cpp 0 9 00.00% [48, 49, 50, 51, 52, 53, 55, 56, 58]
:large_blue_circle: be/src/exec/pipeline/sort/partition_sort_sink_operator.cpp 0 2 00.00% [78, 84]
:large_blue_circle: be/src/exprs/runtime_filter_bank.cpp 3 55 05.45% [118, 119, 120, 121, 122, 125, 127, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 145, 149, 153, 154, 155, 162, 163, 164, 165, 166, 170, 171, 174, 175, 177, 178, 180, 181, 183, 185, 187, 188, 189, 191, 193, 194, 195, 197, 198, 218, 320, 321, 323, 324]
:large_blue_circle: be/src/exprs/runtime_filter.h 5 8 62.50% [546, 547, 548]
:large_blue_circle: be/src/runtime/runtime_filter_worker.h 4 5 80.00% [76]

github-actions[bot] avatar Jul 18 '24 14:07 github-actions[bot]