forked from TrueCloudLab/frostfs-node
[#1846] neofs-node: Make morph.cache_ttl equal to block time by default
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
This commit is contained in:
parent
e54b52ec03
commit
ca8dc872b2
5 changed files with 19 additions and 7 deletions
|
@ -18,6 +18,7 @@ Changelog for NeoFS Node
|
||||||
### Changed
|
### Changed
|
||||||
- Allow to evacuate shard data with `EvacuateShard` control RPC (#1800)
|
- Allow to evacuate shard data with `EvacuateShard` control RPC (#1800)
|
||||||
- Flush write-cache when moving shard to DEGRADED mode (#1825)
|
- Flush write-cache when moving shard to DEGRADED mode (#1825)
|
||||||
|
- Make `morph.cache_ttl` default value equal to morph block time (#1846)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Description of command `netmap nodeinfo` (#1821)
|
- Description of command `netmap nodeinfo` (#1821)
|
||||||
|
|
|
@ -28,7 +28,9 @@ const (
|
||||||
// PriorityDefault is a default endpoint priority for the morph client.
|
// PriorityDefault is a default endpoint priority for the morph client.
|
||||||
PriorityDefault = 1
|
PriorityDefault = 1
|
||||||
|
|
||||||
CacheTTLDefault = 30 * time.Second
|
// CacheTTLDefault is a default value for cached values TTL.
|
||||||
|
// It is 0, because actual default depends on block time.
|
||||||
|
CacheTTLDefault = time.Duration(0)
|
||||||
)
|
)
|
||||||
|
|
||||||
// RPCEndpoint returns list of the values of "rpc_endpoint" config parameter
|
// RPCEndpoint returns list of the values of "rpc_endpoint" config parameter
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/block"
|
"github.com/nspcc-dev/neo-go/pkg/core/block"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/state"
|
"github.com/nspcc-dev/neo-go/pkg/core/state"
|
||||||
|
@ -89,7 +90,14 @@ func initMorphComponents(c *cfg) {
|
||||||
|
|
||||||
c.cfgMorph.cacheTTL = morphconfig.CacheTTL(c.appCfg)
|
c.cfgMorph.cacheTTL = morphconfig.CacheTTL(c.appCfg)
|
||||||
|
|
||||||
if c.cfgMorph.cacheTTL <= 0 {
|
if c.cfgMorph.cacheTTL == 0 {
|
||||||
|
msPerBlock, err := c.cfgMorph.client.MsPerBlock()
|
||||||
|
fatalOnErr(err)
|
||||||
|
c.cfgMorph.cacheTTL = time.Duration(msPerBlock) * time.Millisecond
|
||||||
|
c.log.Debug("morph.cache_ttl fetched from network", zap.Duration("value", c.cfgMorph.cacheTTL))
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.cfgMorph.cacheTTL < 0 {
|
||||||
netmapSource = wrap
|
netmapSource = wrap
|
||||||
} else {
|
} else {
|
||||||
// use RPC node as source of netmap (with caching)
|
// use RPC node as source of netmap (with caching)
|
||||||
|
|
|
@ -82,6 +82,7 @@ contracts: # side chain NEOFS contract script hashes; optional, override values
|
||||||
morph:
|
morph:
|
||||||
dial_timeout: 30s # timeout for side chain NEO RPC client connection
|
dial_timeout: 30s # timeout for side chain NEO RPC client connection
|
||||||
cache_ttl: 15s # Sidechain cache TTL value (min interval between similar calls). Negative value disables caching.
|
cache_ttl: 15s # Sidechain cache TTL value (min interval between similar calls). Negative value disables caching.
|
||||||
|
# Default value: block time. It is recommended to have this value less or equal to block time.
|
||||||
# Cached entities: containers, container lists, eACL tables.
|
# Cached entities: containers, container lists, eACL tables.
|
||||||
rpc_endpoint: # side chain NEO RPC endpoints; are shuffled and used one by one until the first success
|
rpc_endpoint: # side chain NEO RPC endpoints; are shuffled and used one by one until the first success
|
||||||
- address: wss://rpc1.morph.fs.neo.org:40341/ws
|
- address: wss://rpc1.morph.fs.neo.org:40341/ws
|
||||||
|
|
|
@ -139,11 +139,11 @@ morph:
|
||||||
priority: 2
|
priority: 2
|
||||||
```
|
```
|
||||||
|
|
||||||
| Parameter | Type | Default value | Description |
|
| Parameter | Type | Default value | Description |
|
||||||
|----------------|-----------------------------------------------------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|----------------|-----------------------------------------------------------|------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `dial_timeout` | `duration` | `5s` | Timeout for dialing connections to N3 RPCs. |
|
| `dial_timeout` | `duration` | `5s` | Timeout for dialing connections to N3 RPCs. |
|
||||||
| `cache_ttl` | `duration` | `30s` | Sidechain cache TTL value (min interval between similar calls).<br/>Negative value disables caching.<br/>Cached entities: containers, container lists, eACL tables. |
|
| `cache_ttl` | `duration` | Morph block time | Sidechain cache TTL value (min interval between similar calls).<br/>Negative value disables caching.<br/>Cached entities: containers, container lists, eACL tables. |
|
||||||
| `rpc_endpoint` | list of [endpoint descriptions](#rpc_endpoint-subsection) | | Array of endpoint descriptions. |
|
| `rpc_endpoint` | list of [endpoint descriptions](#rpc_endpoint-subsection) | | Array of endpoint descriptions. |
|
||||||
|
|
||||||
## `rpc_endpoint` subsection
|
## `rpc_endpoint` subsection
|
||||||
| Parameter | Type | Default value | Description |
|
| Parameter | Type | Default value | Description |
|
||||||
|
|
Loading…
Reference in a new issue