You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[CHAOS-76][FIX] Replace per-disruption caches with shared caches to reduce Watch connections (#1082)
perf(watchers): share caches across disruptions
Each active Disruption opened two Watch connections to the API
server — one per-disruption chaos pod cache and one per-disruption
target pod/node cache. At scale this caused goroutine bloat,
memory pressure, and excessive load on the API server.
Replace per-disruption chaos pod caches with a single
SharedChaosPodHandler registered on the manager's existing
informer. Replace per-disruption target caches with a
NamespaceCachePool so disruptions in the same namespace share
one cache. Watch connections drop from O(disruptions) to
O(namespaces).
Also fixes stale handler accumulation on shared informers
(source.Kind discards its registration), relabel-out reconcile
missed by the old enqueue path, and duplicate HA events emitted
by standby replicas.
Jira: CHAOS-7
// GetMatchingPodsOverTotalPods returns a pods list containing all running pods matching the given label selector and namespace and the count of pods matching the selector
// GetMatchingNodesOverTotalNodes returns a nodes list containing all nodes matching the given label selector and the count of nodes matching the selector
0 commit comments