Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add zone in 3.6.0-ent #2990

Merged
merged 13 commits into from
Sep 19, 2023
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,26 @@
ADD HOSTS <ip>:<port> [,<ip>:<port> ...];
```

<!--
示例:

```ngql
ADD HOSTS <ip>:<port> [,<ip>:<port> ...] [INTO NEW ZONE "<new_zone_name>"];
nebula> ADD HOSTS 192.168.10.100:9779, 192.168.10.101:9779, 192.168.10.102:9779;
```
-->

示例:
{{ent.ent_begin}}
如果开启了 [Zone](../../4.deployment-and-installation/5.zone.md) 功能,需要指定`INTO ZONE <zone_name>`子句,否则会导致添加 Storage 主机失败。

```ngql
nebula> ADD HOSTS 192.168.10.100:9779, 192.168.10.101:9779, 192.168.10.102:9779;
ADD HOSTS <ip>:<port> [,<ip>:<port> ...] INTO ZONE <zone_name>;
```

示例:
```ngql
nebula> ADD HOSTS 192.168.8.111:9779,192.168.8.112:9779 INTO ZONE az1;
```

{{ent.ent_end}}

!!! caution

请确保添加的主机 IP 和配置文件`nebula-storaged.conf`中`local_ip`配置的 IP 一致,否则会导致添加 Storage 主机失败。关于配置文件的详情,参见[配置管理](../../5.configurations-and-logs/1.configurations/1.configurations.md)。
Expand Down
18 changes: 10 additions & 8 deletions docs-2.0/2.quick-start/6.cheatsheet-for-ngql-command.md
Original file line number Diff line number Diff line change
Expand Up @@ -434,14 +434,20 @@

* [SUBMIT JOB BALANCE](../synchronization-and-migration/2.balance-syntax.md)

{{comm.comm_begin}}
| 语法 | 说明 |
| :-------------------------------- | :----------------------------------------------------------- |
|`SUBMIT JOB BALANCE LEADER`|启动任务均衡分布所有图空间中的 leader。该命令会返回任务 ID。|
{{comm.comm_end}}

{{ent.ent_begin}}
| 语法 | 说明 |
| :-------------------------------- | :----------------------------------------------------------- |
|`SUBMIT JOB BALANCE LEADER`|启动任务均衡分布所有图空间中的 leader。该命令会返回任务 ID。|
{{ ent.ent_begin }}
|`SUBMIT JOB BALANCE DATA`|启动任务均衡分布当前图空间中的所有分片。该命令会返回任务 ID(`job_id`)。|
|`SUBMIT JOB BALANCE DATA REMOVE <ip:port> [,<ip>:<port> ...]`|启动任务迁空当前图空间指定的 Storage 服务中的分片。端口默认为`9779`。|
{{ ent.ent_end }}

|`SUBMIT JOB BALANCE DATA IN ZONE`|在当前图空间内每个 Zone 内部启动任务均衡分布分片。|
{{ent.ent_end}}

* [作业管理](../3.ngql-guide/4.job-statements.md)

Expand All @@ -453,11 +459,7 @@
| `SHOW JOB <job_id>` | 显示当前图空间内指定作业和相关任务的信息。Meta 服务将`SUBMIT JOB`请求解析为多个任务,然后分配给进程 nebula-storaged。 |
| `SHOW JOBS` | 列出当前图空间内所有未过期的作业。 |
| `STOP JOB` | 停止当前图空间内未完成的作业。 |
| `RECOVER JOB` | 重新执行当前图空间内失败的作业,并返回已恢复的作业数量。 |
<!-- balance-3.1
|`SUBMIT JOB BALANCE IN ZONE`|在当前图空间内每个 Zone 内部启动任务均衡分布分片。|
|`SUBMIT JOB BALANCE ACROSS ZONE`|在当前图空间内所有 Zone 之间启动任务均衡分布分片。|
-->
| `RECOVER JOB` | 重新执行当前图空间内失败的作业,并返回已恢复的作业数量。 ||

* [终止查询](../3.ngql-guide/17.query-tuning-statements/6.kill-query.md)

Expand Down
6 changes: 3 additions & 3 deletions docs-2.0/20.appendix/learning-path.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,13 +144,13 @@
| ------------------------------------------------------------ |
|[创建快照](https://docs.nebula-graph.com.cn/{{nebula.release}}/backup-and-restore/3.manage-snapshot/#_5)|

<!--
{{ent.ent_begin}}
- 资源隔离

| 文档 |
| ------------------------------------------------------------ |
|[Group & Zone](https://docs.nebula-graph.com.cn/{{nebula.release}}/7.data-security/5.zone/)|
-->
|[Zone](../4.deployment-and-installation/5.zone.md)|
{{ent.ent_end}}

- SSL 加密

Expand Down
4 changes: 1 addition & 3 deletions docs-2.0/3.ngql-guide/16.subgraph-and-path/2.find-path.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
{{comm.comm_begin}}

```ngql
FIND { SHORTEST | SINGLE SHORTEST | ALL | NOLOOP } PATH [WITH PROP] FROM <vertex_id_list> TO <vertex_id_list>
FIND { SHORTEST | ALL | NOLOOP } PATH [WITH PROP] FROM <vertex_id_list> TO <vertex_id_list>
OVER <edge_type_list> [REVERSELY | BIDIRECT]
[<WHERE clause>] [UPTO <N> {STEP|STEPS}]
YIELD path as <alias>
Expand All @@ -23,8 +23,6 @@ YIELD path as <alias>

