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 some dangling edge explain #646

Merged
merged 1 commit into from
Jun 25, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs-2.0/1.introduction/2.data-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,9 @@ Nebula Graph使用有向属性图模型,指点和边构成的图,这些边
!!! Note

Nebula Graph 中没有无向边,只支持有向边。

!!! compatibility

由于 Nebula Graph {{ nebula.release }} 的数据模型中,允许存在"悬挂边",因此在增删时,用户需自行保证“一条边所对应的起点和终点”的存在性。详见[INSERT VERTEX](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md), [DELETE VERTEX](../3.ngql-guide/12.vertex-statements/4.delete-vertex.md), [INSERT EDGE](docs-2.0/3.ngql-guide/13.edge-statements/1.insert-edge.md), [DELETE EDGE](../3.ngql-guide/13.edge-statements/4.delete-edge.md)。

不支持 openCypher 中的 MERGE 语句。
6 changes: 6 additions & 0 deletions docs-2.0/20.appendix/0.FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,12 @@ nebula > MATCH (s)<-[e]-() WHERE id(s) == "given" RETURN count(e); #入度

仅Graph服务支持`system_memory_high_watermark_ratio`,Storage和Meta服务不支持该参数。

### 关于悬挂边

悬挂边 (dangling edge) 是指一条边的起点或者终点在数据库中不存在。

Nebula Graph {{ nebula.release }} 的数据模型中,允许存在"悬挂边";也没有 openCypher 中的 MERGE 语句。对于悬挂边的保证完全依赖应用层面。详见[INSERT VERTEX](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md), [DELETE VERTEX](../3.ngql-guide/12.vertex-statements/4.delete-vertex.md), [INSERT EDGE](docs-2.0/3.ngql-guide/13.edge-statements/1.insert-edge.md), [DELETE EDGE](../3.ngql-guide/13.edge-statements/4.delete-edge.md)。

## 关于运维

### 日志文件过大时如何回收日志?
Expand Down
9 changes: 3 additions & 6 deletions docs-2.0/3.ngql-guide/1.nGQL-overview/1.overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,9 @@ nGQL是一个进行中的项目,会持续发布新特性和优化,因此可

Nebula Graph查询语言nGQL参照以下标准设计:

- ISO/IEC 10646
- (Draft) ISO/IEC JTC1 N14279 SC 32 - Database_Languages - GQL

- ISO/IEC 39075

- ISO/IEC JTC 1/SC 32 N 3228 (Draft)
- (Draft) ISO/IEC JTC1 SC32 N3228 - SQL_Property_Graph_Queries - SQLPGQ

- OpenCypher 9

Expand Down Expand Up @@ -98,11 +96,10 @@ nebula> CREATE TAG player(name string, age int);

请注意[openCypher 9](http://www.opencypher.org/)和[Cypher](https://neo4j.com/developer/cypher/)在语法和许可上有一些不同:

1. Cypher要求所有Cypher语句必须“显式地在一个事务中”执行,而openCypher没有这样的要求。另外,nGQL 不支持事务
1. Cypher要求所有Cypher语句必须“显式地在一个事务中”执行,而openCypher没有这样的要求。另外,nGQL **没有**事务及隔离性

2. Cypher 企业版功能有多种的约束(constraints),包括 Unique node property constraints、Node property existence constraints、Relationship property existence constraints、Node key constraints。 OpenCypher 标准中没有约束。 而 nGQL 是强 schema 系统,前述的约束大多通过 schema 定义可实现(包括 NOT NULL),唯一不能支持的功能是“属性值唯一性”(UNIQUE constraint)。


### 哪里可以找到更多nGQL的示例?

用户可以在Nebula Graph GitHub的[features](https://github.com/vesoft-inc/nebula-graph/tree/master/tests/tck/features)目录内查看超过2500条nGQL示例。
Expand Down
8 changes: 4 additions & 4 deletions docs-2.0/3.ngql-guide/12.vertex-statements/4.delete-vertex.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ nebula> DELETE VERTEX "team1";

```ngql
# 结合管道符,删除符合条件的点。
nebula> GO FROM "player100" OVER serve YIELD serve._dst AS id | DELETE VERTEX $-.id;
nebula> GO FROM "player100" OVER serve WHERE serve.start_year == "2021" YIELD serve._dst AS id | DELETE VERTEX $-.id;
```

## 删除过程
## 删除过程与删除邻边

Nebula Graph先检索并删除目标点的所有出边和入边,然后删除目标点。
Nebula Graph 先找到并删除目标点的所有邻边(出边和入边),然后删除目标点。

!!! caution

* 不支持原子性删除,如果发生错误请重试,避免出现部分删除的情况。
* 不支持原子性删除,如果发生错误请重试,避免出现部分删除的情况。否则会导致悬挂边。
* 删除超级节点耗时较多,为避免删除完成前连接超时,可以调整`nebula-graphd.conf`中的参数`--storage_client_timeout_ms`延长超时时间。