[#1636] config: Refactor newConfig and oldConfig

`newConfig` is actually target config to set config values from source
(which is called `oldConfig`).

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
Dmitrii Stepanov 2025-02-21 16:37:00 +03:00
parent 04f57d851c
commit d705d327cc
Signed by: dstepanov-yadro
GPG key ID: 237AF1A763293BC0

View file

@ -255,42 +255,42 @@ func (a *applicationConfiguration) readConfig(c *config.Config) error {
return engineconfig.IterateShards(c, false, func(sc *shardconfig.Config) error { return a.updateShardConfig(c, sc) }) return engineconfig.IterateShards(c, false, func(sc *shardconfig.Config) error { return a.updateShardConfig(c, sc) })
} }
func (a *applicationConfiguration) updateShardConfig(c *config.Config, oldConfig *shardconfig.Config) error { func (a *applicationConfiguration) updateShardConfig(c *config.Config, source *shardconfig.Config) error {
var newConfig shardCfg var target shardCfg
newConfig.refillMetabase = oldConfig.RefillMetabase() target.refillMetabase = source.RefillMetabase()
newConfig.refillMetabaseWorkersCount = oldConfig.RefillMetabaseWorkersCount() target.refillMetabaseWorkersCount = source.RefillMetabaseWorkersCount()
newConfig.mode = oldConfig.Mode() target.mode = source.Mode()
newConfig.compress = oldConfig.Compress() target.compress = source.Compress()
newConfig.estimateCompressibility = oldConfig.EstimateCompressibility() target.estimateCompressibility = source.EstimateCompressibility()
newConfig.estimateCompressibilityThreshold = oldConfig.EstimateCompressibilityThreshold() target.estimateCompressibilityThreshold = source.EstimateCompressibilityThreshold()
newConfig.uncompressableContentType = oldConfig.UncompressableContentTypes() target.uncompressableContentType = source.UncompressableContentTypes()
newConfig.smallSizeObjectLimit = oldConfig.SmallSizeLimit() target.smallSizeObjectLimit = source.SmallSizeLimit()
a.setShardWriteCacheConfig(&newConfig, oldConfig) a.setShardWriteCacheConfig(&target, source)
a.setShardPiloramaConfig(c, &newConfig, oldConfig) a.setShardPiloramaConfig(c, &target, source)
if err := a.setShardStorageConfig(&newConfig, oldConfig); err != nil { if err := a.setShardStorageConfig(&target, source); err != nil {
return err return err
} }
a.setMetabaseConfig(&newConfig, oldConfig) a.setMetabaseConfig(&target, source)
a.setGCConfig(&newConfig, oldConfig) a.setGCConfig(&target, source)
if err := a.setLimiter(&newConfig, oldConfig); err != nil { if err := a.setLimiter(&target, source); err != nil {
return err return err
} }
a.EngineCfg.shards = append(a.EngineCfg.shards, newConfig) a.EngineCfg.shards = append(a.EngineCfg.shards, target)
return nil return nil
} }
func (a *applicationConfiguration) setShardWriteCacheConfig(newConfig *shardCfg, oldConfig *shardconfig.Config) { func (a *applicationConfiguration) setShardWriteCacheConfig(target *shardCfg, source *shardconfig.Config) {
writeCacheCfg := oldConfig.WriteCache() writeCacheCfg := source.WriteCache()
if writeCacheCfg.Enabled() { if writeCacheCfg.Enabled() {
wc := &newConfig.writecacheCfg wc := &target.writecacheCfg
wc.enabled = true wc.enabled = true
wc.path = writeCacheCfg.Path() wc.path = writeCacheCfg.Path()
@ -303,10 +303,10 @@ func (a *applicationConfiguration) setShardWriteCacheConfig(newConfig *shardCfg,
} }
} }
func (a *applicationConfiguration) setShardPiloramaConfig(c *config.Config, newConfig *shardCfg, oldConfig *shardconfig.Config) { func (a *applicationConfiguration) setShardPiloramaConfig(c *config.Config, target *shardCfg, source *shardconfig.Config) {
if config.BoolSafe(c.Sub("tree"), "enabled") { if config.BoolSafe(c.Sub("tree"), "enabled") {
piloramaCfg := oldConfig.Pilorama() piloramaCfg := source.Pilorama()
pr := &newConfig.piloramaCfg pr := &target.piloramaCfg
pr.enabled = true pr.enabled = true
pr.path = piloramaCfg.Path() pr.path = piloramaCfg.Path()
@ -317,8 +317,8 @@ func (a *applicationConfiguration) setShardPiloramaConfig(c *config.Config, newC
} }
} }
func (a *applicationConfiguration) setShardStorageConfig(newConfig *shardCfg, oldConfig *shardconfig.Config) error { func (a *applicationConfiguration) setShardStorageConfig(target *shardCfg, source *shardconfig.Config) error {
blobStorCfg := oldConfig.BlobStor() blobStorCfg := source.BlobStor()
storagesCfg := blobStorCfg.Storages() storagesCfg := blobStorCfg.Storages()
ss := make([]subStorageCfg, 0, len(storagesCfg)) ss := make([]subStorageCfg, 0, len(storagesCfg))
@ -352,13 +352,13 @@ func (a *applicationConfiguration) setShardStorageConfig(newConfig *shardCfg, ol
ss = append(ss, sCfg) ss = append(ss, sCfg)
} }
newConfig.subStorages = ss target.subStorages = ss
return nil return nil
} }
func (a *applicationConfiguration) setMetabaseConfig(newConfig *shardCfg, oldConfig *shardconfig.Config) { func (a *applicationConfiguration) setMetabaseConfig(target *shardCfg, source *shardconfig.Config) {
metabaseCfg := oldConfig.Metabase() metabaseCfg := source.Metabase()
m := &newConfig.metaCfg m := &target.metaCfg
m.path = metabaseCfg.Path() m.path = metabaseCfg.Path()
m.perm = metabaseCfg.BoltDB().Perm() m.perm = metabaseCfg.BoltDB().Perm()
@ -366,24 +366,24 @@ func (a *applicationConfiguration) setMetabaseConfig(newConfig *shardCfg, oldCon
m.maxBatchSize = metabaseCfg.BoltDB().MaxBatchSize() m.maxBatchSize = metabaseCfg.BoltDB().MaxBatchSize()
} }
func (a *applicationConfiguration) setGCConfig(newConfig *shardCfg, oldConfig *shardconfig.Config) { func (a *applicationConfiguration) setGCConfig(target *shardCfg, source *shardconfig.Config) {
gcCfg := oldConfig.GC() gcCfg := source.GC()
newConfig.gcCfg.removerBatchSize = gcCfg.RemoverBatchSize() target.gcCfg.removerBatchSize = gcCfg.RemoverBatchSize()
newConfig.gcCfg.removerSleepInterval = gcCfg.RemoverSleepInterval() target.gcCfg.removerSleepInterval = gcCfg.RemoverSleepInterval()
newConfig.gcCfg.expiredCollectorBatchSize = gcCfg.ExpiredCollectorBatchSize() target.gcCfg.expiredCollectorBatchSize = gcCfg.ExpiredCollectorBatchSize()
newConfig.gcCfg.expiredCollectorWorkerCount = gcCfg.ExpiredCollectorWorkerCount() target.gcCfg.expiredCollectorWorkerCount = gcCfg.ExpiredCollectorWorkerCount()
} }
func (a *applicationConfiguration) setLimiter(newConfig *shardCfg, oldConfig *shardconfig.Config) error { func (a *applicationConfiguration) setLimiter(target *shardCfg, source *shardconfig.Config) error {
limitsConfig := oldConfig.Limits() limitsConfig := source.Limits()
limiter, err := qos.NewLimiter(limitsConfig) limiter, err := qos.NewLimiter(limitsConfig)
if err != nil { if err != nil {
return err return err
} }
if newConfig.limiter != nil { if target.limiter != nil {
newConfig.limiter.Close() target.limiter.Close()
} }
newConfig.limiter = limiter target.limiter = limiter
return nil return nil
} }