forked from TrueCloudLab/frostfs-node
[#184] Use SDK client cache in object.Rangehash
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
parent
f85e88c4f8
commit
e8fe07edd0
4 changed files with 17 additions and 5 deletions
|
@ -317,6 +317,7 @@ func initObjectService(c *cfg) {
|
||||||
|
|
||||||
sRangeHash := rangehashsvc.NewService(
|
sRangeHash := rangehashsvc.NewService(
|
||||||
rangehashsvc.WithKeyStorage(keyStorage),
|
rangehashsvc.WithKeyStorage(keyStorage),
|
||||||
|
rangehashsvc.WithClientCache(clientCache),
|
||||||
rangehashsvc.WithLocalStorage(ls),
|
rangehashsvc.WithLocalStorage(ls),
|
||||||
rangehashsvc.WithContainerSource(c.cfgObject.cnrStorage),
|
rangehashsvc.WithContainerSource(c.cfgObject.cnrStorage),
|
||||||
rangehashsvc.WithNetworkMapSource(c.cfgObject.netMapStorage),
|
rangehashsvc.WithNetworkMapSource(c.cfgObject.netMapStorage),
|
||||||
|
|
|
@ -112,8 +112,9 @@ loop:
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
hasher = &remoteHasher{
|
hasher = &remoteHasher{
|
||||||
keyStorage: h.keyStorage,
|
keyStorage: h.keyStorage,
|
||||||
node: addr,
|
node: addr,
|
||||||
|
clientCache: h.clientCache,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"github.com/nspcc-dev/neofs-api-go/pkg"
|
"github.com/nspcc-dev/neofs-api-go/pkg"
|
||||||
"github.com/nspcc-dev/neofs-api-go/pkg/client"
|
"github.com/nspcc-dev/neofs-api-go/pkg/client"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/network"
|
"github.com/nspcc-dev/neofs-node/pkg/network"
|
||||||
|
"github.com/nspcc-dev/neofs-node/pkg/network/cache"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/services/object/util"
|
"github.com/nspcc-dev/neofs-node/pkg/services/object/util"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
@ -15,6 +16,8 @@ type remoteHasher struct {
|
||||||
keyStorage *util.KeyStorage
|
keyStorage *util.KeyStorage
|
||||||
|
|
||||||
node *network.Address
|
node *network.Address
|
||||||
|
|
||||||
|
clientCache *cache.ClientCache
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *remoteHasher) hashRange(ctx context.Context, prm *Prm, handler func([][]byte)) error {
|
func (h *remoteHasher) hashRange(ctx context.Context, prm *Prm, handler func([][]byte)) error {
|
||||||
|
@ -28,9 +31,7 @@ func (h *remoteHasher) hashRange(ctx context.Context, prm *Prm, handler func([][
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
c, err := client.New(key,
|
c, err := h.clientCache.Get(key, addr)
|
||||||
client.WithAddress(addr),
|
|
||||||
)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(err, "(%T) could not create SDK client %s", h, addr)
|
return errors.Wrapf(err, "(%T) could not create SDK client %s", h, addr)
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/core/netmap"
|
"github.com/nspcc-dev/neofs-node/pkg/core/netmap"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/localstore"
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/localstore"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/network"
|
"github.com/nspcc-dev/neofs-node/pkg/network"
|
||||||
|
"github.com/nspcc-dev/neofs-node/pkg/network/cache"
|
||||||
headsvc "github.com/nspcc-dev/neofs-node/pkg/services/object/head"
|
headsvc "github.com/nspcc-dev/neofs-node/pkg/services/object/head"
|
||||||
rangesvc "github.com/nspcc-dev/neofs-node/pkg/services/object/range"
|
rangesvc "github.com/nspcc-dev/neofs-node/pkg/services/object/range"
|
||||||
objutil "github.com/nspcc-dev/neofs-node/pkg/services/object/util"
|
objutil "github.com/nspcc-dev/neofs-node/pkg/services/object/util"
|
||||||
|
@ -41,6 +42,8 @@ type cfg struct {
|
||||||
headSvc *headsvc.Service
|
headSvc *headsvc.Service
|
||||||
|
|
||||||
rangeSvc *rangesvc.Service
|
rangeSvc *rangesvc.Service
|
||||||
|
|
||||||
|
clientCache *cache.ClientCache
|
||||||
}
|
}
|
||||||
|
|
||||||
func defaultCfg() *cfg {
|
func defaultCfg() *cfg {
|
||||||
|
@ -264,3 +267,9 @@ func WithRangeService(v *rangesvc.Service) Option {
|
||||||
c.rangeSvc = v
|
c.rangeSvc = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WithClientCache(v *cache.ClientCache) Option {
|
||||||
|
return func(c *cfg) {
|
||||||
|
c.clientCache = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue