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

Optimize performance of LabelSelector conversion #1068

Conversation

FillZpp
Copy link
Member

@FillZpp FillZpp commented Aug 29, 2022

Signed-off-by: FillZpp [email protected]

Ⅰ. Describe what this PR does

optimize-performance-of-label-selector-conversion

@kruise-bot kruise-bot added the size/L size/L: 100-499 label Aug 29, 2022
@codecov-commenter
Copy link

codecov-commenter commented Aug 29, 2022

Codecov Report

Merging #1068 (11b68f6) into master (c25a7f0) will increase coverage by 0.00%.
The diff coverage is 70.00%.

@@           Coverage Diff           @@
##           master    #1068   +/-   ##
=======================================
  Coverage   50.46%   50.46%           
=======================================
  Files         125      125           
  Lines       17643    17688   +45     
=======================================
+ Hits         8903     8927   +24     
- Misses       7772     7785   +13     
- Partials      968      976    +8     
Flag Coverage Δ
unittests 50.46% <70.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
pkg/control/pubcontrol/pub_control.go 26.21% <0.00%> (ø)
pkg/control/sidecarcontrol/history_control.go 0.00% <0.00%> (ø)
pkg/controller/daemonset/daemonset_update.go 58.28% <0.00%> (ø)
...availablebudget/podunavailablebudget_controller.go 39.22% <0.00%> (ø)
...ller/podunavailablebudget/pub_pod_event_handler.go 26.47% <0.00%> (ø)
...roller/workloadspread/workloadspread_controller.go 63.67% <0.00%> (ø)
pkg/control/sidecarcontrol/util.go 54.03% <50.00%> (ø)
pkg/controller/daemonset/daemonset_util.go 57.69% <50.00%> (ø)
pkg/util/selector.go 82.02% <72.54%> (+0.81%) ⬆️
pkg/controller/cloneset/cloneset_controller.go 55.18% <100.00%> (ø)
... and 14 more

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@hantmac
Copy link
Member

hantmac commented Aug 29, 2022

Any benchmark data about two ways? I just curious 🤔

@FillZpp FillZpp force-pushed the optimize-performance-of-label-selector-conversion branch from 348ff51 to 11b68f6 Compare August 29, 2022 09:13
@FillZpp
Copy link
Member Author

FillZpp commented Aug 29, 2022

Any benchmark data about two ways? I just curious 🤔

@hantmac I have added a benchmark test, but the UT action won't run it. I tested locally, it has nearly quadrupled the CPU and also memory allocation.

BenchmarkValidatedLabelSelectorAsSelector-12    	10526553	      1111 ns/op	     640 B/op	      18 allocs/op
BenchmarkOriginalLabelSelectorAsSelector-12     	 3696250	      3329 ns/op	     941 B/op	      20 allocs/op

Copy link
Member

@furykerry furykerry left a comment

Choose a reason for hiding this comment

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

/lgtm

@FillZpp
Copy link
Member Author

FillZpp commented Aug 30, 2022

/approve

@kruise-bot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: FillZpp

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kruise-bot kruise-bot merged commit 5839c5b into openkruise:master Aug 30, 2022
diannaowa pushed a commit to diannaowa/kruise that referenced this pull request Sep 14, 2022
Signed-off-by: FillZpp <[email protected]>

Signed-off-by: FillZpp <[email protected]>
Signed-off-by: Liu Zhenwei <[email protected]>
baxiaoshi pushed a commit to baxiaoshi/kruise that referenced this pull request Nov 21, 2022
Signed-off-by: peng.xin <[email protected]>

