Nebula Graph v3.1.0 has just been released #4214

I am thrilled to announce that Nebula Graph v3.1.0 has just been released, with a bunch of enhancements and bug fixes. Below are the details:

Enhancements

  • Patterns can now be used in WHERE statements. For example: MATCH (v:player) WHERE (v)-[:like]->() RETURN v. #3997
  • CLEAR SPACE can be used to clear graph space and index data, but the graph space schema and index names are reserved. #3989
  • The vertex alias can be repeated in match patterns, like MATCH (v)-->(v). #3929
  • Optimized SUBGRAPH and FIND PATH for better performance. #3871 #4095
  • Optimized query paths to reduce redundant paths and time complexity. #4126
  • Optimized the method to get properties for better performance of MATCH statements. #3750
  • Optimized GO and YIELD clauses to avoid extracting redundant properties. #3974
  • Support for filter and limit pushdown when getting properties. #3844 #3839
  • Support for aggregation pushdown in LOOKUP statements. #3504
  • maxHop is optional in MATCH variable-length paths. #3881
  • Graph spaces are physically deleted after using DROP SPACE. #3913
  • Optimized number parsing in date time, date, time. #3797
  • Added the toSet function which converts LIST or SET to SET. #3594
  • nGQL statements can be used to display the HTTP port of Nebula Graph services and the HTTP2 port has been disabled. #3808
  • The number of sessions for connections to each graphd with the same client IP and the same user is limited. #3729
  • Optimized the waiting mechanism to ensure a timely connection to the metad after the storaged starts. #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
  • Optimized the job manager. #3976 #4045 #4001
  • The DOWNLOAD and INGEST SST files are now managed with the job manager. #3994
  • Support for error code display when a job fails. #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
  • Updated the default value of the KV separation threshold from 0 to 100. #3879
  • Support for using gflag to set the upper limit of expression depth for a better fit of different machine environments. #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
  • Support for more complier launchers, including distcc and sccache. #3896
  • More dumping tables are supported with the meta dump tool. #3896
  • The storage layer controls the concurrency of write operations (INSERT VERTEX or EDGE) from reporting an error and requiring the client retry to using the internal queueing mechanism. #3926

Bug fixes

  • Fixed the crash when using a function call as part of a filter in a LOOKUP statement. #4111
  • Fixed the crash when there were non-indexed properties in an IN clause. #3986
  • Fixed the storage service crash when concurrently scanning vertices and edges. #4190
  • Fixed the crash when performing aggregation queries with patterns in a MATCH statement. #4180
  • Fixed the crash when getting the JSON results of a profile query. #3998
  • Fixed the crash when the async interface in the Lambda function finished running and the task in threadManager was not executed. #4000
  • Fixed the GROUP BY output bug. #4128
  • Fixed the bug that the version wasn’t displayed with SHOW HOSTS sometimes. #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
  • Fixed the bug that an incorrect path direction occurred in MATCH…WHERE. #4091
  • Fixed the bug that the result of referencing multiple MATCH variables in a WHERE clause was incorrect. #4143
  • Fixed the optimizer bug. #4146
  • Fixed the bug that the storage service failed to handle Raft snapshots. #4019
  • Fixed the bug that the storage service would not accept more logs after receiving a snapshot. #3909
  • Fixed the bug that snapshots did not contain the vertices without tags. #4189
  • Fixed the latest schema version read failure when the schema version is greater than 255. #4023
  • Fixed the bug that SHOW STATS did not count the vertices that had no tags. #3967
  • Fixed the bug that the timestamp was fetched incorrectly sometimes. #3958
  • Fixed the bug that the root user could be granted with other roles in the graph space. #3868
  • Fixed the duplicate count of column indexes in the lexical parser bug. #3626

Feel free to start any discussion about this release in this thread.