forked from TrueCloudLab/frostfs-node
[#845] node: Configure Object PUT remote and local pools separately
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
ee20200c2e
commit
0e3e8db5c0
6 changed files with 27 additions and 10 deletions
|
@ -435,12 +435,12 @@ func initObjectPool(cfg *config.Config) (pool cfgObjectRoutines) {
|
||||||
|
|
||||||
optNonBlocking := ants.WithNonblocking(true)
|
optNonBlocking := ants.WithNonblocking(true)
|
||||||
|
|
||||||
pool.putRemote, err = ants.NewPool(objectconfig.Put(cfg).PoolSize(), optNonBlocking)
|
pool.putRemote, err = ants.NewPool(objectconfig.Put(cfg).PoolSizeRemote(), optNonBlocking)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fatalOnErr(err)
|
fatalOnErr(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
pool.putLocal, err = ants.NewPool(objectconfig.Put(cfg).PoolSize(), optNonBlocking)
|
pool.putLocal, err = ants.NewPool(objectconfig.Put(cfg).PoolSizeLocal(), optNonBlocking)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fatalOnErr(err)
|
fatalOnErr(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,11 +28,23 @@ func Put(c *config.Config) PutConfig {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// PoolSize returns value of "pool_size" config parameter.
|
// PoolSizeRemote returns value of "pool_size_remote" config parameter.
|
||||||
//
|
//
|
||||||
// Returns PutPoolSizeDefault if value is not positive number.
|
// Returns PutPoolSizeDefault if value is not positive number.
|
||||||
func (g PutConfig) PoolSize() int {
|
func (g PutConfig) PoolSizeRemote() int {
|
||||||
v := config.Int(g.cfg, "pool_size")
|
v := config.Int(g.cfg, "pool_size_remote")
|
||||||
|
if v > 0 {
|
||||||
|
return int(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
return PutPoolSizeDefault
|
||||||
|
}
|
||||||
|
|
||||||
|
// PoolSizeLocal returns value of "pool_size_local" config parameter.
|
||||||
|
//
|
||||||
|
// Returns PutPoolSizeDefault if value is not positive number.
|
||||||
|
func (g PutConfig) PoolSizeLocal() int {
|
||||||
|
v := config.Int(g.cfg, "pool_size_local")
|
||||||
if v > 0 {
|
if v > 0 {
|
||||||
return int(v)
|
return int(v)
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,13 +13,15 @@ func TestObjectSection(t *testing.T) {
|
||||||
t.Run("defaults", func(t *testing.T) {
|
t.Run("defaults", func(t *testing.T) {
|
||||||
empty := configtest.EmptyConfig()
|
empty := configtest.EmptyConfig()
|
||||||
|
|
||||||
require.Equal(t, objectconfig.PutPoolSizeDefault, objectconfig.Put(empty).PoolSize())
|
require.Equal(t, objectconfig.PutPoolSizeDefault, objectconfig.Put(empty).PoolSizeRemote())
|
||||||
|
require.Equal(t, objectconfig.PutPoolSizeDefault, objectconfig.Put(empty).PoolSizeLocal())
|
||||||
})
|
})
|
||||||
|
|
||||||
const path = "../../../../config/example/node"
|
const path = "../../../../config/example/node"
|
||||||
|
|
||||||
var fileConfigTest = func(c *config.Config) {
|
var fileConfigTest = func(c *config.Config) {
|
||||||
require.Equal(t, 100, objectconfig.Put(c).PoolSize())
|
require.Equal(t, 100, objectconfig.Put(c).PoolSizeRemote())
|
||||||
|
require.Equal(t, 101, objectconfig.Put(c).PoolSizeLocal())
|
||||||
}
|
}
|
||||||
|
|
||||||
configtest.ForEachFileType(path, fileConfigTest)
|
configtest.ForEachFileType(path, fileConfigTest)
|
||||||
|
|
|
@ -64,7 +64,8 @@ NEOFS_POLICER_HEAD_TIMEOUT=15s
|
||||||
NEOFS_REPLICATOR_PUT_TIMEOUT=15s
|
NEOFS_REPLICATOR_PUT_TIMEOUT=15s
|
||||||
|
|
||||||
# Object service section
|
# Object service section
|
||||||
NEOFS_OBJECT_PUT_POOL_SIZE=100
|
NEOFS_OBJECT_PUT_POOL_SIZE_REMOTE=100
|
||||||
|
NEOFS_OBJECT_PUT_POOL_SIZE_LOCAL=101
|
||||||
|
|
||||||
# Storage engine section
|
# Storage engine section
|
||||||
NEOFS_STORAGE_SHARD_NUM=2
|
NEOFS_STORAGE_SHARD_NUM=2
|
||||||
|
|
|
@ -97,7 +97,8 @@
|
||||||
},
|
},
|
||||||
"object": {
|
"object": {
|
||||||
"put": {
|
"put": {
|
||||||
"pool_size": 100
|
"pool_size_remote": 100,
|
||||||
|
"pool_size_local": 101
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"storage": {
|
"storage": {
|
||||||
|
|
|
@ -84,7 +84,8 @@ replicator:
|
||||||
|
|
||||||
object:
|
object:
|
||||||
put:
|
put:
|
||||||
pool_size: 100
|
pool_size_remote: 100
|
||||||
|
pool_size_local: 101
|
||||||
|
|
||||||
storage:
|
storage:
|
||||||
shard_num: 2
|
shard_num: 2
|
||||||
|
|
Loading…
Reference in a new issue