forked from TrueCloudLab/frostfs-node
[#488] cmd/cfg: Update cfgReputation
Add `alpha` and `workerPool` to `cfgReputation` structure. Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
f6783f4f81
commit
35ec694b04
1 changed files with 31 additions and 0 deletions
|
@ -100,6 +100,11 @@ const (
|
||||||
cfgContainerWorkerPoolEnabled = "container.async_worker.enabled"
|
cfgContainerWorkerPoolEnabled = "container.async_worker.enabled"
|
||||||
cfgContainerWorkerPoolSize = "container.async_worker.size"
|
cfgContainerWorkerPoolSize = "container.async_worker.size"
|
||||||
|
|
||||||
|
// config keys for cfgReputation
|
||||||
|
cfgReputationAlpha = "reputation.alpha"
|
||||||
|
cfgReputationWorkerPoolEnabled = "reputation.async_worker.enabled"
|
||||||
|
cfgReputationWorkerPoolSize = "reputation.async_worker.size"
|
||||||
|
|
||||||
cfgGCQueueSize = "gc.queuesize"
|
cfgGCQueueSize = "gc.queuesize"
|
||||||
cfgGCQueueTick = "gc.duration.sleep"
|
cfgGCQueueTick = "gc.duration.sleep"
|
||||||
cfgGCTimeout = "gc.duration.timeout"
|
cfgGCTimeout = "gc.duration.timeout"
|
||||||
|
@ -314,6 +319,11 @@ type cfgControlService struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type cfgReputation struct {
|
type cfgReputation struct {
|
||||||
|
// Alpha parameter from origin EigenTrust algorithm
|
||||||
|
// http://ilpubs.stanford.edu:8090/562/1/2002-56.pdf Ch.5.1.
|
||||||
|
alpha float64
|
||||||
|
workerPool util2.WorkerPool // pool for EigenTrust algorithm's iterations
|
||||||
|
|
||||||
localTrustStorage *truststorage.Storage
|
localTrustStorage *truststorage.Storage
|
||||||
|
|
||||||
localTrustCtrl *trustcontroller.Controller
|
localTrustCtrl *trustcontroller.Controller
|
||||||
|
@ -361,6 +371,9 @@ func initCfg(path string) *cfg {
|
||||||
netmapWorkerPool, err := initNetmapWorkerPool(viperCfg)
|
netmapWorkerPool, err := initNetmapWorkerPool(viperCfg)
|
||||||
fatalOnErr(err)
|
fatalOnErr(err)
|
||||||
|
|
||||||
|
reputationWorkerPool, err := initReputationWorkerPool(viperCfg)
|
||||||
|
fatalOnErr(err)
|
||||||
|
|
||||||
relayOnly := viperCfg.GetBool(cfgReBootstrapRelay)
|
relayOnly := viperCfg.GetBool(cfgReBootstrapRelay)
|
||||||
|
|
||||||
c := &cfg{
|
c := &cfg{
|
||||||
|
@ -408,6 +421,10 @@ func initCfg(path string) *cfg {
|
||||||
},
|
},
|
||||||
netStatus: atomic.NewInt32(int32(control.NetmapStatus_STATUS_UNDEFINED)),
|
netStatus: atomic.NewInt32(int32(control.NetmapStatus_STATUS_UNDEFINED)),
|
||||||
healthStatus: atomic.NewInt32(int32(control.HealthStatus_HEALTH_STATUS_UNDEFINED)),
|
healthStatus: atomic.NewInt32(int32(control.HealthStatus_HEALTH_STATUS_UNDEFINED)),
|
||||||
|
cfgReputation: cfgReputation{
|
||||||
|
alpha: viper.GetFloat64(cfgReputationAlpha),
|
||||||
|
workerPool: reputationWorkerPool,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if viperCfg.GetBool(cfgMetricsEnable) {
|
if viperCfg.GetBool(cfgMetricsEnable) {
|
||||||
|
@ -461,6 +478,10 @@ func defaultConfiguration(v *viper.Viper) {
|
||||||
v.SetDefault(cfgContainerWorkerPoolEnabled, true)
|
v.SetDefault(cfgContainerWorkerPoolEnabled, true)
|
||||||
v.SetDefault(cfgContainerWorkerPoolSize, 10)
|
v.SetDefault(cfgContainerWorkerPoolSize, 10)
|
||||||
|
|
||||||
|
v.SetDefault(cfgReputationAlpha, 0.5)
|
||||||
|
v.SetDefault(cfgReputationWorkerPoolEnabled, true)
|
||||||
|
v.SetDefault(cfgReputationWorkerPoolSize, 10)
|
||||||
|
|
||||||
v.SetDefault(cfgNetmapContract, "75194459637323ea8837d2afe8225ec74a5658c3")
|
v.SetDefault(cfgNetmapContract, "75194459637323ea8837d2afe8225ec74a5658c3")
|
||||||
v.SetDefault(cfgNetmapFee, "1")
|
v.SetDefault(cfgNetmapFee, "1")
|
||||||
v.SetDefault(cfgNetmapWorkerPoolEnabled, true)
|
v.SetDefault(cfgNetmapWorkerPoolEnabled, true)
|
||||||
|
@ -782,6 +803,16 @@ func initContainerWorkerPool(v *viper.Viper) (util2.WorkerPool, error) {
|
||||||
return util2.SyncWorkerPool{}, nil
|
return util2.SyncWorkerPool{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initReputationWorkerPool(v *viper.Viper) (util2.WorkerPool, error) {
|
||||||
|
if v.GetBool(cfgReputationWorkerPoolEnabled) {
|
||||||
|
// return async worker pool
|
||||||
|
return ants.NewPool(v.GetInt(cfgReputationWorkerPoolSize))
|
||||||
|
}
|
||||||
|
|
||||||
|
// return sync worker pool
|
||||||
|
return util2.SyncWorkerPool{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (c *cfg) LocalNodeInfo() (*netmapV2.NodeInfo, error) {
|
func (c *cfg) LocalNodeInfo() (*netmapV2.NodeInfo, error) {
|
||||||
ni := c.localNodeInfo()
|
ni := c.localNodeInfo()
|
||||||
return ni.ToV2(), nil
|
return ni.ToV2(), nil
|
||||||
|
|
Loading…
Reference in a new issue