[Enhancement] Optimize automatic partition concurrent create partition
Why I'm doing:
Currently, multiple parallel automatic create partition requests will result in the simultaneous creation of multiple identical partitions. Although only one partition is eventually effective when updating the metadata, this consumes a significant amount of resources. Therefore, we implement locking based on partition name before creating the partition to ensure that only one request is made to create a partition.
What I'm doing:
Fixes #issue
What type of PR is this:
- [ ] BugFix
- [ ] Feature
- [x] Enhancement
- [ ] Refactor
- [ ] UT
- [ ] Doc
- [ ] Tool
Does this PR entail a change in behavior?
- [ ] Yes, this PR will result in a change in behavior.
- [x] 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:
- [x] 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:
- [x] I have checked the version labels which the pr will be auto-backported to the target branch
- [x] 3.3
- [x] 3.2
- [x] 3.1
- [ ] 3.0
- [ ] 2.5
Quality Gate failed
Failed conditions
D Reliability Rating on New Code (required ≥ A)
See analysis details on SonarCloud
Catch issues before they fail your Quality Gate with our IDE extension
SonarLint
[BE Incremental Coverage Report]
:white_check_mark: pass : 0 / 0 (0%)
[FE Incremental Coverage Report]
:white_check_mark: pass : 38 / 43 (88.37%)
file detail
| path | covered_line | new_line | coverage | not_covered_line_detail | |
|---|---|---|---|---|---|
| :large_blue_circle: | com/starrocks/service/FrontendServiceImpl.java | 9 | 13 | 69.23% | [2305, 2306, 2307, 2308] |
| :large_blue_circle: | com/starrocks/catalog/CatalogUtils.java | 12 | 13 | 92.31% | [104] |
| :large_blue_circle: | com/starrocks/transaction/TransactionState.java | 17 | 17 | 100.00% | [] |
@Mergifyio backport branch-3.3
@Mergifyio backport branch-3.2
@Mergifyio backport branch-3.1
backport branch-3.3
✅ Backports have been created
- #45385 [Enhancement] Optimize automatic partition concurrent create partition (backport #45033) has been created for branch
branch-3.3
backport branch-3.2
✅ Backports have been created
- #45386 [Enhancement] Optimize automatic partition concurrent create partition (backport #45033) has been created for branch
branch-3.2but encountered conflicts
backport branch-3.1
✅ Backports have been created
- #45387 [Enhancement] Optimize automatic partition concurrent create partition (backport #45033) has been created for branch
branch-3.1but encountered conflicts