forked from TrueCloudLab/frostfs-s3-gw
[#490] Optimize GetObjectTaggingAndLock
Signed-off-by: Denis Kirillov <denis@nspcc.ru>
This commit is contained in:
parent
206a7aa395
commit
88c392d024
10 changed files with 52 additions and 48 deletions
|
@ -236,10 +236,10 @@ func (n *layer) PutObject(ctx context.Context, p *PutObjectParams) (*data.Object
|
|||
return objInfo, nil
|
||||
}
|
||||
|
||||
func (n *layer) headLastVersionIfNotDeleted(ctx context.Context, bkt *data.BucketInfo, objectName string) (*data.ObjectInfo, error) {
|
||||
func (n *layer) headLastVersionIfNotDeleted(ctx context.Context, bkt *data.BucketInfo, objectName string) (*data.ExtendedObjectInfo, error) {
|
||||
if addr := n.namesCache.Get(bkt.Name + "/" + objectName); addr != nil {
|
||||
if objInfo := n.objCache.GetObject(*addr); objInfo != nil {
|
||||
return objInfo, nil
|
||||
return &data.ExtendedObjectInfo{ObjectInfo: objInfo}, nil
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -272,10 +272,14 @@ func (n *layer) headLastVersionIfNotDeleted(ctx context.Context, bkt *data.Bucke
|
|||
zap.Error(err))
|
||||
}
|
||||
|
||||
return objInfo, nil
|
||||
return &data.ExtendedObjectInfo{
|
||||
ObjectInfo: objInfo,
|
||||
NodeVersion: node,
|
||||
IsLatest: true,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (n *layer) headVersion(ctx context.Context, bkt *data.BucketInfo, p *HeadObjectParams) (*data.ObjectInfo, error) {
|
||||
func (n *layer) headVersion(ctx context.Context, bkt *data.BucketInfo, p *HeadObjectParams) (*data.ExtendedObjectInfo, error) {
|
||||
var err error
|
||||
var foundVersion *data.NodeVersion
|
||||
if p.VersionID == UnversionedObjectVersionID {
|
||||
|
@ -304,7 +308,10 @@ func (n *layer) headVersion(ctx context.Context, bkt *data.BucketInfo, p *HeadOb
|
|||
}
|
||||
|
||||
if objInfo := n.objCache.GetObject(newAddress(bkt.CID, foundVersion.OID)); objInfo != nil {
|
||||
return objInfo, nil
|
||||
return &data.ExtendedObjectInfo{
|
||||
ObjectInfo: objInfo,
|
||||
NodeVersion: foundVersion,
|
||||
}, nil
|
||||
}
|
||||
|
||||
meta, err := n.objectHead(ctx, bkt, foundVersion.OID)
|
||||
|
@ -325,7 +332,10 @@ func (n *layer) headVersion(ctx context.Context, bkt *data.BucketInfo, p *HeadOb
|
|||
zap.Error(err))
|
||||
}
|
||||
|
||||
return objInfo, nil
|
||||
return &data.ExtendedObjectInfo{
|
||||
ObjectInfo: objInfo,
|
||||
NodeVersion: foundVersion,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// objectDelete puts tombstone object into neofs.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue