forked from TrueCloudLab/frostfs-node
[#1613] morph: Add tracing for morph queries to neo-go
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
This commit is contained in:
parent
4de5fca547
commit
9b113c3156
120 changed files with 623 additions and 562 deletions
|
@ -18,7 +18,7 @@ import (
|
|||
)
|
||||
|
||||
type InnerRing interface {
|
||||
InnerRingKeys() ([][]byte, error)
|
||||
InnerRingKeys(ctx context.Context) ([][]byte, error)
|
||||
}
|
||||
|
||||
type SenderClassifier struct {
|
||||
|
@ -63,7 +63,7 @@ func (c SenderClassifier) Classify(
|
|||
}
|
||||
|
||||
func (c SenderClassifier) IsInnerRingOrContainerNode(ctx context.Context, ownerKeyInBytes []byte, idCnr cid.ID, cnr container.Container) (*ClassifyResult, error) {
|
||||
isInnerRingNode, err := c.isInnerRingKey(ownerKeyInBytes)
|
||||
isInnerRingNode, err := c.isInnerRingKey(ctx, ownerKeyInBytes)
|
||||
if err != nil {
|
||||
// do not throw error, try best case matching
|
||||
c.log.Debug(ctx, logs.V2CantCheckIfRequestFromInnerRing,
|
||||
|
@ -78,7 +78,7 @@ func (c SenderClassifier) IsInnerRingOrContainerNode(ctx context.Context, ownerK
|
|||
binCnr := make([]byte, sha256.Size)
|
||||
idCnr.Encode(binCnr)
|
||||
|
||||
isContainerNode, err := c.isContainerKey(ownerKeyInBytes, binCnr, cnr)
|
||||
isContainerNode, err := c.isContainerKey(ctx, ownerKeyInBytes, binCnr, cnr)
|
||||
if err != nil {
|
||||
// error might happen if request has `RoleOther` key and placement
|
||||
// is not possible for previous epoch, so
|
||||
|
@ -99,8 +99,8 @@ func (c SenderClassifier) IsInnerRingOrContainerNode(ctx context.Context, ownerK
|
|||
}, nil
|
||||
}
|
||||
|
||||
func (c SenderClassifier) isInnerRingKey(owner []byte) (bool, error) {
|
||||
innerRingKeys, err := c.innerRing.InnerRingKeys()
|
||||
func (c SenderClassifier) isInnerRingKey(ctx context.Context, owner []byte) (bool, error) {
|
||||
innerRingKeys, err := c.innerRing.InnerRingKeys(ctx)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
@ -116,10 +116,11 @@ func (c SenderClassifier) isInnerRingKey(owner []byte) (bool, error) {
|
|||
}
|
||||
|
||||
func (c SenderClassifier) isContainerKey(
|
||||
ctx context.Context,
|
||||
owner, idCnr []byte,
|
||||
cnr container.Container,
|
||||
) (bool, error) {
|
||||
nm, err := core.GetLatestNetworkMap(c.netmap) // first check current netmap
|
||||
nm, err := core.GetLatestNetworkMap(ctx, c.netmap) // first check current netmap
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
@ -133,7 +134,7 @@ func (c SenderClassifier) isContainerKey(
|
|||
|
||||
// then check previous netmap, this can happen in-between epoch change
|
||||
// when node migrates data from last epoch container
|
||||
nm, err = core.GetPreviousNetworkMap(c.netmap)
|
||||
nm, err = core.GetPreviousNetworkMap(ctx, c.netmap)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue