History

perform object sweep after equeue the latest CopyObject() (#15183)

keep it similar to PutObject/CompleteMultipart

Harshavardhana committed 4 years ago

Commit 699cf6f1 parent 92018701 file · +9 −10Browse files

Unified · Split

cmd/object-handlers.go+9−10
@@ -1446,9 +1446,11 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re · 1445 unmodified lines
14461446 return
14471447 }
14481448
1449− var objInfo ObjectInfo
1449+ remoteCallRequired := isRemoteCopyRequired(ctx, srcBucket, dstBucket, objectAPI)
14501450
1451− if isRemoteCopyRequired(ctx, srcBucket, dstBucket, objectAPI) {
1451+ var objInfo ObjectInfo
1452+ var os *objSweeper
1453+ if remoteCallRequired {
14521454 var dstRecords []dns.SrvRecord
14531455 dstRecords, err = globalDNSConfig.Get(dstBucket)
14541456 if err != nil {
@@ -1484,8 +1486,7 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re · 29 unmodified lines
14841486 objInfo.ETag = remoteObjInfo.ETag
14851487 objInfo.ModTime = remoteObjInfo.LastModified
14861488 } else {
1487−
1488− os := newObjSweeper(dstBucket, dstObject).WithVersioning(dstOpts.Versioned, dstOpts.VersionSuspended)
1489+ os = newObjSweeper(dstBucket, dstObject).WithVersioning(dstOpts.Versioned, dstOpts.VersionSuspended)
14891490 // Get appropriate object info to identify the remote object to delete
14901491 if !srcInfo.metadataOnly {
14911492 goiOpts := os.GetOpts()
@@ -1508,11 +1509,6 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re · 16 unmodified lines
15081509 writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
15091510 return
15101511 }
1511−
1512− // Remove the transitioned object whose object version is being overwritten.
1513− if !globalTierConfigMgr.Empty() {
1514− logger.LogIf(ctx, os.Sweep())
1515− }
15161512 }
15171513
15181514 objInfo.ETag = getDecryptedETag(r.Header, objInfo, false)
@@ -1544,9 +1540,12 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re · 25 unmodified lines
15441540 UserAgent: r.UserAgent(),
15451541 Host: handlers.GetSourceIP(r),
15461542 })
1547− if !globalTierConfigMgr.Empty() {
1543+
1544+ if !remoteCallRequired && !globalTierConfigMgr.Empty() {
15481545 // Schedule object for immediate transition if eligible.
15491546 enqueueTransitionImmediate(objInfo)
1547+ // Remove the transitioned object whose object version is being overwritten.
1548+ logger.LogIf(ctx, os.Sweep())
15501549 }
15511550 }
15521551

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t