Nebula Graph v3.0.0 Release Note
Tags: database, opensource, graphql
Published: 2022-02-24 09:58:52

**Nebula Graph v3.0.0** is here! The new version introduced a series of new features including enhanced backup and restore, better support for the openCypher query language, and more fine-grained user management.

## Features

- Support backup and restore. 
https://github.com/vesoft-inc/nebula/pull/3469 
https://github.com/vesoft-inc/nebula-agent/pull/1 
https://github.com/vesoft-inc/nebula-br/pull/22
- Support openCypher queries with multiple MATCH statements. https://github.com/vesoft-inc/nebula/pull/3519 https://github.com/vesoft-inc/nebula/pull/3318
- Support Standalone Nebula Graph. 
https://github.com/vesoft-inc/nebula/pull/3310
- Support key value separation for the storage engine. https://github.com/vesoft-inc/nebula/pull/3281
- Support topN push down for LOOKUP. https://github.com/vesoft-inc/nebula/pull/3499
- Support vertex without tag. 
https://github.com/vesoft-inc/nebula/pull/3316 https://github.com/vesoft-inc/nebula/pull/3335 https://github.com/vesoft-inc/nebula/pull/3328 https://github.com/vesoft-inc/nebula/pull/3286
- Support parameterized queries. https://github.com/vesoft-inc/nebula/pull/3379
- Support queries without specifying VIDs but a LIMIT clause must be used to restrict the number of results. https://github.com/vesoft-inc/nebula/pull/3320 https://github.com/vesoft-inc/nebula/pull/3329 https://github.com/vesoft-inc/nebula/pull/3262
- Support duration. 
https://github.com/vesoft-inc/nebula/pull/3338
- Support most UTF-8 encoded characters of 1 to 4 bytes in Schema. 
https://github.com/vesoft-inc/nebula/pull/3380 https://github.com/vesoft-inc/nebula/pull/3440
- Support DESCRIBE USER. 
https://github.com/vesoft-inc/nebula/pull/3300

## Optimizations

- Refactor cluster management. 
https://github.com/vesoft-inc/nebula/pull/3343
- Add log monitor to check free bytes of log disks, change log level when space is almost full. 
https://github.com/vesoft-inc/nebula/pull/3576
- Support any string for tag names in apostrophe. 
https://github.com/vesoft-inc/nebula/pull/3424
- Support that the storage service sends partition disk paths to the meta. 
https://github.com/vesoft-inc/nebula/pull/3369 
https://github.com/vesoft-inc/nebula/pull/3416
- Add constraints on invalid password attempts. 
https://github.com/vesoft-inc/nebula/pull/3573 
https://github.com/vesoft-inc/nebula/pull/3629
- Support DELETE in TOSS. 
https://github.com/vesoft-inc/nebula/pull/3374
- Support to use logrotate. 
https://github.com/vesoft-inc/nebula/pull/3541
- Support more metrics. 
https://github.com/vesoft-inc/nebula/pull/3446 
https://github.com/vesoft-inc/nebula/pull/3605 
https://github.com/vesoft-inc/nebula/pull/3590
- Enhancement datetime parser. 
https://github.com/vesoft-inc/nebula/pull/3179
- Remove read lock in meta service to reduce the side effect of read-write locks. 
https://github.com/vesoft-inc/nebula/pull/3256
- Refactor storage indexes to solve the coupling problem between services. 
https://github.com/vesoft-inc/nebula/pull/3196
- Support specifying the floating point accuracy of the round() function. 
https://github.com/vesoft-inc/nebula/pull/3178
- Support https for ES client. 
https://github.com/vesoft-inc/nebula/pull/3150
- Move version info outside of heartbeat.  
https://github.com/vesoft-inc/nebula/pull/3378
- Support empty list, set, map. 
https://github.com/vesoft-inc/nebula/pull/3302
- Support specifying s2 region coverage parameters when creating a geo index. 
https://github.com/vesoft-inc/nebula/pull/3396
- Add version info for SHOW HOSTS. 
https://github.com/vesoft-inc/nebula/pull/3702

## Bugfix

