forked from TrueCloudLab/frostfs-node
[#1306] node: Allow tombstone_lifetime config to be loaded on the fly
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
This commit is contained in:
parent
9c5ddc4dfe
commit
57c31e9802
2 changed files with 17 additions and 6 deletions
|
@ -105,6 +105,10 @@ type applicationConfiguration struct {
|
||||||
timestamp bool
|
timestamp bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ObjectCfg struct {
|
||||||
|
tombstoneLifetime uint64
|
||||||
|
}
|
||||||
|
|
||||||
EngineCfg struct {
|
EngineCfg struct {
|
||||||
errorThreshold uint32
|
errorThreshold uint32
|
||||||
shardPoolSize uint32
|
shardPoolSize uint32
|
||||||
|
@ -223,6 +227,10 @@ func (a *applicationConfiguration) readConfig(c *config.Config) error {
|
||||||
a.LoggerCfg.destination = loggerconfig.Destination(c)
|
a.LoggerCfg.destination = loggerconfig.Destination(c)
|
||||||
a.LoggerCfg.timestamp = loggerconfig.Timestamp(c)
|
a.LoggerCfg.timestamp = loggerconfig.Timestamp(c)
|
||||||
|
|
||||||
|
// Object
|
||||||
|
|
||||||
|
a.ObjectCfg.tombstoneLifetime = objectconfig.TombstoneLifetime(c)
|
||||||
|
|
||||||
// Storage Engine
|
// Storage Engine
|
||||||
|
|
||||||
a.EngineCfg.errorThreshold = engineconfig.ShardErrorThreshold(c)
|
a.EngineCfg.errorThreshold = engineconfig.ShardErrorThreshold(c)
|
||||||
|
@ -624,7 +632,7 @@ type cfgObject struct {
|
||||||
|
|
||||||
cfgLocalStorage cfgLocalStorage
|
cfgLocalStorage cfgLocalStorage
|
||||||
|
|
||||||
tombstoneLifetime uint64
|
tombstoneLifetime *atomic.Uint64
|
||||||
|
|
||||||
skipSessionTokenIssuerVerification bool
|
skipSessionTokenIssuerVerification bool
|
||||||
}
|
}
|
||||||
|
@ -815,9 +823,11 @@ func initCfgGRPC() cfgGRPC {
|
||||||
}
|
}
|
||||||
|
|
||||||
func initCfgObject(appCfg *config.Config) cfgObject {
|
func initCfgObject(appCfg *config.Config) cfgObject {
|
||||||
|
var tsLifetime atomic.Uint64
|
||||||
|
tsLifetime.Store(objectconfig.TombstoneLifetime(appCfg))
|
||||||
return cfgObject{
|
return cfgObject{
|
||||||
pool: initObjectPool(appCfg),
|
pool: initObjectPool(appCfg),
|
||||||
tombstoneLifetime: objectconfig.TombstoneLifetime(appCfg),
|
tombstoneLifetime: &tsLifetime,
|
||||||
skipSessionTokenIssuerVerification: objectconfig.Put(appCfg).SkipSessionTokenIssuerVerification(),
|
skipSessionTokenIssuerVerification: objectconfig.Put(appCfg).SkipSessionTokenIssuerVerification(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1296,6 +1306,9 @@ func (c *cfg) reloadConfig(ctx context.Context) {
|
||||||
|
|
||||||
components := c.getComponents(ctx, logPrm)
|
components := c.getComponents(ctx, logPrm)
|
||||||
|
|
||||||
|
// Object
|
||||||
|
c.cfgObject.tombstoneLifetime.Store(c.ObjectCfg.tombstoneLifetime)
|
||||||
|
|
||||||
// Storage Engine
|
// Storage Engine
|
||||||
|
|
||||||
var rcfg engine.ReConfiguration
|
var rcfg engine.ReConfiguration
|
||||||
|
|
|
@ -109,13 +109,12 @@ func (s *objectSvc) GetRangeHash(ctx context.Context, req *object.GetRangeHashRe
|
||||||
|
|
||||||
type delNetInfo struct {
|
type delNetInfo struct {
|
||||||
netmap.State
|
netmap.State
|
||||||
tsLifetime uint64
|
|
||||||
|
|
||||||
cfg *cfg
|
cfg *cfg
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *delNetInfo) TombstoneLifetime() (uint64, error) {
|
func (i *delNetInfo) TombstoneLifetime() (uint64, error) {
|
||||||
return i.tsLifetime, nil
|
return i.cfg.cfgObject.tombstoneLifetime.Load(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns node owner ID calculated from configured private key.
|
// returns node owner ID calculated from configured private key.
|
||||||
|
@ -424,8 +423,7 @@ func createDeleteService(c *cfg, keyStorage *util.KeyStorage, sGet *getsvc.Servi
|
||||||
sSearch,
|
sSearch,
|
||||||
sPut,
|
sPut,
|
||||||
&delNetInfo{
|
&delNetInfo{
|
||||||
State: c.cfgNetmap.state,
|
State: c.cfgNetmap.state,
|
||||||
tsLifetime: c.cfgObject.tombstoneLifetime,
|
|
||||||
|
|
||||||
cfg: c,
|
cfg: c,
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue