diff --git a/cmd/http-gw/settings.go b/cmd/http-gw/settings.go index 6708ad4..ca01158 100644 --- a/cmd/http-gw/settings.go +++ b/cmd/http-gw/settings.go @@ -96,6 +96,10 @@ const ( // Runtime. cfgSoftMemoryLimit = "runtime.soft_memory_limit" + // Configuration of parameters of requests to FrostFS. + // Sets max attempt to make successful tree request. + cfgTreePoolMaxAttempts = "frostfs.tree_pool_max_attempts" + // Command line args. cmdHelp = "help" cmdVersion = "version" @@ -461,6 +465,8 @@ func getPools(ctx context.Context, logger *zap.Logger, cfg *viper.Viper) (*pool. prm.SetLogger(logger) prmTree.SetLogger(logger) + prmTree.SetMaxRequestAttempts(cfg.GetInt(cfgTreePoolMaxAttempts)) + var apiGRPCDialOpts []grpc.DialOption var treeGRPCDialOpts []grpc.DialOption if cfg.GetBool(cfgTracingEnabled) { diff --git a/config/config.env b/config/config.env index 62920a2..7978a79 100644 --- a/config/config.env +++ b/config/config.env @@ -98,3 +98,7 @@ HTTP_GW_TRACING_ENDPOINT="localhost:4317" HTTP_GW_TRACING_EXPORTER="otlp_grpc" HTTP_GW_RUNTIME_SOFT_MEMORY_LIMIT=1073741824 + +# Max attempt to make successful tree request. +# default value is 0 that means the number of attempts equals to number of nodes in pool. +HTTP_GW_FROSTFS_TREE_POOL_MAX_ATTEMPTS=0 diff --git a/config/config.yaml b/config/config.yaml index d2804d6..cffd9c2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -104,3 +104,8 @@ zip: runtime: soft_memory_limit: 1gb + +frostfs: + # Max attempt to make successful tree request. + # default value is 0 that means the number of attempts equals to number of nodes in pool. + tree_pool_max_attempts: 0 diff --git a/docs/gate-configuration.md b/docs/gate-configuration.md index 95e6c8e..5f74f5a 100644 --- a/docs/gate-configuration.md +++ b/docs/gate-configuration.md @@ -54,6 +54,7 @@ $ cat http.log | `prometheus` | [Prometheus configuration](#prometheus-section) | | `tracing` | [Tracing configuration](#tracing-section) | | `runtime` | [Runtime configuration](#runtime-section) | +| `frostfs` | [Parameters of requests to FrostFS](#frostfs-section) | # General section @@ -268,4 +269,17 @@ runtime: | Parameter | Type | SIGHUP reload | Default value | Description | |---------------------|--------|---------------|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `soft_memory_limit` | `size` | yes | maxint64 | Soft memory limit for the runtime. Zero or no value stands for no limit. If `GOMEMLIMIT` environment variable is set, the value from the configuration file will be ignored. | \ No newline at end of file +| `soft_memory_limit` | `size` | yes | maxint64 | Soft memory limit for the runtime. Zero or no value stands for no limit. If `GOMEMLIMIT` environment variable is set, the value from the configuration file will be ignored. | + +# `frostfs` section + +Contains parameters of requests to FrostFS. + +```yaml +frostfs: + tree_pool_max_attempts: 0 +``` + +| Parameter | Type | SIGHUP reload | Default value | Description | +|--------------------------|----------|---------------|---------------|---------------------------------------------------------------------------------------------------------------------------| +| `tree_pool_max_attempts` | `uint32` | no | `0` | Sets max attempt to make successful tree request. Value 0 means the number of attempts equals to number of nodes in pool. |