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 FillZpp.pub@gmail.com

Ⅰ. 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 🤔

Signed-off-by: FillZpp <FillZpp.pub@gmail.com>
@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 <FillZpp.pub@gmail.com>

Signed-off-by: FillZpp <FillZpp.pub@gmail.com>
Signed-off-by: Liu Zhenwei <zwliu@thoughtworks.com>
baxiaoshi pushed a commit to baxiaoshi/kruise that referenced this pull request Nov 21, 2022
Signed-off-by: peng.xin <peng.xin@ly.com>

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

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>
Co-authored-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

Optimize performance of LabelSelector conversion (openkruise#1068)

Signed-off-by: FillZpp <FillZpp.pub@gmail.com>

Signed-off-by: FillZpp <FillZpp.pub@gmail.com>

Support timezone for AdvancedCronJob (openkruise#1070)

Signed-off-by: FillZpp <FillZpp.pub@gmail.com>

Signed-off-by: FillZpp <FillZpp.pub@gmail.com>

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

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>
Co-authored-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

pod probe marker apis (openkruise#1073)

* pod probe marker apis

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

* fix statefulset truncateHistory panic

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

pod probe marker controller (openkruise#1075)

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

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

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>
Co-authored-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

pod probe marker webhook (openkruise#1078)

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

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

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

pod probe marker proposal (openkruise#1053)

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

node pod probe daemon (openkruise#1077)

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

sidecarset support patch pod metadata proposal (openkruise#993)

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

Support predownload image in ads (openkruise#1057)

Signed-off-by: Abner <abner199709@gmail.com>

* support predownload image for ads

Add PreDownloadImageForDaemonSetUpdate featureGate (openkruise#1093)

Signed-off-by: FillZpp <FillZpp.pub@gmail.com>

Signed-off-by: FillZpp <FillZpp.pub@gmail.com>

Add changelog for v1.3.0 (openkruise#1092)

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

fix sidecarset inject annotations abnormal (openkruise#1101)

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

fix InPlaceUpdateEnvFromMetadata bug (openkruise#1108)

Co-authored-by: 郭已钦 <xiangyang2@xiaohongshu.com>

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

Signed-off-by: cheyuexian <cheyuexian@bilibili.com>

Signed-off-by: cheyuexian <cheyuexian@bilibili.com>
Co-authored-by: cheyuexian <cheyuexian@bilibili.com>

Add PreNormal Lifecycle Hook for CloneSet (openkruise#1071)

* add pre-normal(pre-available) hook

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

* add pre-normal(pre-available) hook

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>
Co-authored-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

partition support float percent (openkruise#1124)

Signed-off-by: shiyan2016 <shiyan20160606@gmail.com>

Signed-off-by: shiyan2016 <shiyan20160606@gmail.com>

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

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

Signed-off-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>
Co-authored-by: mingzhou.swx <mingzhou.swx@alibaba-inc.com>

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

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

Signed-off-by: liheng.zms <liheng.zms@alibaba-inc.com>

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 <peng.xin@ly.com>

fix: nodeSelector and nodeAffinity have not been modified

Signed-off-by: peng.xin <peng.xin@ly.com>

fix: error string

Signed-off-by: peng.xin <peng.xin@ly.com>

fix: error string

Signed-off-by: peng.xin <peng.xin@ly.com>

fix: goimports

Signed-off-by: peng.xin <peng.xin@ly.com>

refactor: refactoring ersistentPodAnnotations type

Signed-off-by: peng.xin <peng.xin@ly.com>

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

Signed-off-by: peng.xin <peng.xin@ly.com>

refactor: pps watch of whitelist workload

Signed-off-by: peng.xin <peng.xin@ly.com>

fix: add statefulsetlike's pod controller

Signed-off-by: peng.xin <peng.xin@ly.com>
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