optimize workloadspread when suitable subset maxReplicas is niil (openkruise#1066)

Signed-off-by: mingzhou.swx <[email protected]>

Signed-off-by: mingzhou.swx <[email protected]>
Co-authored-by: mingzhou.swx <[email protected]>

Optimize performance of LabelSelector conversion (openkruise#1068)

Signed-off-by: FillZpp <[email protected]>

Signed-off-by: FillZpp <[email protected]>

Support timezone for AdvancedCronJob (openkruise#1070)

Signed-off-by: FillZpp <[email protected]>

Signed-off-by: FillZpp <[email protected]>

ignore if pod condition has been updated (openkruise#1074)

Signed-off-by: mingzhou.swx <[email protected]>

Signed-off-by: mingzhou.swx <[email protected]>
Co-authored-by: mingzhou.swx <[email protected]>

pod probe marker apis (openkruise#1073)

* pod probe marker apis

Signed-off-by: liheng.zms <[email protected]>

* fix statefulset truncateHistory panic

Signed-off-by: liheng.zms <[email protected]>

Signed-off-by: liheng.zms <[email protected]>

pod probe marker controller (openkruise#1075)

Signed-off-by: liheng.zms <[email protected]>

Signed-off-by: liheng.zms <[email protected]>

consider whether patch field is matched when assign existing pods to subset (openkruise#1083)

Signed-off-by: mingzhou.swx <[email protected]>

Signed-off-by: mingzhou.swx <[email protected]>
Co-authored-by: mingzhou.swx <[email protected]>

pod probe marker webhook (openkruise#1078)

Signed-off-by: liheng.zms <[email protected]>

Signed-off-by: liheng.zms <[email protected]>

sidecarset support pods ns(kube-system, kube-public) (openkruise#1084)

Signed-off-by: liheng.zms <[email protected]>

Signed-off-by: liheng.zms <[email protected]>

pod probe marker proposal (openkruise#1053)

Signed-off-by: liheng.zms <[email protected]>

Signed-off-by: liheng.zms <[email protected]>

node pod probe daemon (openkruise#1077)

Signed-off-by: liheng.zms <[email protected]>

sidecarset support patch pod metadata proposal (openkruise#993)

Signed-off-by: liheng.zms <[email protected]>

Support predownload image in ads (openkruise#1057)

Signed-off-by: Abner <[email protected]>

* support predownload image for ads

Add PreDownloadImageForDaemonSetUpdate featureGate (openkruise#1093)

Signed-off-by: FillZpp <[email protected]>

Signed-off-by: FillZpp <[email protected]>

Add changelog for v1.3.0 (openkruise#1092)

Signed-off-by: liheng.zms <[email protected]>

Signed-off-by: liheng.zms <[email protected]>

fix sidecarset inject annotations abnormal (openkruise#1101)

Signed-off-by: liheng.zms <[email protected]>

Signed-off-by: liheng.zms <[email protected]>

fix InPlaceUpdateEnvFromMetadata bug (openkruise#1108)

Co-authored-by: 郭已钦 <[email protected]>

support uniteddeployment persistentVolumeClaimRetentionPolicy inherit from  advancestatefulset template (openkruise#1110)

Signed-off-by: cheyuexian <[email protected]>

Signed-off-by: cheyuexian <[email protected]>
Co-authored-by: cheyuexian <[email protected]>

Add PreNormal Lifecycle Hook for CloneSet (openkruise#1071)

* add pre-normal(pre-available) hook

Signed-off-by: mingzhou.swx <[email protected]>

* add pre-normal(pre-available) hook

Signed-off-by: mingzhou.swx <[email protected]>

Signed-off-by: mingzhou.swx <[email protected]>
Co-authored-by: mingzhou.swx <[email protected]>

partition support float percent (openkruise#1124)

Signed-off-by: shiyan2016 <[email protected]>

Signed-off-by: shiyan2016 <[email protected]>

improve error hanlding of inplace update env from metadata (openkruise#1125)

Signed-off-by: mingzhou.swx <[email protected]>

Signed-off-by: mingzhou.swx <[email protected]>
Co-authored-by: mingzhou.swx <[email protected]>

pub support to configure Evict,Delete,Update Operation (openkruise#1126)

Signed-off-by: liheng.zms <[email protected]>

Signed-off-by: liheng.zms <[email protected]>

feat: add watch whitelist

feat: add watch whitelist

add watch whitelist check

add dynamic watch option

feat: add persistent annotations

format

feat: add pps support custom workload

Signed-off-by: peng.xin <[email protected]>

fix: nodeSelector and nodeAffinity have not been modified

Signed-off-by: peng.xin <[email protected]>

fix: error string

Signed-off-by: peng.xin <[email protected]>

fix: error string

Signed-off-by: peng.xin <[email protected]>

fix: goimports

Signed-off-by: peng.xin <[email protected]>

refactor: refactoring ersistentPodAnnotations type

Signed-off-by: peng.xin <[email protected]>

- add statefulet group check
- modify the pod create processing logic

Signed-off-by: peng.xin <[email protected]>

refactor: pps watch of whitelist workload

Signed-off-by: peng.xin <[email protected]>

fix: add statefulsetlike's pod controller

Signed-off-by: peng.xin <[email protected]>
ppbits pushed a commit to ppbits/kruise that referenced this pull request Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants