From fad3d66093dc5ef4738d8eb1ff33eb5b4b42d279 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 11 Feb 2022 14:22:48 -0800 Subject: [PATCH] parallelize background cleanup on local disks across sets (#14290) --- cmd/erasure-sets.go | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/cmd/erasure-sets.go b/cmd/erasure-sets.go index b17d0cf33..54639d7cb 100644 --- a/cmd/erasure-sets.go +++ b/cmd/erasure-sets.go @@ -508,9 +508,18 @@ func (s *erasureSets) cleanupDeletedObjects(ctx context.Context) { // Reset for the next interval timer.Reset(globalAPIConfig.getDeleteCleanupInterval()) + var wg sync.WaitGroup for _, set := range s.sets { - set.cleanupDeletedObjects(ctx) + wg.Add(1) + go func(set *erasureObjects) { + defer wg.Done() + if set == nil { + return + } + set.cleanupDeletedObjects(ctx) + }(set) } + wg.Wait() } } } @@ -527,9 +536,18 @@ func (s *erasureSets) cleanupStaleUploads(ctx context.Context) { // Reset for the next interval timer.Reset(globalAPIConfig.getStaleUploadsCleanupInterval()) + var wg sync.WaitGroup for _, set := range s.sets { - set.cleanupStaleUploads(ctx, globalAPIConfig.getStaleUploadsExpiry()) + wg.Add(1) + go func(set *erasureObjects) { + defer wg.Done() + if set == nil { + return + } + set.cleanupStaleUploads(ctx, globalAPIConfig.getStaleUploadsExpiry()) + }(set) } + wg.Wait() } } }