- Fix the bug that memory isn’t released when a default value is used ​​and no value is specified in nGQL. 
https://github.com/vesoft-inc/nebula/pull/3666
- Fix the bug that the function coalesce() cannot be used. 
https://github.com/vesoft-inc/nebula/pull/3653
- Fix the bug that using multiple INSERT on an indexed tag will lead to incorrect LOOKUP results. 
https://github.com/vesoft-inc/nebula/pull/3627
- Fix the crash when the expression exceeds the depth. 
https://github.com/vesoft-inc/nebula/pull/3606
- Disable the aggregate function in YIELD clause and WHERE clauses of nGQL. 
https://github.com/vesoft-inc/nebula/pull/3597
- Fix the crash when using the aggregate function in UNWILD and WHERE clauses. 
https://github.com/vesoft-inc/nebula/pull/3397 
https://github.com/vesoft-inc/nebula/pull/3355
- Fix the bug that the tag index is rebuilt with an old schema version value. 
https://github.com/vesoft-inc/nebula/pull/3332
- Fix the bug that the query results will still contain the expired edges if we use GO...REVERSELY. 
https://github.com/vesoft-inc/nebula/pull/3536
- Fix the memory estimation error info in CentOS 6.0. 
https://github.com/vesoft-inc/nebula/pull/3534
- Fix the crash when the LOOKUP statement contains a filter that consists of a logical And expression and an IN expression with only one element. 
https://github.com/vesoft-inc/nebula/pull/3525
- Fix the bug that metad progress is suspended under high load. 
https://github.com/vesoft-inc/nebula/pull/3482
- Fix the unwinding subgraph crash. 
https://github.com/vesoft-inc/nebula/pull/3506
- Fix the DROP SPACE crash when rebuilding an index. https://github.com/vesoft-inc/nebula/pull/3406
- Fix the bug of reading memory stats under cgroup v2. 
https://github.com/vesoft-inc/nebula/pull/3419
- Fix the bug that DROP TAG INDEX deletes the edge index with same name unexpectedly, and vice versa for the deletion of the tag index. 
https://github.com/vesoft-inc/nebula/pull/3413
- Fix the bug that edges are not shown after a graph space is cloned. 
https://github.com/vesoft-inc/nebula/pull/3351
- Fix the index existence check problem. 
https://github.com/vesoft-inc/nebula/pull/3315
- Fix a bug that running the ALTER statement to query the type property may lead to a null pointer obtained by the graph service. 
https://github.com/vesoft-inc/nebula/pull/3325
- Optimize the raft to make the system more stable. 
https://github.com/vesoft-inc/nebula/pull/3172 
https://github.com/vesoft-inc/nebula/pull/3435 
https://github.com/vesoft-inc/nebula/pull/3358 
https://github.com/vesoft-inc/nebula/pull/3322 
https://github.com/vesoft-inc/nebula/pull/3031
- Cancel memory check when the ratio is greater than 1.0. 
https://github.com/vesoft-inc/nebula/pull/3289
- Fix building with ninja error. 
https://github.com/vesoft-inc/nebula/pull/3195
- Fix the bug that creating tag and edge with same name at the same time may be both succeed. 
https://github.com/vesoft-inc/nebula/pull/3735
- Fix the bug that failed to create full-text index for the same tag or edge internal id in different SPACE. 
https://github.com/vesoft-inc/nebula/pull/3747
- Fix variable inconsistency in YIELD clause and GO statement. 
https://github.com/vesoft-inc/nebula/pull/3430
- Fix the crash when schema version is greater than 256. 
https://github.com/vesoft-inc/nebula/pull/3893

## Incompatibility
Nebula Graph 3.0.0 does not support most ecosystem tools of v2.x, please upgrade the ecosystem tools.

- The storage services added in the configuration files cannot be read or written directly. The configuration files only register the storage services into the meta services. You must run the ADD HOSTS command to read and write data on storage servers. 
https://github.com/vesoft-inc/nebula/pull/3343
- Disable ZONE and GROUP. 
https://github.com/vesoft-inc/nebula/pull/3776 
https://github.com/vesoft-inc/nebula/pull/3825  
https://github.com/vesoft-inc/nebula/pull/3330
- Disable BALANCE DATA. 
https://github.com/vesoft-inc/nebula/pull/3756
- Modify the default session timeout from 0 to 28800 seconds, limit the value between 1 and 604800 seconds. 
https://github.com/vesoft-inc/nebula/pull/3357 
https://github.com/vesoft-inc/nebula/pull/3807
- Add SHOW LOCAL SESSIONS and SHOW LOCAL QUERIES commands, and deprecate SHOW ALL QUERIES. 
https://github.com/vesoft-inc/nebula/pull/3488
- A tag is not required for a vertex. DELETE VERTEX only deletes the vertices, and does not delete the related outgoing and incoming edges of the vertices. At this time, there will be dangling edges by default. 
https://github.com/vesoft-inc/nebula/pull/3316 
https://github.com/vesoft-inc/nebula/pull/3335 
https://github.com/vesoft-inc/nebula/pull/3328 
https://github.com/vesoft-inc/nebula/pull/3286
- Disable the YIELD clause to return custom variables. 
https://github.com/vesoft-inc/nebula/pull/3271
- The YIELD clause is required in the FETCH, FIND PATH, LOOKUP, GET SUBGRAPH and GO statements. 
https://github.com/vesoft-inc/nebula/pull/3056 
https://github.com/vesoft-inc/nebula/pull/3139 
https://github.com/vesoft-inc/nebula/pull/2957
- Add non-reserved keywords: s2_max_level, s2_max_cells. 
https://github.com/vesoft-inc/nebula/pull/3396
- It is required to specify a tag to query properties of a vertex in a MATCH statement. For example, from return v.name to return v.player.name. 
https://github.com/vesoft-inc/nebula/pull/3255

If you encounter any problems in the process of using Nebula Graph, please refer to [Nebula Graph Database Manual](https://docs.nebula-graph.io/3.0.0/pdf/NebulaGraph-EN.pdf) to troubleshoot the problem. It records in detail the knowledge points and specific usage of the graph database and the graph database Nebula Graph.

Join our [Slack channel](https://join.slack.com/t/nebulagraph/shared_invite/zt-7ybejuqa-NCZBroh~PCh66d9kOQj45g) if you want to discuss with the rest of the Nebula Graph community!