kubernetes/pkg/storage
Kubernetes Submit Queue cd560926bd Merge pull request #36889 from wojtek-t/reuse_fields_and_labels
Automatic merge from submit-queue

Reuse fields and labels

This should significantly reduce memory allocations in apiserver in large cluster.
Explanation:
- every kubelet is refreshing watch every 5-10 minutes (this generally is not causing relist - it just renews watch)
- that means, in 5000-node cluster, we are issuing ~10 watches per second
- since we don't have "watch heartbets", the watch is issued from previously received resourceVersion
- to make some assumption, let's assume pods are evenly spread across pods, and writes for them are evenly spread - that means, that a given kubelet is interested in 1 per 5000 pod changes
- with that assumption, each watch, has to process 2500 (on average) previous watch events
- for each of such even, we are currently computing fields.

This PR is fixing this problem.
2016-12-02 21:49:43 -08:00
..
etcd cacher test: fix leftover v2 test server 2016-11-13 16:22:24 -08:00
etcd3 generated: refactor 2016-11-23 22:30:47 -06:00
storagebackend autogenerated 2016-10-21 17:32:32 -07:00
testing generated: refactor 2016-11-23 22:30:47 -06:00
BUILD Cache fields for filtering in watchCache. 2016-11-29 09:48:09 +01:00
cacher.go Merge pull request #36889 from wojtek-t/reuse_fields_and_labels 2016-12-02 21:49:43 -08:00
cacher_test.go Merge pull request #36889 from wojtek-t/reuse_fields_and_labels 2016-12-02 21:49:43 -08:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
errors.go Modify IsInvalidObj name and description 2016-08-12 11:17:08 +08:00
interfaces.go Try to avoid Get to etcd in GuaranteedUpdate in Cacher 2016-10-25 21:59:02 +02:00
OWNERS Create pkg/storage/OWNERS 2016-05-25 21:13:10 -07:00
selection_predicate.go Cache fields for filtering in watchCache. 2016-11-29 09:48:09 +01:00
selection_predicate_test.go generated: refactor 2016-11-23 22:30:47 -06:00
util.go pass SelectionPredicate instead of Filter to storage layer 2016-09-26 09:47:19 -07:00
util_test.go Log water mark for incoming queue in cacher 2016-09-09 11:35:05 +02:00
watch_cache.go Cache fields for filtering in watchCache. 2016-11-29 09:48:09 +01:00
watch_cache_test.go Cache fields for filtering in watchCache. 2016-11-29 09:48:09 +01:00