Allow gc to run in parallel on cache drives (#9051)

This commit is contained in:
poornas 2020-03-02 19:42:26 -08:00 committed by GitHub
parent e3b44c3829
commit c93157019f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -695,7 +695,6 @@ func newServerCacheObjects(ctx context.Context, config cache.Config) (CacheObjec
func (c *cacheObjects) gc(ctx context.Context, doneCh chan struct{}) {
ticker := time.NewTicker(cacheGCInterval)
var gcLock sync.Mutex
defer ticker.Stop()
for {
@ -711,14 +710,12 @@ func (c *cacheObjects) gc(ctx context.Context, doneCh chan struct{}) {
if dcache.gcCount() == 0 {
continue
}
gcLock.Lock()
wg.Add(1)
go func(d *diskCache, l *sync.Mutex) {
go func(d *diskCache) {
defer wg.Done()
d.resetGCCounter()
d.purge(ctx, doneCh)
l.Unlock()
}(dcache, &gcLock)
}(dcache)
}
wg.Wait()
}