lib/workingsetcache: fix cache capacity calculations after 4f0003f182

This commit is contained in:
Aliaksandr Valialkin 2021-07-05 17:11:57 +03:00
parent 4f0003f182
commit 4cf47163c1

View file

@ -62,8 +62,9 @@ func Load(filePath string, maxBytes int, expireDuration time.Duration) *Cache {
// The cache couldn't be loaded with maxBytes size. // The cache couldn't be loaded with maxBytes size.
// This may mean that the cache is split into curr and prev caches. // This may mean that the cache is split into curr and prev caches.
// Try loading it again with maxBytes / 2 size. // Try loading it again with maxBytes / 2 size.
curr := fastcache.New(maxBytes / 2)
prev := fastcache.LoadFromFileOrNew(filePath, maxBytes/2) prev := fastcache.LoadFromFileOrNew(filePath, maxBytes/2)
c := newCacheInternal(fastcache.New(1024), prev, maxBytes, split) c := newCacheInternal(curr, prev, maxBytes, split)
c.runWatchers(expireDuration) c.runWatchers(expireDuration)
return c return c
} }
@ -71,7 +72,8 @@ func Load(filePath string, maxBytes int, expireDuration time.Duration) *Cache {
// The cache has been successfully loaded in full. // The cache has been successfully loaded in full.
// Set its' mode to `whole`. // Set its' mode to `whole`.
// There is no need in runWatchers call. // There is no need in runWatchers call.
return newCacheInternal(curr, fastcache.New(1024), maxBytes, whole) prev := fastcache.New(1024)
return newCacheInternal(curr, prev, maxBytes, whole)
} }
// New creates new cache with the given maxBytes capcity and the given expireDuration // New creates new cache with the given maxBytes capcity and the given expireDuration
@ -79,9 +81,9 @@ func Load(filePath string, maxBytes int, expireDuration time.Duration) *Cache {
// //
// Stop must be called on the returned cache when it is no longer needed. // Stop must be called on the returned cache when it is no longer needed.
func New(maxBytes int, expireDuration time.Duration) *Cache { func New(maxBytes int, expireDuration time.Duration) *Cache {
// Split maxBytes between curr and prev caches. curr := fastcache.New(maxBytes / 2)
curr := fastcache.New(maxBytes) prev := fastcache.New(1024)
c := newCacheInternal(curr, fastcache.New(1024), maxBytes, split) c := newCacheInternal(curr, prev, maxBytes, split)
c.runWatchers(expireDuration) c.runWatchers(expireDuration)
return c return c
} }