-
Notifications
You must be signed in to change notification settings - Fork 41k
POC: Add a thread safe store that requires no read locking #133241
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
base: master
Are you sure you want to change the base?
Conversation
Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
f06fccc
to
3031e19
Compare
This change adds a thread safe store that doesn't require any readlocking for the informer cache. Should not be merged in its current form, as this store is used unconditionally. See kubernetes#130767 for more context.
3031e19
to
f96815c
Compare
136687d
to
9db71de
Compare
@alvaroaleman the repo looks frozen - https://github.com/benbjohnson/immutable - is there something better/newer/supported? cc @liggitt |
Did some benchmarking of the original performance vs iradix vs btree vs immutable map, as expected there is some slowdown everywhere and especially in inserts, but the insert slowdown for the btree and the immutable map is pretty drastic, ~10x slower in time, ~100x/30x mem usage: https://gist.github.com/alvaroaleman/848c6061fd5a29aa187ebf08710821f1 |
Thanks! I added the commit because I wanted to benchmark different underlying datastructures, see #133241 (comment). It looks like all except the immutable radix cause very drastic performance degradation |
@alvaroaleman: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
This change adds a thread safe store that doesn't require any readlocking for the informer cache. Should not be merged in its current form, as this new store is used unconditionally.
See #130767 for more context.
/sig scalability
/sig api-machinery
/kind feature
What type of PR is this?
What this PR does / why we need it:
Which issue(s) this PR is related to:
Special notes for your reviewer:
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: