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

release 3.1.3-ent #1788

Merged
merged 5 commits into from
Nov 29, 2022
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
10 changes: 5 additions & 5 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ name: Publish docs via GitHub Pages
on:
push:
branches:
- v3.1.0
- v3.1.3

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # fetch all commits/branches for gitversion
fetch-depth: 1 # fetch all commits/branches for gitversion

- name: Setup Python
uses: actions/setup-python@v1
Expand All @@ -24,12 +24,12 @@ jobs:
- name: Git Config
run: git config user.name whitewum && git config user.email [email protected]

- name: Mike Deploy 3.1.0
- name: Mike Deploy 3.1.3
run: |
# mike delete v3.1.0 -p
# mike delete v3.1.3 -p
git fetch origin gh-pages --depth=1 # fix mike's CI update
mike list
mike deploy 3.1.0 -p --rebase
mike deploy 3.1.3 -p --rebase
mike list
# - name: Deploy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ Graphs consist of vertices and edges. Nebula Graph uses key-value pairs to store

- The storage structure of vertices

Different from Nebula Graph version 2.x, version 3.x added a new key for each vertex. Compared to the old key that still exists, the new key has no `TagID` field and no value. Vertices in Nebula Graph can now live without tags owing to the new key.
Different from Nebula Graph version 2.x, version 3.x added a new key for each vertex. Compared to the old key that still exists, the new key has no `TagID` field and no value after enabling the configuration without tag. Vertices in Nebula Graph can now live without tags owing to the new key.

![The vertex structure of Nebula Graph](https://docs-cdn.nebula-graph.com.cn/figures/3.0-vertex-key.png)

Expand Down
4 changes: 2 additions & 2 deletions docs-2.0/20.appendix/0.FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ By nGQL, you CAN NOT directly getting all the vertices without specifying the ta

E.g., You CAN NOT run `MATCH (n) RETURN (n)`. An error like `Scan vertices or edges need to specify a limit number, or limit number can not push down.` will be returned.

You can use [Nebula Algorithm](../nebula-algorithm.md).
You can use [Nebula Algorithm](../graph-computing/nebula-algorithm.md).

Or get vertices by each tag, and then group them by yourself.

Expand All @@ -301,7 +301,7 @@ This is a very slow operation to get the out/in degree since no accelaration can

There is no such command.

You can use [Nebula Algorithm](../nebula-algorithm.md).
You can use [Nebula Algorithm](../graph-computing/nebula-algorithm.md).

## About operation and maintenance

Expand Down
4 changes: 2 additions & 2 deletions docs-2.0/20.appendix/6.eco-tool-version.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,15 +108,15 @@ Nebula Flink Connector is a connector that helps Flink users quickly access Nebu

## Nebula Algorithm

Nebula Algorithm (Algorithm for short) is a Spark application based on [GraphX](https://spark.apache.org/graphx/), which uses a complete algorithm tool to analyze data in the Nebula Graph database by submitting a Spark task To perform graph computing, use the algorithm under the lib repository through programming to perform graph computing for DataFrame. For details, see [What is Nebula Algorithm](../nebula-algorithm.md).
Nebula Algorithm (Algorithm for short) is a Spark application based on [GraphX](https://spark.apache.org/graphx/), which uses a complete algorithm tool to analyze data in the Nebula Graph database by submitting a Spark task To perform graph computing, use the algorithm under the lib repository through programming to perform graph computing for DataFrame. For details, see [What is Nebula Algorithm](../graph-computing/nebula-algorithm.md).

|Nebula Graph version|Algorithm version|
|:---|:---|
| {{ nebula.tag }} | {{algorithm.tag}}|

## Nebula Analytics

Nebula Analytics is an application that integrates the open-source Plato Graph Computing Framework, with which Nebula Analytics performs graph computations on Nebula Graph database data. For details, see [What is Nebula Analytics](../nebula-analytics.md).
Nebula Analytics is an application that integrates the open-source Plato Graph Computing Framework, with which Nebula Analytics performs graph computations on Nebula Graph database data. For details, see [What is Nebula Analytics](../graph-computing/nebula-analytics.md).

|Nebula Graph version|Analytics version|
|:---|:---|
Expand Down
2 changes: 1 addition & 1 deletion docs-2.0/20.appendix/learning-path.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ This topic is for anyone interested in learning more about Nebula Graph. You can
| ------------------------------------------------------------ |
| [Upgrade Nebula Graph to {{nebula.branch}}](../4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-graph-to-latest.md) |

<!-- | [Upgrade Nebula Graph from v2.0.x to {{nebula.branch}}](../4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-from-200-to-latest.md) | -->
<!-- | [Upgrade Nebula Graph from v2.0.x to {{nebula.branch}}](../4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-from-300-to-latest.md) | -->

### 3.3 Configure Nebula Graph

Expand Down
96 changes: 47 additions & 49 deletions docs-2.0/20.appendix/release-note.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,55 @@
# Nebula Graph {{ nebula.release }} release notes

## Enhancement

- Patterns can now be used in `WHERE` statements. For example: `MATCH (v:player) WHERE (v)-[:like]->() RETURN v`. [#3997](https://github.com/vesoft-inc/nebula/pull/3997)
- `CLEAR SPACE` can be used to clear graph space and index data, but the graph space schema and index names are reserved. [#3989](https://github.com/vesoft-inc/nebula/pull/3989)
- The vertex alias can be repeated in match patterns, like `MATCH (v)-->(v)`. [#3929](https://github.com/vesoft-inc/nebula/pull/3929)
- Optimized `SUBGRAPH` and `FIND PATH` for better performance. [#3871](https://github.com/vesoft-inc/nebula/pull/3871) [#4095](https://github.com/vesoft-inc/nebula/pull/4095)
- Optimized query paths to reduce redundant paths and time complexity.[4126](https://github.com/vesoft-inc/nebula/pull/4162)
- Optimized the method to get properties for better performance of `MATCH` statements. [#3750](https://github.com/vesoft-inc/nebula/pull/3750)
- Optimized `GO` and `YIELD` clauses to avoid extracting redundant properties. [#3974](https://github.com/vesoft-inc/nebula/pull/3974)
- Support for filter and limit pushdown when getting properties. [3844](https://github.com/vesoft-inc/nebula/pull/3844) [3839](https://github.com/vesoft-inc/nebula/pull/3839)
- `maxHop` is optional in MATCH variable-length paths.[#3881](https://github.com/vesoft-inc/nebula/pull/3881)
- Graph spaces are physically deleted after using `DROP SPACE`. [#3913](https://github.com/vesoft-inc/nebula/pull/3913)
- Optimized number parsing in date time, date, time. [#3797](https://github.com/vesoft-inc/nebula/pull/3797)
- Added the `toSet` function which converts `LIST` or `SET` to `SET`. [#3594](https://github.com/vesoft-inc/nebula/pull/3594)
- nGQL statements can be used to display the HTTP port of Nebula Graph services and the HTTP2 port has been disabled. [#3808](https://github.com/vesoft-inc/nebula/pull/3808)
- The number of sessions for connections to each graphd with the same client IP and the same user is limited. [#3729](https://github.com/vesoft-inc/nebula/pull/3729)
- Optimized the waiting mechanism to ensure a timely connection to the metad after the storaged starts. [#3971](https://github.com/vesoft-inc/nebula/pull/3971)
- When a node has multiple paths and an error of the disk corresponding to a particular path occurs, it is no longer to rebuild the node. [#4131](https://github.com/vesoft-inc/nebula/pull/4131)
- Optimized the job manager. [#3976](https://github.com/vesoft-inc/nebula/pull/3976) [#4045](https://github.com/vesoft-inc/nebula/pull/4045) [#4001](https://github.com/vesoft-inc/nebula/pull/4001)
- The `DOWNLOAD` and `INGEST` SST files are now managed with the job manager. [#3994](https://github.com/vesoft-inc/nebula/pull/3994)
- Support for error code display when a job fails. [#4067](https://github.com/vesoft-inc/nebula/pull/4067)
- The OS page cache can be disabled and the block cache and Nebula Graph storage cache can only be used in a shared environment, to avoid memory usage interference between applications. [#3890](https://github.com/vesoft-inc/nebula/pull/3890)
- Updated the default value of the KV separation threshold from 0 to 100. [#3879](https://github.com/vesoft-inc/nebula/pull/3879)
- Support for using gflag to set the upper limit of expression depth for a better fit of different machine environments. [#3722](https://github.com/vesoft-inc/nebula/pull/3722)
- Added a permission check for `KILL QUERY`. When the authorization is enabled, the GOD user can kill any query and the users with other roles can only kill queries that they own. [#3896](https://github.com/vesoft-inc/nebula/pull/3896)
- Support for more complier launchers, including distcc and sccache. [#3896](https://github.com/vesoft-inc/nebula/pull/3896)
- More dumping tables are supported with the meta dump tool. [#3870](https://github.com/vesoft-inc/nebula/pull/3870)
- The storage layer controls the concurrency of write operations (INSERT VERTEX or EDGE) from reporting an error and requiring a client retry to using the internal queueing mechanism. [#3926](https://github.com/vesoft-inc/nebula/pull/3926)
## Changes

## Bugfix
- Vertex without tag is not supported by default. If you want to use the vertex without tags, add --graph_use_vertex_key=true to the configuration files (nebula-graphd.conf) of all Graph services in the cluster, and add --use_vertex_key=true to the configuration files (nebula-storaged.conf) of all Storage services in the cluster.

## Enhancement

- Support to show the status of [synchronize between two clusters]((../synchronization-and-migration/replication-between-clusters.md)).

- Enhanced memory usage of `AtomicLogBuffer` to avoid OOM problems when rebuilding indexes and data synchronization.

- Fixed the crash when using a function call as part of a filter in a `LOOKUP` statement. [#4111](https://github.com/vesoft-inc/nebula/pull/4111)
- Fixed the crash when there were non-indexed properties in an `IN` clause. [#3986](https://github.com/vesoft-inc/nebula/pull/3986)
- Fixed the storage service crash when concurrently scanning vertices and edges. [#4190](https://github.com/vesoft-inc/nebula/pull/4190)
- Fixed the crash when performing aggregation queries with patterns in a `MATCH` statement. [#4180](https://github.com/vesoft-inc/nebula/pull/4180)
- Fixed the crash when getting the JSON results of a `profile` query. [#3998](https://github.com/vesoft-inc/nebula/pull/3998)
- Fixed the crash when the `async` interface in the Lambda function finished running and the task in `threadManager` was not executed. [#4000](https://github.com/vesoft-inc/nebula/pull/4000)
- Fixed the `GROUP BY` output bug. [#4128](https://github.com/vesoft-inc/nebula/pull/4128)
- Fixed the bug that the version wasn't displayed with `SHOW HOSTS` sometimes. [#4116](https://github.com/vesoft-inc/nebula/pull/4116)
- Fixed the bug on parameters for `id(n) == $var`, `id(n) IN [$var]`, `id(n) == $var.foo.bar`, and `id(n) IN $var.foo.bar`. [#4024](https://github.com/vesoft-inc/nebula/pull/4024)
- Fixed the bug that an incorrect path direction occurred in `MATCH...WHERE`. [#4091](https://github.com/vesoft-inc/nebula/pull/4091)
- Fixed the bug that the result of referencing multiple `MATCH` variables in a `WHERE` clause was incorrect. [#4143](https://github.com/vesoft-inc/nebula/pull/4143)
- Fixed the optimizer bug. [#4146](https://github.com/vesoft-inc/nebula/pull/4146)
- Fixed the bug that the storage service failed to handle Raft snapshots. [#4019](https://github.com/vesoft-inc/nebula/pull/4019)
- Fixed the bug that the storage service would not accept more logs after receiving a snapshot. [#3909](https://github.com/vesoft-inc/nebula/pull/3909)
- Fixed the bug that snapshots did not contain the vertices without tags. [#4189](https://github.com/vesoft-inc/nebula/pull/4189)
- Fixed the latest schema version read failure when the schema version is greater than 255. [#4023](https://github.com/vesoft-inc/nebula/pull/4023)
- Fixed the bug that `SHOW STATS` did not count the vertices that had no tags. [#3967](https://github.com/vesoft-inc/nebula/pull/3967)
- Fixed the bug that the timestamp was fetched incorrectly sometimes. [#3958](https://github.com/vesoft-inc/nebula/pull/3958)
- Fixed the bug that the `root` user could be granted with other roles in the graph space. [#3868](https://github.com/vesoft-inc/nebula/pull/3868)
- Fixed the duplicate count of column indexes in the lexical parser bug. [#3626](https://github.com/vesoft-inc/nebula/pull/3626)
- Unify the configuration file.

- Adjust the level of the heartbeat log.

## Bugfix

- Fixed the crash of web service when receiving some special attack messages.
- Fixed the crash on dropping the full-text index.
- Fixed the crash of map concurrency.
- Fixed the crash of raft in certain cases.
- Fixed the storage service crash when the length of the VID in a vertex or edge deletion statement exceeds the defined length on an indexed base.
- Fixed the crash caused by a wrong expression syntax.
- Fixed the crash of `LOOKUP`.
- Fixed the crash of complex `MATCH`.
- Fixed the crash in the optimization phase of multiple `MATCH`.
- Fixed the crash of variable types collected.
- Fixed the crash caused by an illegal expression.
- Fixed the bug that storage would hang when there is only the space path but no part path.
- Fixed the deadlock of leader balance job executor.
- Fixed the infinite loop when building a balance plan.
- Fixed the bug of rebuilding full-text index failure.
- Fixed the bug of using logrotate.
- Fixed the bug that the machine key is lost when restoring.
- Fixed the bug that the host can't stop when canceling the future of the snapshot.
- Fixed the bug of cache size overflow and deadlock.
- Fixed the bug of missing the `RETURN` clause in MetaDaemon.
- Fixed the split brain in the raft.
- Fixed the bug that the meta listener validated the license.
- Fixed the bug that the meta listener didn't clean data.
- Fixed the bug of the drainer syncing dirty data.
- Fixed the bug that the drainer daemon can't exit normally.
- Fixed the bug to keep the audit log async available.
- Fixed the concurrent exception of multiple `MATCH`.
- Fixed the bug that the rebuild tag index task could not be re-executed properly.
- Fixed the bug that the rebuild tag index job always failed after stopping a running job.
- Fixed the bug that the ElasticSearch writing error caused by truncation of UTF8 characters.
- Fixed the bug to remove the truncated text before writing into ElasticSearch.
- Fixed the bug when using ElasticSearch for audit logs, the audit logs of DML and DQL types are not recorded.
- Fixed the bug where the service could not be started if the log directory did not exist when `ENABLE_BREAKPAD` was enabled.
- Fixed the bug that If there is a GOD whose name is not root, the root user will be created when meta init.

## Legacy versions

Expand Down
6 changes: 5 additions & 1 deletion docs-2.0/3.ngql-guide/10.tag-statements/2.drop-tag.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,16 @@

A vertex can have one or more tags.

- If a vertex has only one tag, the vertex will become a vertex without tag.
- If a vertex has only one tag, the vertex **CANNOT** be accessed after you drop it. The vertex will be dropped in the next compaction. But its edges are available, this operation will result in dangling edges.

- If a vertex has multiple tags, the vertex is still accessible after you drop one of them. But all the properties defined by this dropped tag **CANNOT** be accessed.

This operation only deletes the Schema data. All the files or directories in the disk will not be deleted directly until the next compaction.

!!! Compatibility

In NebulaGraph {{nebula.release}}, inserting vertex without tag is not supported by default. If you want to use the vertex without tags, add `--graph_use_vertex_key=true` to the configuration files (`nebula-graphd.conf`) of all Graph services in the cluster, and add `--use_vertex_key=true` to the configuration files (`nebula-storaged.conf`) of all Storage services in the cluster.

## Prerequisites

- Running the `DROP TAG` statement requires some [privileges](../../7.data-security/1.authentication/3.role-list.md) for the graph space. Otherwise, Nebula Graph throws an error.
Expand Down
13 changes: 5 additions & 8 deletions docs-2.0/3.ngql-guide/12.vertex-statements/1.insert-vertex.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,14 @@ prop_value_list:

!!! Note

- `IF NOT EXISTS` only compares the names of the VID and the tag (excluding properties).
- `IF NOT EXISTS` will read to check whether the data exists, which will have a significant impact on performance.
- `IF NOT EXISTS` only compares the names of the VID and the tag (excluding properties).
- `IF NOT EXISTS` will read to check whether the data exists, which will have a significant impact on performance.

* `tag_name` denotes the tag (vertex type), which must be created before `INSERT VERTEX`. For more information, see [CREATE TAG](../10.tag-statements/1.create-tag.md).
- `tag_name` denotes the tag (vertex type), which must be created before `INSERT VERTEX`. For more information, see [CREATE TAG](../10.tag-statements/1.create-tag.md).

!!! caution
!!! Compatibility

Nebula Graph {{ nebula.release }} supports inserting vertices without tags.
In NebulaGraph {{nebula.release}}, inserting vertex without tag is not supported by default. If you want to use the vertex without tags, add `--graph_use_vertex_key=true` to the configuration files (`nebula-graphd.conf`) of all Graph services in the cluster, add `--use_vertex_key=true` to the configuration files (`nebula-storaged.conf`) of all Storage services in the cluster. An example of a command to insert a vertex without tag is `INSERT VERTEX VALUES "1":();`.

* `prop_name_list` contains the names of the properties on the tag.

Expand All @@ -76,9 +76,6 @@ Examples are as follows.
## Examples

```ngql
# Insert a vertex without tag.
nebula> INSERT VERTEX VALUES "1":();
# The following examples create tag t1 with no property and inserts vertex "10" with no property.
nebula> CREATE TAG IF NOT EXISTS t1();
nebula> INSERT VERTEX t1() VALUES "10":();
Expand Down
4 changes: 2 additions & 2 deletions docs-2.0/3.ngql-guide/6.functions-and-expressions/4.schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ Nebula Graph supports the following schema functions.
|string type(<edge\>) | Returns the edge type of an edge.|
|src(<edge\>)|Returns the source vertex ID of an edge. The data type of the result is the same as the vertex ID.|
|dst(<edge\>)|Returns the destination vertex ID of an edge. The data type of the result is the same as the vertex ID.|
|vertex startNode(<path\>) | Visits a path and returns its source vertex ID.|
|string endNode(<path\>) | Visits a path and returns its destination vertex ID.|
|string startNode(<path\>) | Visits a path and returns its information of source vertex ID, including VIDs, tags, properties, and values.|
|string endNode(<path\>) | Visits a path and returns its information of destination vertex ID, including VIDs, tags, properties, and values.|
|int rank(<edge\>) | Returns the rank value of an edge.|

## Examples
Expand Down
Loading