From 154043e76b0561c28465db4f3f903d618963289f Mon Sep 17 00:00:00 2001
From: "abby.huang" <78209557+abby-cyber@users.noreply.github.com>
Date: Tue, 28 Feb 2023 11:17:04 +0800
Subject: [PATCH] dynamic-changes-to-configs (#1974)
* dynamic-changes-to-configs
* updates
* Update 1.configurations.md
---
.../1.configurations/.1.get-configurations.md | 36 ----
.../1.configurations/.5.console-config.md | 10 --
.../1.configurations/1.configurations.md | 26 +++
.../1.configurations/2.meta-config.md | 92 +++++-----
.../1.configurations/3.graph-config.md | 164 +++++++++---------
.../1.configurations/4.storage-config.md | 164 +++++++++---------
6 files changed, 242 insertions(+), 250 deletions(-)
delete mode 100644 docs-2.0/5.configurations-and-logs/1.configurations/.1.get-configurations.md
delete mode 100644 docs-2.0/5.configurations-and-logs/1.configurations/.5.console-config.md
diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/.1.get-configurations.md b/docs-2.0/5.configurations-and-logs/1.configurations/.1.get-configurations.md
deleted file mode 100644
index f49843221fd..00000000000
--- a/docs-2.0/5.configurations-and-logs/1.configurations/.1.get-configurations.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Get configurations
-
-This document gives some methods to get configurations in NebulaGraph.
-
-!!! note
-
- You must use ONLY ONE method in one cluster. To avoid errors, we suggest that you get configurations from local.
-
-## Get configurations from local
-
-Add `--local_config=true` to the top of each configuration file (the default path is `/usr/local/nebula/etc/`). Restart all the NebulaGraph services to make your modifications take effect. We suggest that new users use this method.
-
-## Get configuration from Meta Service
-
-To get configuration from Meta Service, set the `--local_config` parameter to `false` or use the default configuration files.
-
-When the services are started for the first time, NebulaGraph reads the configurations from local and then persists them in the Meta Service. Once the Meta Service is persisted, NebulaGraph reads configurations only from the Meta Service, even you restart NebulaGraph.
-
-## FAQ
-
-## How to modify configurations
-
-You can modify NebulaGraph configurations by using these methods:
-
-- Modify configurations by using `UPDATE CONFIG`. For more information see UPDATE CONFIG (doc TODO).
-- Modify configurations by configuring the configuration files. For more information, see [Get configuration from local](#get_configuration_from_local).
-
-## What is the configuration priority and how to modify it
-
-The **default** configuration reading precedence is Meta Service > `UPDATE CONFIG`> configuration files.
-
-When `--local_config` is set to `true`, the configuration reading precedence is configuration files > Meta Service.
-
-!!! danger
-
- Don't use `UPDATE CONFIG` to update configurations when `--local_config` is set to `true`.
diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/.5.console-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/.5.console-config.md
deleted file mode 100644
index 8889872658f..00000000000
--- a/docs-2.0/5.configurations-and-logs/1.configurations/.5.console-config.md
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/1.configurations.md b/docs-2.0/5.configurations-and-logs/1.configurations/1.configurations.md
index dbf32455204..f42fe2bfab0 100644
--- a/docs-2.0/5.configurations-and-logs/1.configurations/1.configurations.md
+++ b/docs-2.0/5.configurations-and-logs/1.configurations/1.configurations.md
@@ -104,6 +104,14 @@ For clusters installed with Kubectl through NebulaGraph Operator, the configurat
## Modify configurations
+You can modify the configurations of NebulaGraph in the configuration file or use commands to dynamically modify configurations.
+
+!!! caution
+
+ Using both methods to modify the configuration can cause the configuration information to be managed inconsistently, which may result in confusion. It is recommended to only use the configuration file to manage the configuration, or to make the same modifications to the configuration file after dynamically updating the configuration through commands to ensure consistency.
+
+### Modifying configurations in the configuration file
+
By default, each NebulaGraph service gets configured from its configuration files. You can modify configurations and make them valid according to the following steps:
* For clusters installed from source, with a RPM/DEB, or a TAR package
@@ -120,3 +128,21 @@ By default, each NebulaGraph service gets configured from its configuration file
* For clusters installed with Kubectl
For details, see [Customize configuration parameters for a NebulaGraph cluster](../../nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md).
+
+### Dynamically modifying configurations using command
+
+You can dynamically modify the configuration of NebulaGraph by using the curl command. For example, to modify the `wal_ttl` parameter of the Storage service to `600`, use the following command:
+
+```bash
+curl -X PUT -H "Content-Type: application/json" -d'{"wal_ttl":"600"}' -s "http://192.168.15.6:19779/flags"
+```
+
+In this command, ` {"wal_ttl":"600"}` specifies the configuration parameter and its value to be modified, and `192.168.15.6:19779` specifies the IP address and HTTP port number of the Storage service.
+
+!!! caution
+
+ - The functionality of dynamically modifying configurations is only applicable to prototype verification and testing environments. It is not recommended to use this feature in production environments. This is because when the `local_config` value is set to `true`, the dynamically modified configuration is not persisted, and the configuration will be restored to the initial configuration after the service is restarted.
+
+ - Only **part of** the configuration parameters can be dynamically modified. For the specific list of parameters that can be modified, see the description of **Whether supports runtime dynamic modifications** in the respective service configuration.
+
+
diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md
index 2d85008992b..d5344a0ab9d 100644
--- a/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md
+++ b/docs-2.0/5.configurations-and-logs/1.configurations/2.meta-config.md
@@ -15,20 +15,24 @@ To use the initial configuration file, choose one of the above two files and del
If a parameter is not set in the configuration file, NebulaGraph uses the default value. Not all parameters are predefined. And the predefined parameters in the two initial configuration files are different. This topic uses the parameters in `nebula-metad.conf.default`.
+!!! caution
+
+ Some parameter values in the configuration file can be dynamically modified during runtime. We label these parameters as **Yes** that supports runtime dynamic modification in this article. When the `local_config` value is set to `true`, the dynamically modified configuration is not persisted, and the configuration will be restored to the initial configuration after the service is restarted. For more information, see [Modify configurations](1.configurations.md).
+
For all parameters and their current values, see [Configurations](1.configurations.md).
## Basics configurations
-| Name | Predefined value | Description |
-| ----------- | ----------------------- | ---------------------------------------------------- |
-| `daemonize` | `true` | When set to `true`, the process is a daemon process. |
-| `pid_file` | `pids/nebula-metad.pid` | The file that records the process ID. |
-| `timezone_name` | - | Specifies the NebulaGraph time zone. This parameter is not predefined in the initial configuration files. You can manually set it if you need it. The system default value is `UTC+00:00:00`. For the format of the parameter value, see [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual"). For example, `--timezone_name=UTC+08:00` represents the GMT+8 time zone.|
+| Name | Predefined value | Description | Whether supports runtime dynamic modifications|
+| ----------- | ----------------------- | ---------------------------------------------------- |-------------------- |
+| `daemonize` | `true` | When set to `true`, the process is a daemon process. | No|
+| `pid_file` | `pids/nebula-metad.pid` | The file that records the process ID. | No|
+| `timezone_name` | - | Specifies the NebulaGraph time zone. This parameter is not predefined in the initial configuration files. You can manually set it if you need it. The system default value is `UTC+00:00:00`. For the format of the parameter value, see [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual"). For example, `--timezone_name=UTC+08:00` represents the GMT+8 time zone.|No|
{{ ent.ent_begin }}
-| Name | Predefined value | Description |
-| ----------- | ----------------------- | ---------------------------------------------------- |
-|`license_path`|`share/resources/nebula.license`| Path of the license of the NebulaGraph Enterprise Edition. Users need to [deploy a license file](../../4.deployment-and-installation/deploy-license.md) before starting the Enterprise Edition. This parameter is required only for the NebulaGraph Enterprise Edition. For details about how to configure licenses for other ecosystem tools, see the deployment documents of the corresponding ecosystem tools.|
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ----------- | ----------------------- | ---------------------------------------------------- |----------------- |
+|`license_path`|`share/resources/nebula.license`| Path of the license of the NebulaGraph Enterprise Edition. Users need to [deploy a license file](../../4.deployment-and-installation/deploy-license.md) before starting the Enterprise Edition. This parameter is required only for the NebulaGraph Enterprise Edition. For details about how to configure licenses for other ecosystem tools, see the deployment documents of the corresponding ecosystem tools.| No|
{{ ent.ent_end }}
@@ -39,29 +43,29 @@ For all parameters and their current values, see [Configurations](1.configuratio
## Logging configurations
-| Name | Predefined value | Description |
-| :------------- | :------------------------ | :------------------------------------------------ |
-| `log_dir` | `logs` | The directory that stores the Meta Service log. It is recommended to put logs on a different hard disk from the data. |
-| `minloglevel` | `0` | Specifies the minimum level of the log. That is, log messages at or above this level. Optional values are `0` (INFO), `1` (WARNING), `2` (ERROR), `3` (FATAL). It is recommended to set it to `0` during debugging and `1` in a production environment. If it is set to `4`, NebulaGraph will not print any logs. |
-| `v` | `0` | Specifies the detailed level of VLOG. That is, log all VLOG messages less or equal to the level. Optional values are `0`, `1`, `2`, `3`, `4`, `5`. The VLOG macro provided by glog allows users to define their own numeric logging levels and control verbose messages that are logged with the parameter `v`. For details, see [Verbose Logging](https://github.com/google/glog#verbose-logging).|
-| `logbufsecs` | `0` | Specifies the maximum time to buffer the logs. If there is a timeout, it will output the buffered log to the log file. `0` means real-time output. This configuration is measured in seconds. |
-|`redirect_stdout` |`true` | When set to `true`, the process redirects the`stdout` and `stderr` to separate output files. |
-|`stdout_log_file` |`metad-stdout.log` | Specifies the filename for the `stdout` log. |
-|`stderr_log_file` |`metad-stderr.log` | Specifies the filename for the `stderr` log. |
-|`stderrthreshold` | `3` | Specifies the `minloglevel` to be copied to the `stderr` log. |
-| `timestamp_in_logfile_name` | `true` | Specifies if the log file name contains a timestamp. `true` indicates yes, `false` indicates no. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :------------- | :------------------------ | :------------------------------------------------ |:----------------- |
+| `log_dir` | `logs` | The directory that stores the Meta Service log. It is recommended to put logs on a different hard disk from the data. | No|
+| `minloglevel` | `0` | Specifies the minimum level of the log. That is, log messages at or above this level. Optional values are `0` (INFO), `1` (WARNING), `2` (ERROR), `3` (FATAL). It is recommended to set it to `0` during debugging and `1` in a production environment. If it is set to `4`, NebulaGraph will not print any logs. | Yes|
+| `v` | `0` | Specifies the detailed level of VLOG. That is, log all VLOG messages less or equal to the level. Optional values are `0`, `1`, `2`, `3`, `4`, `5`. The VLOG macro provided by glog allows users to define their own numeric logging levels and control verbose messages that are logged with the parameter `v`. For details, see [Verbose Logging](https://github.com/google/glog#verbose-logging).| Yes|
+| `logbufsecs` | `0` | Specifies the maximum time to buffer the logs. If there is a timeout, it will output the buffered log to the log file. `0` means real-time output. This configuration is measured in seconds. | No|
+|`redirect_stdout` |`true` | When set to `true`, the process redirects the`stdout` and `stderr` to separate output files. | No|
+|`stdout_log_file` |`metad-stdout.log` | Specifies the filename for the `stdout` log. | No|
+|`stderr_log_file` |`metad-stderr.log` | Specifies the filename for the `stderr` log. | No|
+|`stderrthreshold` | `3` | Specifies the `minloglevel` to be copied to the `stderr` log. | No|
+| `timestamp_in_logfile_name` | `true` | Specifies if the log file name contains a timestamp. `true` indicates yes, `false` indicates no. | No|
## Networking configurations
-| Name | Predefined value | Description |
-| :----------------------- | :---------------- | :---------------------------------------------------- |
-| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IP addresses and ports of all Meta Services. Multiple addresses are separated with commas. |
-|`local_ip` | `127.0.0.1` | Specifies the local IP for the Meta Service. The local IP address is used to identify the nebula-metad process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.|
-| `port` | `9559` | Specifies RPC daemon listening port of the Meta service. The external port for the Meta Service is predefined to `9559`. The internal port is predefined to `port + 1`, i.e., `9560`. Nebula Graph uses the internal port for multi-replica interactions. |
-| `ws_ip` | `0.0.0.0` | Specifies the IP address for the HTTP service. |
-| `ws_http_port` | `19559` | Specifies the port for the HTTP service. |
-|`ws_storage_http_port`|`19779`| Specifies the Storage service listening port used by the HTTP protocol. It must be consistent with the `ws_http_port` in the Storage service configuration file. This parameter only applies to standalone NebulaGraph.|
-|`heartbeat_interval_secs` | `10` | Specifies the default heartbeat interval. Make sure the `heartbeat_interval_secs` values for all services are the same, otherwise NebulaGraph **CANNOT** work normally. This configuration is measured in seconds. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :----------------------- | :---------------- | :---------------------------------------------------- |:----------------- |
+| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IP addresses and ports of all Meta Services. Multiple addresses are separated with commas. | No|
+|`local_ip` | `127.0.0.1` | Specifies the local IP for the Meta Service. The local IP address is used to identify the nebula-metad process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.| No|
+| `port` | `9559` | Specifies RPC daemon listening port of the Meta service. The external port for the Meta Service is predefined to `9559`. The internal port is predefined to `port + 1`, i.e., `9560`. Nebula Graph uses the internal port for multi-replica interactions. | No|
+| `ws_ip` | `0.0.0.0` | Specifies the IP address for the HTTP service. | No|
+| `ws_http_port` | `19559` | Specifies the port for the HTTP service. | No|
+|`ws_storage_http_port`|`19779`| Specifies the Storage service listening port used by the HTTP protocol. It must be consistent with the `ws_http_port` in the Storage service configuration file. This parameter only applies to standalone NebulaGraph.| No|
+|`heartbeat_interval_secs` | `10` | Specifies the default heartbeat interval. Make sure the `heartbeat_interval_secs` values for all services are the same, otherwise NebulaGraph **CANNOT** work normally. This configuration is measured in seconds. | Yes|
!!! caution
@@ -69,22 +73,22 @@ For all parameters and their current values, see [Configurations](1.configuratio
## Storage configurations
-| Name | Predefined Value | Description |
-| :------------------- | :------------------------ | :------------------------------------------ |
-| `data_path` | `data/meta` | The storage path for Meta data. |
+| Name | Predefined Value | Description |Whether supports runtime dynamic modifications|
+| :------------------- | :------------------------ | :------------------------------------------ |:----------------- |
+| `data_path` | `data/meta` | The storage path for Meta data. | No|
## Misc configurations
-| Name | Predefined Value | Description |
-| :------------------------- | :-------------------- | :---------------------------------------------------------------------------- |
-|`default_parts_num` | `100` | Specifies the default partition number when creating a new graph space. |
-|`default_replica_factor` | `1` | Specifies the default replica number when creating a new graph space. |
+| Name | Predefined Value | Description |Whether supports runtime dynamic modifications|
+| :------------------------- | :-------------------- | :---------------------------------------------------------------------------- |:----------------- |
+|`default_parts_num` | `100` | Specifies the default partition number when creating a new graph space. | No|
+|`default_replica_factor` | `1` | Specifies the default replica number when creating a new graph space. | No|
## RocksDB options configurations
-| Name | Predefined Value | Description |
-| :--------------- | :----------------- | :---------------------------------------- |
-|`rocksdb_wal_sync`| `true` | Enables or disables RocksDB WAL synchronization. Available values are `true` (enable) and `false` (disable).|
+| Name | Predefined Value | Description |Whether supports runtime dynamic modifications|
+| :--------------- | :----------------- | :---------------------------------------- |:----------------- |
+|`rocksdb_wal_sync`| `true` | Enables or disables RocksDB WAL synchronization. Available values are `true` (enable) and `false` (disable).| No|
{{ ent.ent_begin }}
## Black box configurations
@@ -93,11 +97,11 @@ For all parameters and their current values, see [Configurations](1.configuratio
The Nebula-BBox configurations are for the Enterprise Edition only.
-| Name | Predefined Value | Description |
-| :------------------- | :------------------------ | :------------------------------------------ |
-|`ng_black_box_switch` |`true` |Whether to enable the [Nebula-BBox](../../6.monitor-and-metrics/3.bbox/3.1.bbox.md) feature.|
-|`ng_black_box_home` |`black_box` |The name of the directory to store Nebula-BBox file data.|
-|`ng_black_box_dump_period_seconds` |`5` |The time interval for Nebula-BBox to collect metric data. Unit: Second.|
-|`ng_black_box_file_lifetime_seconds` |`1800` |Storage time for Nebula-BBox files generated after collecting metric data. Unit: Second.|
+| Name | Predefined Value | Description |Whether supports runtime dynamic modifications|
+| :------------------- | :------------------------ | :------------------------------------------ |:----------------- |
+|`ng_black_box_switch` |`true` |Whether to enable the [Nebula-BBox](../../6.monitor-and-metrics/3.bbox/3.1.bbox.md) feature.| No|
+|`ng_black_box_home` |`black_box` |The name of the directory to store Nebula-BBox file data.| No|
+|`ng_black_box_dump_period_seconds` |`5` |The time interval for Nebula-BBox to collect metric data. Unit: Second.| No|
+|`ng_black_box_file_lifetime_seconds` |`1800` |Storage time for Nebula-BBox files generated after collecting metric data. Unit: Second.| Yes|
{{ ent.ent_end }}
\ No newline at end of file
diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/3.graph-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/3.graph-config.md
index 85d0e003b42..1e667b8bef0 100644
--- a/docs-2.0/5.configurations-and-logs/1.configurations/3.graph-config.md
+++ b/docs-2.0/5.configurations-and-logs/1.configurations/3.graph-config.md
@@ -15,17 +15,21 @@ To use the initial configuration file, choose one of the above two files and del
If a parameter is not set in the configuration file, NebulaGraph uses the default value. Not all parameters are predefined. And the predefined parameters in the two initial configuration files are different. This topic uses the parameters in `nebula-metad.conf.default`.
+!!! caution
+
+ Some parameter values in the configuration file can be dynamically modified during runtime. We label these parameters as **Yes** that supports runtime dynamic modification in this article. When the `local_config` value is set to `true`, the dynamically modified configuration is not persisted, and the configuration will be restored to the initial configuration after the service is restarted. For more information, see [Modify configurations](1.configurations.md).
+
For all parameters and their current values, see [Configurations](1.configurations.md).
## Basics configurations
-| Name | Predefined value | Description |
-| ----------------- | ----------------------- | ------------------|
-| `daemonize` | `true` | When set to `true`, the process is a daemon process. |
-| `pid_file` | `pids/nebula-graphd.pid`| The file that records the process ID. |
-|`enable_optimizer` |`true` | When set to `true`, the optimizer is enabled. |
-| `timezone_name` | - | Specifies the NebulaGraph time zone. This parameter is not predefined in the initial configuration files. The system default value is `UTC+00:00:00`. For the format of the parameter value, see [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual"). For example, `--timezone_name=UTC+08:00` represents the GMT+8 time zone. |
-| `local_config` | `true` | When set to `true`, the process gets configurations from the configuration files. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ----------------- | ----------------------- | ------------------|------------------|
+| `daemonize` | `true` | When set to `true`, the process is a daemon process. | No|
+| `pid_file` | `pids/nebula-graphd.pid`| The file that records the process ID. | No|
+|`enable_optimizer` |`true` | When set to `true`, the optimizer is enabled. | No|
+| `timezone_name` | - | Specifies the NebulaGraph time zone. This parameter is not predefined in the initial configuration files. The system default value is `UTC+00:00:00`. For the format of the parameter value, see [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual"). For example, `--timezone_name=UTC+08:00` represents the GMT+8 time zone. | No|
+| `local_config` | `true` | When set to `true`, the process gets configurations from the configuration files. | No|
!!! note
@@ -34,49 +38,49 @@ For all parameters and their current values, see [Configurations](1.configuratio
## Logging configurations
-| Name | Predefined value | Description |
-| ------------- | ------------------------ | ------------------------------------------------ |
-| `log_dir` | `logs` | The directory that stores the Meta Service log. It is recommended to put logs on a different hard disk from the data. |
-| `minloglevel` | `0` | Specifies the minimum level of the log. That is, log messages at or above this level. Optional values are `0` (INFO), `1` (WARNING), `2` (ERROR), `3` (FATAL). It is recommended to set it to `0` during debugging and `1` in a production environment. If it is set to `4`, NebulaGraph will not print any logs. |
-| `v` | `0` | Specifies the detailed level of VLOG. That is, log all VLOG messages less or equal to the level. Optional values are `0`, `1`, `2`, `3`, `4`, `5`. The VLOG macro provided by glog allows users to define their own numeric logging levels and control verbose messages that are logged with the parameter `v`. For details, see [Verbose Logging](https://github.com/google/glog#verbose-logging).|
-| `logbufsecs` | `0` | Specifies the maximum time to buffer the logs. If there is a timeout, it will output the buffered log to the log file. `0` means real-time output. This configuration is measured in seconds. |
-|`redirect_stdout` |`true` | When set to `true`, the process redirects the`stdout` and `stderr` to separate output files. |
-|`stdout_log_file` |`graphd-stdout.log` | Specifies the filename for the `stdout` log. |
-|`stderr_log_file` |`graphd-stderr.log` | Specifies the filename for the `stderr` log. |
-|`stderrthreshold` | `3` | Specifies the `minloglevel` to be copied to the `stderr` log. |
-| `timestamp_in_logfile_name` | `true` | Specifies if the log file name contains a timestamp. `true` indicates yes, `false` indicates no. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ------------- | ------------------------ | ------------------------------------------------ |------------------|
+| `log_dir` | `logs` | The directory that stores the Meta Service log. It is recommended to put logs on a different hard disk from the data. | No|
+| `minloglevel` | `0` | Specifies the minimum level of the log. That is, log messages at or above this level. Optional values are `0` (INFO), `1` (WARNING), `2` (ERROR), `3` (FATAL). It is recommended to set it to `0` during debugging and `1` in a production environment. If it is set to `4`, NebulaGraph will not print any logs. | Yes|
+| `v` | `0` | Specifies the detailed level of VLOG. That is, log all VLOG messages less or equal to the level. Optional values are `0`, `1`, `2`, `3`, `4`, `5`. The VLOG macro provided by glog allows users to define their own numeric logging levels and control verbose messages that are logged with the parameter `v`. For details, see [Verbose Logging](https://github.com/google/glog#verbose-logging).| Yes|
+| `logbufsecs` | `0` | Specifies the maximum time to buffer the logs. If there is a timeout, it will output the buffered log to the log file. `0` means real-time output. This configuration is measured in seconds. | No|
+|`redirect_stdout` |`true` | When set to `true`, the process redirects the`stdout` and `stderr` to separate output files. | No|
+|`stdout_log_file` |`graphd-stdout.log` | Specifies the filename for the `stdout` log. | No|
+|`stderr_log_file` |`graphd-stderr.log` | Specifies the filename for the `stderr` log. | No|
+|`stderrthreshold` | `3` | Specifies the `minloglevel` to be copied to the `stderr` log. | No|
+| `timestamp_in_logfile_name` | `true` | Specifies if the log file name contains a timestamp. `true` indicates yes, `false` indicates no. | No|
## Query configurations
-| Name | Predefined value | Description |
-| ----------------------------- | ------------------------ | ------------------------------------------ |
-|`accept_partial_success` |`false` | When set to `false`, the process treats partial success as an error. This configuration only applies to read-only requests. Write requests always treat partial success as an error. |
-|`session_reclaim_interval_secs`|`60` | Specifies the interval that the Session information is sent to the Meta service. This configuration is measured in seconds. |
-|`max_allowed_query_size` |`4194304` | Specifies the maximum length of queries. Unit: bytes. The default value is `4194304`, namely 4MB.|
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ----------------------------- | ------------------------ | ------------------------------------------ |------------------|
+|`accept_partial_success` |`false` | When set to `false`, the process treats partial success as an error. This configuration only applies to read-only requests. Write requests always treat partial success as an error. | Yes|
+|`session_reclaim_interval_secs`|`60` | Specifies the interval that the Session information is sent to the Meta service. This configuration is measured in seconds. | Yes|
+|`max_allowed_query_size` |`4194304` | Specifies the maximum length of queries. Unit: bytes. The default value is `4194304`, namely 4MB.| Yes|
## Networking configurations
-| Name | Predefined value | Description |
-| ----------------------- | ---------------- | ---------------------------------------------------- |
-| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IP addresses and ports of all Meta Services. Multiple addresses are separated with commas.|
-|`local_ip` | `127.0.0.1` | Specifies the local IP for the Graph Service. The local IP address is used to identify the nebula-graphd process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.|
-|`listen_netdev` |`any` | Specifies the listening network device. |
-| `port` | `9669` | Specifies RPC daemon listening port of the Graph service. |
-|`reuse_port` |`false` | When set to `false`, the `SO_REUSEPORT` is closed. |
-|`listen_backlog` |`1024` | Specifies the maximum length of the connection queue for socket monitoring. This configuration must be modified together with the `net.core.somaxconn`. |
-|`client_idle_timeout_secs` |`28800` | Specifies the time to expire an idle connection. The value ranges from 1 to 604800. The default is 8 hours. This configuration is measured in seconds. |
-|`session_idle_timeout_secs` |`28800` | Specifies the time to expire an idle session. The value ranges from 1 to 604800. The default is 8 hours. This configuration is measured in seconds. |
-|`num_accept_threads` |`1` | Specifies the number of threads that accept incoming connections. |
-|`num_netio_threads` |`0` | Specifies the number of networking IO threads. `0` is the number of CPU cores. |
-|`num_worker_threads` |`0` | Specifies the number of threads that execute queries. `0` is the number of CPU cores. |
-| `ws_ip` | `0.0.0.0` | Specifies the IP address for the HTTP service. |
-| `ws_http_port` | `19669` | Specifies the port for the HTTP service. |
-|`heartbeat_interval_secs` | `10` | Specifies the default heartbeat interval. Make sure the `heartbeat_interval_secs` values for all services are the same, otherwise NebulaGraph **CANNOT** work normally. This configuration is measured in seconds. |
-|`storage_client_timeout_ms` |-| Specifies the RPC connection timeout threshold between the Graph Service and the Storage Service. This parameter is not predefined in the initial configuration files. You can manually set it if you need it. The system default value is `60000` ms. |
-|`enable_record_slow_query`|`true`|Whether to record slow queries.
Only available in NebulaGraph Enterprise Edition.|
-|`slow_query_limit`|`100`|The maximum number of slow queries that can be recorded.
Only available in NebulaGraph Enterprise Edition.|
-|`slow_query_threshold_us`|`200000`|When the execution time of a query exceeds the value, the query is called a slow query. Unit: Microsecond.|
-|`ws_meta_http_port` |`19559`| Specifies the Meta service listening port used by the HTTP protocol. It must be consistent with the `ws_http_port` in the Meta service configuration file.|
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ----------------------- | ---------------- | ---------------------------------------------------- |------------------|
+| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IP addresses and ports of all Meta Services. Multiple addresses are separated with commas.| No|
+|`local_ip` | `127.0.0.1` | Specifies the local IP for the Graph Service. The local IP address is used to identify the nebula-graphd process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.| No|
+|`listen_netdev` |`any` | Specifies the listening network device. | No|
+| `port` | `9669` | Specifies RPC daemon listening port of the Graph service. | No|
+|`reuse_port` |`false` | When set to `false`, the `SO_REUSEPORT` is closed. | No|
+|`listen_backlog` |`1024` | Specifies the maximum length of the connection queue for socket monitoring. This configuration must be modified together with the `net.core.somaxconn`. | No|
+|`client_idle_timeout_secs` |`28800` | Specifies the time to expire an idle connection. The value ranges from 1 to 604800. The default is 8 hours. This configuration is measured in seconds. | No|
+|`session_idle_timeout_secs` |`28800` | Specifies the time to expire an idle session. The value ranges from 1 to 604800. The default is 8 hours. This configuration is measured in seconds. | No|
+|`num_accept_threads` |`1` | Specifies the number of threads that accept incoming connections. | No|
+|`num_netio_threads` |`0` | Specifies the number of networking IO threads. `0` is the number of CPU cores. | No|
+|`num_worker_threads` |`0` | Specifies the number of threads that execute queries. `0` is the number of CPU cores. | No|
+| `ws_ip` | `0.0.0.0` | Specifies the IP address for the HTTP service. | No|
+| `ws_http_port` | `19669` | Specifies the port for the HTTP service. | No|
+|`heartbeat_interval_secs` | `10` | Specifies the default heartbeat interval. Make sure the `heartbeat_interval_secs` values for all services are the same, otherwise NebulaGraph **CANNOT** work normally. This configuration is measured in seconds. | Yes|
+|`storage_client_timeout_ms` |-| Specifies the RPC connection timeout threshold between the Graph Service and the Storage Service. This parameter is not predefined in the initial configuration files. You can manually set it if you need it. The system default value is `60000` ms. | No|
+|`enable_record_slow_query`|`true`|Whether to record slow queries.
Only available in NebulaGraph Enterprise Edition.| No|
+|`slow_query_limit`|`100`|The maximum number of slow queries that can be recorded.
Only available in NebulaGraph Enterprise Edition.| No|
+|`slow_query_threshold_us`|`200000`|When the execution time of a query exceeds the value, the query is called a slow query. Unit: Microsecond.| No|
+|`ws_meta_http_port` |`19559`| Specifies the Meta service listening port used by the HTTP protocol. It must be consistent with the `ws_http_port` in the Meta service configuration file.| No|
!!! caution
@@ -84,23 +88,23 @@ For all parameters and their current values, see [Configurations](1.configuratio
## Charset and collate configurations
-| Name | Predefined value | Description |
-| ---------------- | ------------------ | -------------------------------------------------------------- |
-|`default_charset` | `utf8` | Specifies the default charset when creating a new graph space. |
-|`default_collate` | `utf8_bin` | Specifies the default collate when creating a new graph space. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ---------------- | ------------------ | -------------------------------------------------------------- |------------------|
+|`default_charset` | `utf8` | Specifies the default charset when creating a new graph space. | No|
+|`default_collate` | `utf8_bin` | Specifies the default collate when creating a new graph space. | No|
## Authorization configurations
-| Name | Predefined value | Description |
-| ------------------- | ---------------- | ------------------------------------------ |
-|`enable_authorize` |`false` |When set to `false`, the system authentication is not enabled. For more information, see [Authentication](../../7.data-security/1.authentication/1.authentication.md).|
-|`auth_type` |`password` |Specifies the login method. Available values are `password`, `ldap`, and `cloud`.|
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ------------------- | ---------------- | ------------------------------------------ |------------------|
+|`enable_authorize` |`false` |When set to `false`, the system authentication is not enabled. For more information, see [Authentication](../../7.data-security/1.authentication/1.authentication.md).| No|
+|`auth_type` |`password` |Specifies the login method. Available values are `password`, `ldap`, and `cloud`.| No|
## Memory configurations
-| Name | Predefined value | Description |
-| ------------------- | ------------------------ | ------------------------------------------ |
-| `system_memory_high_watermark_ratio` | `0.8` | Specifies the trigger threshold of the high-level memory alarm mechanism. If the system memory usage is higher than this value, an alarm mechanism will be triggered, and NebulaGraph will stop querying. This parameter is not predefined in the initial configuration files. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ------------------- | ------------------------ | ------------------------------------------ |------------------|
+| `system_memory_high_watermark_ratio` | `0.8` | Specifies the trigger threshold of the high-level memory alarm mechanism. If the system memory usage is higher than this value, an alarm mechanism will be triggered, and NebulaGraph will stop querying. This parameter is not predefined in the initial configuration files. | Yes|
{{ ent.ent_begin }}
@@ -116,23 +120,23 @@ For more information about audit log, see [Audit log](../2.log-management/audit-
## Metrics configurations
-| Name | Predefined value | Description |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
| - | - | - |
-| `enable_space_level_metrics` | `false` | Enable or disable space-level metrics. Such metric names contain the name of the graph space that it monitors, for example, `query_latency_us{space=basketballplayer}.avg.3600`. You can view the supported metrics with the `curl` command. For more information, see [Query NebulaGraph metrics](../../6.monitor-and-metrics/1.query-performance-metrics.md). |
+| `enable_space_level_metrics` | `false` | Enable or disable space-level metrics. Such metric names contain the name of the graph space that it monitors, for example, `query_latency_us{space=basketballplayer}.avg.3600`. You can view the supported metrics with the `curl` command. For more information, see [Query NebulaGraph metrics](../../6.monitor-and-metrics/1.query-performance-metrics.md). | No|
-## session configurations
+## Session configurations
-| Name | Predefined value | Description |
-| ------------------- | ------------------------ | ------------------------------------------ |
-|`max_sessions_per_ip_per_user`|`300` | The maximum number of active sessions that can be created from a single IP adddress for a single user.|
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ------------------- | ------------------------ | ------------------------------------------ |------------------|
+|`max_sessions_per_ip_per_user`|`300` | The maximum number of active sessions that can be created from a single IP adddress for a single user.| No|
## Experimental configurations
-| Name | Predefined value | Description |
-| ------------------- | ------------------------ | ------------------------------------------ |
-|`enable_experimental_feature`|`false`| Specifies the experimental feature. Optional values are `true` and `false`. For currently supported experimental features, see below.|
-|`enable_data_balance`|`true`|Whether to enable the [BALANCE DATA](../../8.service-tuning/load-balance.md) feature. Only works when `enable_experimental_feature` is `true`. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| ------------------- | ------------------------ | ------------------------------------------ |------------------|
+|`enable_experimental_feature`|`false`| Specifies the experimental feature. Optional values are `true` and `false`. | No|
+|`enable_data_balance`|`true`|Whether to enable the [BALANCE DATA](../../8.service-tuning/load-balance.md) feature. Only works when `enable_experimental_feature` is `true`. | No|
{{ ent.ent_begin }}
@@ -143,23 +147,23 @@ For more information about audit log, see [Audit log](../2.log-management/audit-
The Nebula-BBox configurations are for the Enterprise Edition only.
-| Name | Predefined value | Description |
-| :------------------- | :------------------------ | :------------------------------------------ |
-|`ng_black_box_switch` |`true` |Whether to enable the [Nebula-BBox](../../6.monitor-and-metrics/3.bbox/3.1.bbox.md) feature.|
-|`ng_black_box_home` |`black_box` |The name of the directory to store Nebula-BBox file data.|
-|`ng_black_box_dump_period_seconds` |`5` |The time interval for Nebula-BBox to collect metric data. Unit: Second.|
-|`ng_black_box_file_lifetime_seconds` |`1800` |Storage time for Nebula-BBox files generated after collecting metric data. Unit: Second.|
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :------------------- | :------------------------ | :------------------------------------------ |------------------|
+|`ng_black_box_switch` |`true` |Whether to enable the [Nebula-BBox](../../6.monitor-and-metrics/3.bbox/3.1.bbox.md) feature.| No|
+|`ng_black_box_home` |`black_box` |The name of the directory to store Nebula-BBox file data.| No|
+|`ng_black_box_dump_period_seconds` |`5` |The time interval for Nebula-BBox to collect metric data. Unit: Second.| No|
+|`ng_black_box_file_lifetime_seconds` |`1800` |Storage time for Nebula-BBox files generated after collecting metric data. Unit: Second.| Yes|
{{ ent.ent_end }}
-## memory tracker configurations
+## Memory tracker configurations
-| Name | Predefined value | Description |
-| :------------------- | :------------------------ | :------------------------------------------ |
-|`memory_tracker_limit_ratio` |`0.8` | The percentage of free memory. When the free memory is lower than this value, NebulaGraph stops accepting queries.
Calculated as follows:
`Free memory / (Total memory - Reserved memory)`
**Note**: For clusters with a mixed-used environment, the value of `memory_tracker_limit_ratio` should be set to a **lower** value. For example, when Graphd is expected to occupy only 50% of memory, the value can be set to less than `0.5`.|
-|`memory_tracker_untracked_reserved_memory_mb` |`50`| The reserved memory that is not tracked by the memory tracker. Unit: MB.|
-|`memory_tracker_detail_log` |`false` | Whether to enable the memory tracker log. When the value is `true`, the memory tracker log is generated.|
-|`memory_tracker_detail_log_interval_ms` |`60000`| The time interval for generating the memory tracker log. Unit: Millisecond. `memory_tracker_detail_log` is `true` when this parameter takes effect.|
-|`memory_purge_enabled` |`true` |Whether to enable the memory purge feature. When the value is `true`, the memory purge feature is enabled.|
-|`memory_purge_interval_seconds` |`10` |The time interval for the memory purge feature to purge memory. Unit: Second. This parameter only takes effect if `memory_purge_enabled` is set to true.|
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :------------------- | :------------------------ | :------------------------------------------ |:------------------|
+|`memory_tracker_limit_ratio` |`0.8` | The percentage of free memory. When the free memory is lower than this value, NebulaGraph stops accepting queries.
Calculated as follows:
`Free memory / (Total memory - Reserved memory)`
**Note**: For clusters with a mixed-used environment, the value of `memory_tracker_limit_ratio` should be set to a **lower** value. For example, when Graphd is expected to occupy only 50% of memory, the value can be set to less than `0.5`.| Yes|
+|`memory_tracker_untracked_reserved_memory_mb` |`50`| The reserved memory that is not tracked by the memory tracker. Unit: MB.| Yes|
+|`memory_tracker_detail_log` |`false` | Whether to enable the memory tracker log. When the value is `true`, the memory tracker log is generated.| Yes|
+|`memory_tracker_detail_log_interval_ms` |`60000`| The time interval for generating the memory tracker log. Unit: Millisecond. `memory_tracker_detail_log` is `true` when this parameter takes effect.| Yes|
+|`memory_purge_enabled` |`true` |Whether to enable the memory purge feature. When the value is `true`, the memory purge feature is enabled.| Yes|
+|`memory_purge_interval_seconds` |`10` |The time interval for the memory purge feature to purge memory. Unit: Second. This parameter only takes effect if `memory_purge_enabled` is set to true.| Yes|
diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md
index 4f71423ac06..d775a6464e2 100644
--- a/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md
+++ b/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md
@@ -15,6 +15,10 @@ To use the initial configuration file, choose one of the above two files and del
If a parameter is not set in the configuration file, NebulaGraph uses the default value. Not all parameters are predefined. And the predefined parameters in the two initial configuration files are different. This topic uses the parameters in `nebula-metad.conf.default`. For parameters that are not included in `nebula-metad.conf.default`, see `nebula-storaged.conf.production`.
+!!! caution
+
+ Some parameter values in the configuration file can be dynamically modified during runtime. We label these parameters as **Yes** that supports runtime dynamic modification in this article. When the `local_config` value is set to `true`, the dynamically modified configuration is not persisted, and the configuration will be restored to the initial configuration after the service is restarted. For more information, see [Modify configurations](1.configurations.md).
+
!!! Note
The configurations of the Raft Listener and the Storage service are different. For details, see [Deploy Raft listener](../../4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md).
@@ -23,12 +27,12 @@ For all parameters and their current values, see [Configurations](1.configuratio
## Basics configurations
-| Name | Predefined value | Description |
-| :----------- | :----------------------- | :------------------|
-| `daemonize` | `true` | When set to `true`, the process is a daemon process. |
-| `pid_file` | `pids/nebula-storaged.pid` | The file that records the process ID. |
-| `timezone_name` | `UTC+00:00:00` | Specifies the NebulaGraph time zone. This parameter is not predefined in the initial configuration files, if you need to use this parameter, add it manually. For the format of the parameter value, see [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual"). For example, `--timezone_name=UTC+08:00` represents the GMT+8 time zone. |
-| `local_config` | `true` | When set to `true`, the process gets configurations from the configuration files. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :----------- | :----------------------- | :------------------|:------------------|
+| `daemonize` | `true` | When set to `true`, the process is a daemon process. | No|
+| `pid_file` | `pids/nebula-storaged.pid` | The file that records the process ID. | No|
+| `timezone_name` | `UTC+00:00:00` | Specifies the NebulaGraph time zone. This parameter is not predefined in the initial configuration files, if you need to use this parameter, add it manually. For the format of the parameter value, see [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual"). For example, `--timezone_name=UTC+08:00` represents the GMT+8 time zone. | No|
+| `local_config` | `true` | When set to `true`, the process gets configurations from the configuration files. | No|
!!! note
@@ -37,28 +41,28 @@ For all parameters and their current values, see [Configurations](1.configuratio
## Logging configurations
-| Name | Predefined value | Description |
-| :------------- | :------------------------ | :------------------------------------------------ |
-| `log_dir` | `logs` | The directory that stores the Meta Service log. It is recommended to put logs on a different hard disk from the data. |
-| `minloglevel` | `0` | Specifies the minimum level of the log. That is, log messages at or above this level. Optional values are `0` (INFO), `1` (WARNING), `2` (ERROR), `3` (FATAL). It is recommended to set it to `0` during debugging and `1` in a production environment. If it is set to `4`, NebulaGraph will not print any logs. |
-| `v` | `0` | Specifies the detailed level of VLOG. That is, log all VLOG messages less or equal to the level. Optional values are `0`, `1`, `2`, `3`, `4`, `5`. The VLOG macro provided by glog allows users to define their own numeric logging levels and control verbose messages that are logged with the parameter `v`. For details, see [Verbose Logging](https://github.com/google/glog#verbose-logging).|
-| `logbufsecs` | `0` | Specifies the maximum time to buffer the logs. If there is a timeout, it will output the buffered log to the log file. `0` means real-time output. This configuration is measured in seconds. |
-|`redirect_stdout` | `true` | When set to `true`, the process redirects the`stdout` and `stderr` to separate output files. |
-|`stdout_log_file` |`graphd-stdout.log` | Specifies the filename for the `stdout` log. |
-|`stderr_log_file` |`graphd-stderr.log` | Specifies the filename for the `stderr` log. |
-|`stderrthreshold` | `3` | Specifies the `minloglevel` to be copied to the `stderr` log. |
-| `timestamp_in_logfile_name` | `true` | Specifies if the log file name contains a timestamp. `true` indicates yes, `false` indicates no. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :------------- | :------------------------ | :------------------------------------------------ |:------------------|
+| `log_dir` | `logs` | The directory that stores the Meta Service log. It is recommended to put logs on a different hard disk from the data. | No|
+| `minloglevel` | `0` | Specifies the minimum level of the log. That is, log messages at or above this level. Optional values are `0` (INFO), `1` (WARNING), `2` (ERROR), `3` (FATAL). It is recommended to set it to `0` during debugging and `1` in a production environment. If it is set to `4`, NebulaGraph will not print any logs. | Yes|
+| `v` | `0` | Specifies the detailed level of VLOG. That is, log all VLOG messages less or equal to the level. Optional values are `0`, `1`, `2`, `3`, `4`, `5`. The VLOG macro provided by glog allows users to define their own numeric logging levels and control verbose messages that are logged with the parameter `v`. For details, see [Verbose Logging](https://github.com/google/glog#verbose-logging).| Yes|
+| `logbufsecs` | `0` | Specifies the maximum time to buffer the logs. If there is a timeout, it will output the buffered log to the log file. `0` means real-time output. This configuration is measured in seconds. | No|
+|`redirect_stdout` | `true` | When set to `true`, the process redirects the`stdout` and `stderr` to separate output files. | No|
+|`stdout_log_file` |`graphd-stdout.log` | Specifies the filename for the `stdout` log. | No|
+|`stderr_log_file` |`graphd-stderr.log` | Specifies the filename for the `stderr` log. | No|
+|`stderrthreshold` | `3` | Specifies the `minloglevel` to be copied to the `stderr` log. | No|
+| `timestamp_in_logfile_name` | `true` | Specifies if the log file name contains a timestamp. `true` indicates yes, `false` indicates no. | No|
## Networking configurations
-| Name | Predefined value | Description |
-| :----------------------- | :---------------- | :---------------------------------------------------- |
-| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IP addresses and ports of all Meta Services. Multiple addresses are separated with commas. |
-|`local_ip` | `127.0.0.1` | Specifies the local IP for the Storage Service. The local IP address is used to identify the nebula-storaged process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.|
-| `port` | `9779` | Specifies RPC daemon listening port of the Storage service. The external port for the Meta Service is predefined to `9779`. The internal port is predefined to `9777`, `9778`, and `9780`. Nebula Graph uses the internal port for multi-replica interactions.
`9777`: The port used by the Drainer service, which is only exposed in the Enterprise Edition cluster. `9778`: The port used by the Admin service, which receives Meta commands for Storage. `9780`: The port used for Raft communication.|
-| `ws_ip` | `0.0.0.0` | Specifies the IP address for the HTTP service. |
-| `ws_http_port` | `19779` | Specifies the port for the HTTP service. |
-|`heartbeat_interval_secs` | `10` | Specifies the default heartbeat interval. Make sure the `heartbeat_interval_secs` values for all services are the same, otherwise NebulaGraph **CANNOT** work normally. This configuration is measured in seconds. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :----------------------- | :---------------- | :---------------------------------------------------- |:------------------|
+| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IP addresses and ports of all Meta Services. Multiple addresses are separated with commas. | No|
+|`local_ip` | `127.0.0.1` | Specifies the local IP for the Storage Service. The local IP address is used to identify the nebula-storaged process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.| No|
+| `port` | `9779` | Specifies RPC daemon listening port of the Storage service. The external port for the Meta Service is predefined to `9779`. The internal port is predefined to `9777`, `9778`, and `9780`. Nebula Graph uses the internal port for multi-replica interactions.
`9777`: The port used by the Drainer service, which is only exposed in the Enterprise Edition cluster. `9778`: The port used by the Admin service, which receives Meta commands for Storage. `9780`: The port used for Raft communication.| No|
+| `ws_ip` | `0.0.0.0` | Specifies the IP address for the HTTP service. | No|
+| `ws_http_port` | `19779` | Specifies the port for the HTTP service. | No|
+|`heartbeat_interval_secs` | `10` | Specifies the default heartbeat interval. Make sure the `heartbeat_interval_secs` values for all services are the same, otherwise NebulaGraph **CANNOT** work normally. This configuration is measured in seconds. | Yes|
!!! caution
@@ -66,30 +70,30 @@ For all parameters and their current values, see [Configurations](1.configuratio
## Raft configurations
-| Name | Predefined value | Description |
-| :----------------------------- | :--------------- | :------------------------ |
-| `raft_heartbeat_interval_secs` | `30` | Specifies the time to expire the Raft election. The configuration is measured in seconds. |
-| `raft_rpc_timeout_ms` | `500` | Specifies the time to expire the Raft RPC. The configuration is measured in milliseconds. |
-| `wal_ttl` | `14400` | Specifies the lifetime of the RAFT WAL. The configuration is measured in seconds. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :----------------------------- | :--------------- | :------------------------ |:------------------|
+| `raft_heartbeat_interval_secs` | `30` | Specifies the time to expire the Raft election. The configuration is measured in seconds. | Yes|
+| `raft_rpc_timeout_ms` | `500` | Specifies the time to expire the Raft RPC. The configuration is measured in milliseconds. | Yes|
+| `wal_ttl` | `14400` | Specifies the lifetime of the RAFT WAL. The configuration is measured in seconds. | Yes|
## Disk configurations
-| Name | Predefined value | Description |
-| :------------------------------- | :--------------- | :------------------------ |
-| `data_path` | `data/storage` | Specifies the data storage path. Multiple paths are separated with commas. One RocksDB example corresponds to one path. |
-| `minimum_reserved_bytes` | `268435456` | Specifies the minimum remaining space of each data storage path. When the value is lower than this standard, the cluster data writing may fail. This configuration is measured in bytes. |
-| `rocksdb_batch_size` | `4096` | Specifies the block cache for a batch operation. The configuration is measured in bytes. |
-| `rocksdb_block_cache` | `4` | Specifies the block cache for BlockBasedTable. The configuration is measured in megabytes.|
-|`disable_page_cache` |`false`|Enables or disables the operating system's page cache for NebulaGraph. By default, the parameter value is `false` and page cache is enabled. If the value is set to `true`, page cache is disabled and sufficient block cache space must be configured for NebulaGraph.|
-| `engine_type` | `rocksdb` | Specifies the engine type. |
-| `rocksdb_compression` | `lz4` | Specifies the compression algorithm for RocksDB. Optional values are `no`, `snappy`, `lz4`, `lz4hc`, `zlib`, `bzip2`, and `zstd`.
This parameter modifies the compression algorithm for each level. If you want to set different compression algorithms for each level, use the parameter `rocksdb_compression_per_level`. |
-| `rocksdb_compression_per_level` | \ | Specifies the compression algorithm for each level. The priority is higher than `rocksdb_compression`. For example, `no:no:lz4:lz4:snappy:zstd:snappy`.
You can also not set certain levels of compression algorithms, for example, `no:no:lz4:lz4::zstd`, level L4 and L6 use the compression algorithm of `rocksdb_compression`. |
-|`enable_rocksdb_statistics` | `false` | When set to `false`, RocksDB statistics is disabled. |
-| `rocksdb_stats_level` | `kExceptHistogramOrTimers` | Specifies the stats level for RocksDB. Optional values are `kExceptHistogramOrTimers`, `kExceptTimers`, `kExceptDetailedTimers`, `kExceptTimeForMutex`, and `kAll`. |
-| `enable_rocksdb_prefix_filtering` | `true` | When set to `true`, the prefix bloom filter for RocksDB is enabled. Enabling prefix bloom filter makes the graph traversal faster but occupies more memory. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :------------------------------- | :--------------- | :------------------------ |:------------------|
+| `data_path` | `data/storage` | Specifies the data storage path. Multiple paths are separated with commas. One RocksDB example corresponds to one path. | No|
+| `minimum_reserved_bytes` | `268435456` | Specifies the minimum remaining space of each data storage path. When the value is lower than this standard, the cluster data writing may fail. This configuration is measured in bytes. | No|
+| `rocksdb_batch_size` | `4096` | Specifies the block cache for a batch operation. The configuration is measured in bytes. | No|
+| `rocksdb_block_cache` | `4` | Specifies the block cache for BlockBasedTable. The configuration is measured in megabytes.| No|
+|`disable_page_cache` |`false`|Enables or disables the operating system's page cache for NebulaGraph. By default, the parameter value is `false` and page cache is enabled. If the value is set to `true`, page cache is disabled and sufficient block cache space must be configured for NebulaGraph.| No|
+| `engine_type` | `rocksdb` | Specifies the engine type. | No|
+| `rocksdb_compression` | `lz4` | Specifies the compression algorithm for RocksDB. Optional values are `no`, `snappy`, `lz4`, `lz4hc`, `zlib`, `bzip2`, and `zstd`.
This parameter modifies the compression algorithm for each level. If you want to set different compression algorithms for each level, use the parameter `rocksdb_compression_per_level`. | No|
+| `rocksdb_compression_per_level` | \ | Specifies the compression algorithm for each level. The priority is higher than `rocksdb_compression`. For example, `no:no:lz4:lz4:snappy:zstd:snappy`.
You can also not set certain levels of compression algorithms, for example, `no:no:lz4:lz4::zstd`, level L4 and L6 use the compression algorithm of `rocksdb_compression`. | No|
+|`enable_rocksdb_statistics` | `false` | When set to `false`, RocksDB statistics is disabled. | No|
+| `rocksdb_stats_level` | `kExceptHistogramOrTimers` | Specifies the stats level for RocksDB. Optional values are `kExceptHistogramOrTimers`, `kExceptTimers`, `kExceptDetailedTimers`, `kExceptTimeForMutex`, and `kAll`. | No|
+| `enable_rocksdb_prefix_filtering` | `true` | When set to `true`, the prefix bloom filter for RocksDB is enabled. Enabling prefix bloom filter makes the graph traversal faster but occupies more memory. | No|
|`enable_rocksdb_whole_key_filtering` | `false` | When set to `true`, the whole key bloom filter for RocksDB is enabled. |
-| `rocksdb_filtering_prefix_length` | `12` | Specifies the prefix length for each key. Optional values are `12` and `16`. The configuration is measured in bytes. |
-| `enable_partitioned_index_filter` | `false` | When set to `true`, it reduces the amount of memory used by the bloom filter. But in some random-seek situations, it may reduce the read performance. This parameter is not predefined in the initial configuration files, if you need to use this parameter, add it manually.|
+| `rocksdb_filtering_prefix_length` | `12` | Specifies the prefix length for each key. Optional values are `12` and `16`. The configuration is measured in bytes. | No|
+| `enable_partitioned_index_filter` | `false` | When set to `true`, it reduces the amount of memory used by the bloom filter. But in some random-seek situations, it may reduce the read performance. This parameter is not predefined in the initial configuration files, if you need to use this parameter, add it manually.| No|
-## misc configurations
+## Misc configurations
!!! caution
The configuration `snapshot` in the following table is different from the snapshot in NebulaGraph. The `snapshot` here refers to the stock data on the leader when synchronizing Raft.
-| Name | Predefined value | Description |
-| :-- | :----- | :--- |
-| `query_concurrently` |`true`| Whether to turn on multi-threaded queries. Enabling it can improve the latency performance of individual queries, but it will reduce the overall throughput under high pressure. |
-| `auto_remove_invalid_space` | `true` |After executing `DROP SPACE`, the specified graph space will be deleted. This parameter sets whether to delete all the data in the specified graph space at the same time. When the value is `true`, all the data in the specified graph space will be deleted at the same time.|
-| `num_io_threads` | `16` | The number of network I/O threads used to send RPC requests and receive responses. |
-| `num_worker_threads` | `32` | The number of worker threads for one RPC-based Storage service. |
-| `max_concurrent_subtasks` | `10` | The maximum number of concurrent subtasks to be executed by the task manager. |
-| `snapshot_part_rate_limit` | `10485760` | The rate limit when the Raft leader synchronizes the stock data with other members of the Raft group. Unit: bytes/s. |
-| `snapshot_batch_size` | `1048576` | The amount of data sent in each batch when the Raft leader synchronizes the stock data with other members of the Raft group. Unit: bytes. |
-| `rebuild_index_part_rate_limit` | `4194304` | The rate limit when the Raft leader synchronizes the index data rate with other members of the Raft group during the index rebuilding process. Unit: bytes/s. |
-| `rebuild_index_batch_size` | `1048576` | The amount of data sent in each batch when the Raft leader synchronizes the index data with other members of the Raft group during the index rebuilding process. Unit: bytes. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :-- | :----- | :--- |:------------------|
+| `query_concurrently` |`true`| Whether to turn on multi-threaded queries. Enabling it can improve the latency performance of individual queries, but it will reduce the overall throughput under high pressure. | Yes|
+| `auto_remove_invalid_space` | `true` |After executing `DROP SPACE`, the specified graph space will be deleted. This parameter sets whether to delete all the data in the specified graph space at the same time. When the value is `true`, all the data in the specified graph space will be deleted at the same time.| Yes|
+| `num_io_threads` | `16` | The number of network I/O threads used to send RPC requests and receive responses. | Yes|
+| `num_worker_threads` | `32` | The number of worker threads for one RPC-based Storage service. | Yes|
+| `max_concurrent_subtasks` | `10` | The maximum number of concurrent subtasks to be executed by the task manager. | Yes|
+| `snapshot_part_rate_limit` | `10485760` | The rate limit when the Raft leader synchronizes the stock data with other members of the Raft group. Unit: bytes/s. | Yes|
+| `snapshot_batch_size` | `1048576` | The amount of data sent in each batch when the Raft leader synchronizes the stock data with other members of the Raft group. Unit: bytes. | Yes|
+| `rebuild_index_part_rate_limit` | `4194304` | The rate limit when the Raft leader synchronizes the index data rate with other members of the Raft group during the index rebuilding process. Unit: bytes/s. | Yes|
+| `rebuild_index_batch_size` | `1048576` | The amount of data sent in each batch when the Raft leader synchronizes the index data with other members of the Raft group during the index rebuilding process. Unit: bytes. | Yes|
## RocksDB options
-| Name | Predefined value | Description |
-| :----------- | :------------------------ | :------------------------ |
-| `rocksdb_db_options` | `{}` | Specifies the RocksDB database options. |
-| `rocksdb_column_family_options` | `{"write_buffer_size":"67108864",`
`"max_write_buffer_number":"4",`
`"max_bytes_for_level_base":"268435456"}` | Specifies the RocksDB column family options. |
-| `rocksdb_block_based_table_options` | `{"block_size":"8192"}` | Specifies the RocksDB block based table options. |
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :----------- | :------------------------ | :------------------------ |:------------------|
+| `rocksdb_db_options` | `{}` | Specifies the RocksDB database options. | Yes|
+| `rocksdb_column_family_options` | `{"write_buffer_size":"67108864",`
`"max_write_buffer_number":"4",`
`"max_bytes_for_level_base":"268435456"}` | Specifies the RocksDB column family options. | Yes|
+| `rocksdb_block_based_table_options` | `{"block_size":"8192"}` | Specifies the RocksDB block based table options. | Yes|
The format of the RocksDB option is `{"":""}`. Multiple options are separated with commas.
@@ -200,33 +204,33 @@ For more information, see [RocksDB official documentation](https://rocksdb.org/)
The Nebula-BBox configurations are for the Enterprise Edition only.
-| Name | Predefined value | Description |
-| :------------------- | :------------------------ | :------------------------------------------ |
-|`ng_black_box_switch` |`true` |Whether to enable the [Nebula-BBox](../../6.monitor-and-metrics/3.bbox/3.1.bbox.md) feature.|
-|`ng_black_box_home` |`black_box` |The name of the directory to store Nebula-BBox file data.|
-|`ng_black_box_dump_period_seconds` |`5` |The time interval for Nebula-BBox to collect metric data. Unit: Second.|
-|`ng_black_box_file_lifetime_seconds` |`1800` |Storage time for Nebula-BBox files generated after collecting metric data. Unit: Second.|
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :------------------- | :------------------------ | :------------------------------------------ |:------------------|
+|`ng_black_box_switch` |`true` |Whether to enable the [Nebula-BBox](../../6.monitor-and-metrics/3.bbox/3.1.bbox.md) feature.| No|
+|`ng_black_box_home` |`black_box` |The name of the directory to store Nebula-BBox file data.| No|
+|`ng_black_box_dump_period_seconds` |`5` |The time interval for Nebula-BBox to collect metric data. Unit: Second.| No|
+|`ng_black_box_file_lifetime_seconds` |`1800` |Storage time for Nebula-BBox files generated after collecting metric data. Unit: Second.| Yes|
{{ ent.ent_end }}
-## memory tracker configurations
+## Memory tracker configurations
-| Name | Predefined value | Description |
-| :------------------- | :------------------------ | :------------------------------------------ |
-|`memory_tracker_limit_ratio` |`0.8` | The value of this parameter can be set to `(0, 1]`, `2`, and `3`.
`(0, 1]`: The percentage of free memory. When the free memory is lower than this value, NebulaGraph stops accepting queries.
Calculated as follows:
`Free memory / (Total memory - Reserved memory)`
**Note**: For clusters with a mixed-used environment, the value of `memory_tracker_limit_ratio` should be set to a **lower** value. For example, when Graphd is expected to occupy only 50% of memory, the value can be set to less than `0.5`.
`2`: Dynamic Self Adaptive mode. MemoryTracker dynamically adjusts the available memory based on the system's current available memory.
**Note**: This feature is experimental. As memory usage cannot be monitored in real time in dynamic adaptive mode, an OOM error may still occur to handle large memory allocations.
`3`: Disable MemoryTracker. MemoryTracker only logs memory usage and does not interfere with executions even if the limit is exceeded.|
-|`memory_tracker_untracked_reserved_memory_mb` |`50`| The reserved memory that is not tracked by the memory tracker. Unit: MB.|
-|`memory_tracker_detail_log` |`false` | Whether to enable the memory tracker log. When the value is `true`, the memory tracker log is generated.|
-|`memory_tracker_detail_log_interval_ms` |`60000`| The time interval for generating the memory tracker log. Unit: Millisecond. `memory_tracker_detail_log` is `true` when this parameter takes effect.|
-|`memory_purge_enabled` |`true` |Whether to enable the memory purge feature. When the value is `true`, the memory purge feature is enabled.|
-|`memory_purge_interval_seconds` |`10` |The time interval for the memory purge feature to purge memory. Unit: Second. This parameter only takes effect if `memory_purge_enabled` is set to true.|
+| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
+| :------------------- | :------------------------ | :------------------------------------------ |:------------------|
+|`memory_tracker_limit_ratio` |`0.8` | The value of this parameter can be set to `(0, 1]`, `2`, and `3`.
`(0, 1]`: The percentage of free memory. When the free memory is lower than this value, NebulaGraph stops accepting queries.
Calculated as follows:
`Free memory / (Total memory - Reserved memory)`
**Note**: For clusters with a mixed-used environment, the value of `memory_tracker_limit_ratio` should be set to a **lower** value. For example, when Graphd is expected to occupy only 50% of memory, the value can be set to less than `0.5`.
`2`: Dynamic Self Adaptive mode. MemoryTracker dynamically adjusts the available memory based on the system's current available memory.
**Note**: This feature is experimental. As memory usage cannot be monitored in real time in dynamic adaptive mode, an OOM error may still occur to handle large memory allocations.
`3`: Disable MemoryTracker. MemoryTracker only logs memory usage and does not interfere with executions even if the limit is exceeded.| Yes|
+|`memory_tracker_untracked_reserved_memory_mb` |`50`| The reserved memory that is not tracked by the memory tracker. Unit: MB.| Yes|
+|`memory_tracker_detail_log` |`false` | Whether to enable the memory tracker log. When the value is `true`, the memory tracker log is generated.| Yes|
+|`memory_tracker_detail_log_interval_ms` |`60000`| The time interval for generating the memory tracker log. Unit: Millisecond. `memory_tracker_detail_log` is `true` when this parameter takes effect.| Yes|
+|`memory_purge_enabled` |`true` |Whether to enable the memory purge feature. When the value is `true`, the memory purge feature is enabled.| Yes|
+|`memory_purge_interval_seconds` |`10` |The time interval for the memory purge feature to purge memory. Unit: Second. This parameter only takes effect if `memory_purge_enabled` is set to true.| Yes|
## For super-Large vertices
When the query starting from each vertex gets an edge, truncate it directly to avoid too many neighboring edges on the super-large vertex, because a single query occupies too much hard disk and memory. Or you can truncate a certain number of edges specified in the `Max_edge_returned_per_vertex` parameter. Excess edges will not be returned. This parameter applies to all spaces.
-| Property name | Default value | Description |
-| :------------------- | :------------------------ | :------------------------------------------ |
-| max_edge_returned_per_vertex | `2147483647` | Specifies the maximum number of edges returned for each dense vertex. Excess edges are truncated and not returned. This parameter is not predefined in the initial configuration files, if you need to use this parameter, add it manually. |
+| Property name | Default value | Description |Whether supports runtime dynamic modifications|
+| :------------------- | :------------------------ | :------------------------------------------ |:------------------|
+| max_edge_returned_per_vertex | `2147483647` | Specifies the maximum number of edges returned for each dense vertex. Excess edges are truncated and not returned. This parameter is not predefined in the initial configuration files, if you need to use this parameter, add it manually. | No|
## Storage configurations for large dataset