- `SHORTEST`:查找所有最短路径。

- `SINGLE SHORTEST`:查找所有最短路径,随机返回其中一条。
abby-cyber marked this conversation as resolved.
Show resolved Hide resolved

- `ALL`:查找所有路径。

- `NOLOOP`:查找非循环路径。
Expand Down
46 changes: 30 additions & 16 deletions docs-2.0/3.ngql-guide/4.job-statements.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,55 +48,69 @@ nebula> SUBMIT JOB BALANCE DATA REMOVE 192.168.8.100:9779;
+------------+
```

{{ ent.ent_end }}
## SUBMIT JOB BALANCE DATA IN ZONE

## SUBMIT JOB BALANCE LEADER
`SUBMIT JOB BALANCE DATA IN ZONE`语句会启动一个任务在当前图空间中,均衡各 Zone 内 Storage 节点的分片分布,让各 Zone 内 Storage 节点负载均衡。

`SUBMIT JOB BALANCE LEADER`语句会启动任务均衡分布所有图空间中的 leader。该命令会返回任务 ID。
<!-- 如果只在指定的 Zone 内均衡分布分片副本,需要添加`<zone_name>`选项。 -->

关于 Zone 的详情,请参见[管理 Zone](../4.deployment-and-installation/5.zone.md)。

示例:

```ngql
nebula> SUBMIT JOB BALANCE LEADER;
# 在当前图空间所有 Zone 内均衡分布分片副本
nebula> SUBMIT JOB BALANCE DATA IN ZONE;
+------------+
| New Job Id |
+------------+
| 33 |
| 25 |
+------------+
```

<!-- balance-3.1
## SUBMIT JOB BALANCE IN ZONE
<!-- ```ngql
# 在当前图空间指定的 Zone(az1)内均衡分布分片副本
nebula> SUBMIT JOB BALANCE DATA IN ZONE az1;
+------------+
| New Job Id |
+------------+
| 26 |
+------------+
``` -->

## SUBMIT JOB BALANCE DATA IN ZONE REMOVE

`SUBMIT JOB BALANCE IN ZONE`语句会在当前图空间内每个 Zone 内部启动任务均衡分布分片。该命令会返回任务 ID。可以使用`REMOVE`选项指定需要清空的 Storage 节点,方便进行维护。
`SUBMIT JOB BALANCE DATA IN ZONE REMOVE`语句会启动一个任务清空当前图空间指定的 Storage 节点。清空 Storage 节点前,需要确保 Zone 内剩余 Storage 节点数量可以满足设置的副本数。例如,如果设置了副本数为 3,那么在执行该命令前,需要确保剩余 Storage 节点数量大于等于 3。

关于 Zone 的详情,请参见[管理 Zone](../4.deployment-and-installation/5.zone.md)。

示例:

```ngql
nebula> SUBMIT JOB BALANCE IN ZONE REMOVE 192.168.10.102:9779;
nebula> SUBMIT JOB BALANCE DATA IN ZONE REMOVE 192.168.10.102:9779;
+------------+
| New Job Id |
+------------+
| 26 |
| 27 |
+------------+
```

## SUBMIT JOB BALANCE ACROSS ZONE
{{ ent.ent_end }}

`SUBMIT JOB BALANCE ACROSS ZONE`语句会在当前图空间内所有 Zone 之间启动任务均衡分布分片,保证各个 Zone 分片数量平衡。该命令会返回任务 ID。可以使用`REMOVE`选项指定需要清空的 Zone,方便进行维护。
## SUBMIT JOB BALANCE LEADER

`SUBMIT JOB BALANCE LEADER`语句会启动任务均衡分布所有图空间中的 leader。该命令会返回任务 ID。

示例:

```ngql
nebula> SUBMIT JOB BALANCE ACROSS ZONE REMOVE "zone1";
nebula> SUBMIT JOB BALANCE LEADER;
+------------+
| New Job Id |
+------------+
| 27 |
| 33 |
+------------+
```
-->

## SUBMIT JOB COMPACT

`SUBMIT JOB COMPACT` 语句会在当前图空间内触发 RocksDB 的长耗时 `compact` 操作。
Expand Down
25 changes: 17 additions & 8 deletions docs-2.0/3.ngql-guide/9.space-statements/1.create-space.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

### 创建图空间


```ngql
CREATE SPACE [IF NOT EXISTS] <graph_space_name> (
[partition_num = <partition_number>,]
Expand All @@ -23,15 +24,11 @@ CREATE SPACE [IF NOT EXISTS] <graph_space_name> (
|:---|:---|
|`IF NOT EXISTS`|检测待创建的图空间是否存在,只有不存在时,才会创建图空间。仅检测图空间的名称,不会检测具体属性。|
|`<graph_space_name>`|1、在{{nebula.name}}实例中唯一标识一个图空间。<br/>2、图空间名称设置后无法被修改。<br/>3、不能以数字开头;支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等,但是不包括除下划线外的特殊字符;使用特殊字符、保留关键字或数字开头时,需要用反引号(\`)包围且不能使用英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。<br/>**注意**:如果以中文为图空间命名,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。|
|`partition_num`|指定图空间的分片数量。建议设置为集群中硬盘数量的 20 倍(HDD 硬盘建议为 2 倍)。例如集群中有 3 个硬盘,建议设置 60 个分片。默认值为 100。|
|`partition_num`|指定图空间的分片数量。建议设置为集群中硬盘数量的 20 倍(HDD 硬盘建议为 2 倍)。例如集群中有 3 个硬盘,建议设置 60 个分片。默认值为 10。|
|`replica_factor`|指定每个分片的副本数量。建议在生产环境中设置为 3,在测试环境中设置为 1。由于需要基于多数表决,副本数量必须是**奇数**。默认值为 1。|
|`vid_type`|必选参数。指定点 ID 的数据类型。可选值为`FIXED_STRING(<N>)`和`INT64`。`INT`等同于`INT64`。<br>`FIXED_STRING(<N>)`表示数据类型为定长字符串,长度为`N`字节,超出长度会报错。例如,UTF-8中,一个中文字符的长度为三个字节,如果设置`N`为 12,那么`vid_type`为最多 4 个中文字符。<br>`INT64`表示数据类型为整数。|
|`COMMENT`|图空间的描述。最大为 256 字节。默认无描述。|

<!--
|`zone_list`|指定图空间所属的 Zone 列表,将在这些 Zone 中创建分片和对应副本。副本数量不能超过指定 Zone 数量。不指定`zone_list`时,默认属于所有 Zone。详情请参见 [管理逻辑机架(Zone)](../../4.deployment-and-installation/5.zone.md)。|
-->

!!! caution

- 如果将副本数设置为 1,用户将无法使用 [SUBMIT JOB BALANCE](../../8.service-tuning/load-balance.md) 命令为{{nebula.name}}的存储服务平衡负载或扩容。
Expand All @@ -58,6 +55,18 @@ CREATE SPACE [IF NOT EXISTS] <graph_space_name> (

`graph_space_name`, `partition_num`, `replica_factor`, `vid_type`, `comment` 设置后就无法改变。除非 [`DROP SPACE`](./5.drop-space.md),并重新`CREATE SPACE`。


{{ent.ent_begin}}

创建图空间时,系统会自动识别 Meta 配置文件中`--zone_list`的值,即是否开启 Zone 功能:

- 如果值为空,代表不开启 Zone 功能,此时创建图空间时,不会指定图空间的 Zone。
- 如果值不为空,且`--zone_list`中的 Zone 的数量等于通过`replica_factor`指定的分片副本数时,图空间的各分片副本会均匀分布在`--zone_list`中指定的 Zone 中。当指定的分片副本数不等于 Zone 的数量时,会导致创建图空间失败。

有关 Zone 的更多信息,请参见[Zone](../../4.deployment-and-installation/5.zone.md)。

{{ent.ent_end}}

### 克隆图空间

```ngql
Expand Down Expand Up @@ -105,9 +114,9 @@ nebula> SHOW HOSTS;
+-------------+------+----------+--------------+--------------------------------+--------------------------------+---------+
| Host | Port | Status | Leader count | Leader distribution | Partition distribution | Version |
+-------------+------+----------+--------------+--------------------------------+--------------------------------+---------+
| "storaged0" | 9779 | "ONLINE" | 8 | "basketballplayer:3, test:5" | "basketballplayer:10, test:10" | "3.1.0" |
| "storaged1" | 9779 | "ONLINE" | 9 | "basketballplayer:4, test:5" | "basketballplayer:10, test:10" | "3.1.0" |
| "storaged2" | 9779 | "ONLINE" | 3 | "basketballplayer:3" | "basketballplayer:10, test:10" | "3.1.0" |
| "storaged0" | 9779 | "ONLINE" | 8 | "basketballplayer:3, test:5" | "basketballplayer:10, test:10" | "{{nebula.release}}" |
| "storaged1" | 9779 | "ONLINE" | 9 | "basketballplayer:4, test:5" | "basketballplayer:10, test:10" | "{{nebula.release}}" |
| "storaged2" | 9779 | "ONLINE" | 3 | "basketballplayer:3" | "basketballplayer:10, test:10" | "{{nebula.release}}" |
+-------------+------+----------+--------------+--------------------------------+--------------------------------+---------+
```

Expand Down
18 changes: 11 additions & 7 deletions docs-2.0/3.ngql-guide/9.space-statements/4.describe-space.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ DESC[RIBE] SPACE <graph_space_name>;

## 示例


```ngql
nebula> DESCRIBE SPACE basketballplayer;
+----+--------------------+------------------+----------------+---------+------------+--------------------+---------+
Expand All @@ -21,13 +22,16 @@ nebula> DESCRIBE SPACE basketballplayer;
+----+--------------------+------------------+----------------+---------+------------+--------------------+---------+
```

<!--
{{ent.ent_begin}}

如果创建的图空间指定了 Zone,那么`DESCRIBE SPACE`语句会显示图空间的 Zone 信息。详情参见[管理 Zone](../../4.deployment-and-installation/5.zone.md)。

```ngql
nebula> DESCRIBE SPACE basketballplayer;
+----+--------------------+------------------+----------------+---------+------------+--------------------+-------------+-----------+---------+
| ID | Name | Partition Number | Replica Factor | Charset | Collate | Vid Type | Atomic Edge | Zones | Comment |
+----+--------------------+------------------+----------------+---------+------------+--------------------+-------------+-----------+---------+
| 1 | "basketballplayer" | 10 | 1 | "utf8" | "utf8_bin" | "FIXED_STRING(32)" | false | "default" | |
+----+--------------------+------------------+----------------+---------+------------+--------------------+-------------+-----------+---------+
+----+--------------------+------------------+----------------+---------+------------+--------------------+-----------------------+---------+
| ID | Name | Partition Number | Replica Factor | Charset | Collate | Vid Type | Zones | Comment |
+----+--------------------+------------------+----------------+---------+------------+--------------------+-----------------------+---------+
| 51 | "basketballplayer" | 10 | 4 | "utf8" | "utf8_bin" | "FIXED_STRING(32)" | ["az1", "az2", "az3"] | |
+----+--------------------+------------------+----------------+---------+------------+--------------------+-----------------------+---------+
```
-->
{{ent.ent_end}}
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,14 @@
--port=9779
```

{{ent.ent_begin}}
### (可选) 配置 Zone

Zone 是 Storage 节点的逻辑机架。用户可以通过配置 Zone 并将指定 Storage 节点加入到 Zone 中,同时配置 Graph 服务定向访问指定 Zone,来实现资源隔离和数据的定向访问,从而减少流量消耗以节约成本。

详情请参见[Zone](../../4.deployment-and-installation/5.zone.md)。
{{ent.ent_end}}

### 启动集群

依次启动**各个服务器**上的对应进程。
Expand Down
Loading