Revert "Rely on default watch cache capacity and ignore its requested size"

This reverts PR 91260
This commit is contained in:
Jordan Liggitt 2020-05-23 09:21:22 -04:00
parent 3d7847ed01
commit 6249f287e1
3 changed files with 10 additions and 17 deletions

View File

@ -61,8 +61,6 @@ const (
// Config contains the configuration for a given Cache. // Config contains the configuration for a given Cache.
type Config struct { type Config struct {
// Maximum size of the history cached in memory. // Maximum size of the history cached in memory.
//
// DEPRECATED: Cache capacity is dynamic and this field is no longer used.
CacheCapacity int CacheCapacity int
// An underlying storage.Interface. // An underlying storage.Interface.
@ -359,7 +357,7 @@ func NewCacherFromConfig(config Config) (*Cacher, error) {
} }
watchCache := newWatchCache( watchCache := newWatchCache(
config.KeyFunc, cacher.processEvent, config.GetAttrsFunc, config.Versioner, config.Indexers, objType) config.CacheCapacity, config.KeyFunc, cacher.processEvent, config.GetAttrsFunc, config.Versioner, config.Indexers, objType)
listerWatcher := NewCacherListerWatcher(config.Storage, config.ResourcePrefix, config.NewListFunc) listerWatcher := NewCacherListerWatcher(config.Storage, config.ResourcePrefix, config.NewListFunc)
reflectorName := "storage/cacher.go:" + config.ResourcePrefix reflectorName := "storage/cacher.go:" + config.ResourcePrefix

View File

@ -193,6 +193,7 @@ type watchCache struct {
} }
func newWatchCache( func newWatchCache(
capacity int,
keyFunc func(runtime.Object) (string, error), keyFunc func(runtime.Object) (string, error),
eventHandler func(*watchCacheEvent), eventHandler func(*watchCacheEvent),
getAttrsFunc func(runtime.Object) (labels.Set, fields.Set, error), getAttrsFunc func(runtime.Object) (labels.Set, fields.Set, error),
@ -200,12 +201,13 @@ func newWatchCache(
indexers *cache.Indexers, indexers *cache.Indexers,
objectType reflect.Type) *watchCache { objectType reflect.Type) *watchCache {
wc := &watchCache{ wc := &watchCache{
capacity: defaultLowerBoundCapacity, capacity: capacity,
keyFunc: keyFunc, keyFunc: keyFunc,
getAttrsFunc: getAttrsFunc, getAttrsFunc: getAttrsFunc,
cache: make([]*watchCacheEvent, defaultLowerBoundCapacity), cache: make([]*watchCacheEvent, capacity),
lowerBoundCapacity: defaultLowerBoundCapacity, // TODO get rid of them once we stop passing capacity as a parameter to watch cache.
upperBoundCapacity: defaultUpperBoundCapacity, lowerBoundCapacity: min(capacity, defaultLowerBoundCapacity),
upperBoundCapacity: max(capacity, defaultUpperBoundCapacity),
startIndex: 0, startIndex: 0,
endIndex: 0, endIndex: 0,
store: cache.NewIndexer(storeElementKey, storeElementIndexers(indexers)), store: cache.NewIndexer(storeElementKey, storeElementIndexers(indexers)),

View File

@ -81,14 +81,7 @@ func newTestWatchCache(capacity int, indexers *cache.Indexers) *watchCache {
} }
versioner := etcd3.APIObjectVersioner{} versioner := etcd3.APIObjectVersioner{}
mockHandler := func(*watchCacheEvent) {} mockHandler := func(*watchCacheEvent) {}
wc := newWatchCache(keyFunc, mockHandler, getAttrsFunc, versioner, indexers, reflect.TypeOf(&example.Pod{})) wc := newWatchCache(capacity, keyFunc, mockHandler, getAttrsFunc, versioner, indexers, reflect.TypeOf(&example.Pod{}))
// To preserve behavior of tests that assume a given capacity,
// resize it to th expected size.
wc.capacity = capacity
wc.cache = make([]*watchCacheEvent, capacity)
wc.lowerBoundCapacity = min(capacity, defaultLowerBoundCapacity)
wc.upperBoundCapacity = max(capacity, defaultUpperBoundCapacity)
wc.clock = clock.NewFakeClock(time.Now()) wc.clock = clock.NewFakeClock(time.Now())
return wc return wc
} }