forked from TrueCloudLab/frostfs-node
[#1559] shard: Do not consult metabase in a degraded mode
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
339864b720
commit
c8911d72d0
17 changed files with 114 additions and 67 deletions
|
@ -63,16 +63,27 @@ func (s *Shard) Head(prm HeadPrm) (HeadRes, error) {
|
|||
// otherwise object seems to be flushed to metabase
|
||||
}
|
||||
|
||||
var headParams meta.GetPrm
|
||||
headParams.SetAddress(prm.addr)
|
||||
headParams.SetRaw(prm.raw)
|
||||
var obj *objectSDK.Object
|
||||
var err error
|
||||
if s.GetMode().NoMetabase() {
|
||||
var getPrm GetPrm
|
||||
getPrm.SetAddress(prm.addr)
|
||||
getPrm.SetIgnoreMeta(true)
|
||||
|
||||
res, err := s.metaBase.Get(headParams)
|
||||
if err != nil {
|
||||
return HeadRes{}, err
|
||||
var res GetRes
|
||||
res, err = s.Get(getPrm)
|
||||
obj = res.Object()
|
||||
} else {
|
||||
var headParams meta.GetPrm
|
||||
headParams.SetAddress(prm.addr)
|
||||
headParams.SetRaw(prm.raw)
|
||||
|
||||
var res meta.GetRes
|
||||
res, err = s.metaBase.Get(headParams)
|
||||
obj = res.Header()
|
||||
}
|
||||
|
||||
return HeadRes{
|
||||
obj: res.Header(),
|
||||
}, nil
|
||||
obj: obj,
|
||||
}, err
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue