Nebula Graph is a distributed, fast open-source graph database featuring horizontal scalability and high availability

Overview


English | 中文
A distributed, scalable, lightning-fast graph database

build docker image workflow make nebula packages workflow nebula star nebula fork codecov

What is Nebula Graph

Nebula Graph is an open-source graph database capable of hosting super large-scale graphs with billions of vertices (nodes) and trillions of edges, with milliseconds of latency. It delivers enterprise-grade high performance to simplify the most complex data sets imaginable into meaningful and useful information.

Below is the architecture of Nebula Graph:

image

Compared with other graph database solutions, Nebula Graph has the following advantages:

  • Symmetrically distributed
  • Storage and computing separation
  • Horizontal scalability
  • Strong data consistency by RAFT protocol
  • SQL-like query language
  • Role-based access control for higher level security

Quick start

Read the Getting started guide to quickly get going with Nebula Graph.

Please note that you must install Nebula Graph by installing source code, rpm/deb packages or docker compose, before you can actually start using it. If you prefer a video tutorial, visit our YouTube channel.

In case you encounter any problem, be sure to ask us on our official forum.

Documentation

Visualization Tool: Nebula Graph Studio

Visit Nebula Graph Studio for visual exploration of graph data on a web UI.

Supported Clients

Licensing

Nebula Graph is under Apache 2.0 license. So you can freely download, modify, and deploy the source code to meet your needs. You can also freely deploy Nebula Graph as a back-end service to support your SaaS deployment.

In order to prevent cloud providers from monetizing the project without contributing back, we added Commons Clause 1.0 to the project. As mentioned, we are fully committed to the open source community. We would love to hear your thoughts on the licensing model and are willing to make it more suitable for the community.

Contributing

Contributions are warmly welcomed and greatly appreciated. Here are a few ways you can contribute:

Getting help & Contact

In case you encounter any problems playing around Nebula Graph, please reach out for help:

If you like Nebula Graph, please leave us a star. nebula star

Comments
  • Spark sstfile generator

    Spark sstfile generator

    Reopen a new PR after this repo changes from private to public, replacing PR#208

    A spark job which does the following things:

    parsing an input mapping file to map a hive table to a tag/edge, in which the table's PK(logically) should be identified use nebula native client to encode a tag's key and values define a custom hadoop OutputFormat and RecordWriter, which should generate a sub dir for one partition per worker in specified sst file output dir

    ready-for-testing 
    opened by spacewalkman 51
  • Improve heartbeat between metad and storaged by MetaClient

    Improve heartbeat between metad and storaged by MetaClient

    1. Add the LastUpdateTimeMan to record the latest metadata change(insert, update, delete) time on the MetaServer side.
    2. Enrich the information(lastUpdateTime, partitions leaderDist) of heartbeat exchange between MetaServer and MetaClient at storage node.
    3. It could optimize the load data logic inside meta client by lastUpdateTime, which makes metadata synchronization smarter and more timely.
    4. Remove sendHeartBeat_ and load_data_interval_secs from MetaClient class, and add the bool inStoraged_ to indicate whether a metaclient is in storaged.

    close #1173 close #1060

    ready-for-testing 
    opened by zhangguoqing 41
  • Support show create tag/edge xxx, show create space xxx SQL

    Support show create tag/edge xxx, show create space xxx SQL

    Support show create tag/edge xxx, show create space xxx SQL Close #439

    This PR contain TTL_schema (PR #422). Because it depends on the attributes of the schema.

    ready-for-testing 
    opened by ayyt 39
  • Ttl schema

    Ttl schema

    TTL feature in syntax and meta schema. Contains the following content:

    create tag/edge
    alter tag/edge
    show create tag/edge
    
    describe tag/edge  only display column information, not display schema attributes.
    

    show create tag/edge in PR #439

    ready-for-testing 
    opened by ayyt 39
  • Access rights control

    Access rights control

    Need to establish the entire access rights control mechanism. Here is the current thoughts

    1. There is one God user admin, like root of Linux systems. admin is the only person who can create a Graph Space

    2. All other access rights are based on Graph Space. There are three types of rights for each Graph Space: Admin, User, Guest

    Admin is an administrator for a given Graph Space. An Admin can delete the Graph Space, can manage the schema in the Graph Space, and can access (read and write) the data in the Graph Space

    User is a normal user for a given Graph Space. A User can access (read and write) the data in the Graph Space

    Guest is a read-only role for a given Graph Space. A Guest cannot modify the data in the Graph Space

    1. A normal user will associate with a default Graph Space, which is the current Graph Space as soon as the user logs on

    2. A normal user can have different access right on different Graph Spaces

    opened by sherman-the-tank 38
  •     Issue#192 Support multiple edge types in GO statement

    Issue#192 Support multiple edge types in GO statement

    Summary: Implemented over multiple edge types(include over "*" ) for Support all edge type in Go statement.

    1. Modification of the storage interface: 1.1 Modify the GetNeighborsRequest structure, pass a list of edge_type to the storage layer. 1.2 And add an over_all_edges tag to mark "over *". Modify the PropDef structure to represent both tag_id and edge_type 1.3 Added the EdgeData structure to represent the edge data returned to the client.
    2. When "over *", the current implementation was first getting all the types of edges from the meta, and then call the storage interface.
    3. When the yield statement does not exist, delete the Deleted the default rename("dst_" to "id").
    4. Delete the getOutBound and getInBound interfaces, because the edges passed to the storage may have both in and out.
    5. Added a map of edge type to edge name (toEdgeName) and a map of spaceid to all edgetype for metaclient.
    6. Returns the default value of the corresponding type when some properties do not exist.
    ready-for-testing 
    opened by monadbobo 35
  • Add config manager to store configurations that could be changed during the runtime

    Add config manager to store configurations that could be changed during the runtime

    GflagsManager is used to maintain all gflags in our program. It works like this:

    1. When we start-up, we will parse all gflags passed in, and try to register on meta server.
    2. We can list all gflags, get some specified gflag, or update some mutable glfags in console.
    3. GlfagsManager will poll gflags from meta server periodically, and update those gflags that value is updated. So for mutable gflags, we can change them dynamically. (e.g. load_data_interval_secs)

    How to use config manager

    There are configs for graph/meta/storage in our system. We can set config of one specified module, or we can set the config of same name to same value in different module. See example belows.

    in console

    • We can update those mutable variables like this:

    Set and get a specified module's config.

    UPDATE VARIABLES graph:load_data_interval_secs=10
    GET VARIABLES graph:load_data_interval_secs
    

    it will show like this:

    ==============================================================
    | module |                    name |  type |    mode | value |
    ==============================================================
    |  GRAPH | load_data_interval_secs | INT64 | MUTABLE |    10 |
    --------------------------------------------------------------
    

    Set and get config of same name to all module

    UPDATE VARIABLES graph:load_data_interval_secs=10
    GET VARIABLES graph:load_data_interval_secs
    

    it will show like this:

    ===============================================================
    |  module |                    name |  type |    mode | value |
    ===============================================================
    |   GRAPH | load_data_interval_secs | INT64 | MUTABLE |    10 |
    ---------------------------------------------------------------
    |    META | load_data_interval_secs | INT64 | MUTABLE |    10 |
    ---------------------------------------------------------------
    | STORAGE | load_data_interval_secs | INT64 | MUTABLE |    10 |
    ---------------------------------------------------------------
    
    • For immutable variables, we can only get.

    Or we can list configs in all module or single module

    SHOW VARIABLES
    SHOW VARIABLES graph
    

    in code

    For those immutable gflags (used to initialize or never changes), GflagsManager will not effect them, and the code use them just as the way before (FLAGS_xxx);

    For those mutable gflags, GflagsManager will update its value once get new value from meta server. But if we want to use mutable gflags, we may have conflicts, in gflags it says: These programmatic ways to access flags are thread-safe, but direct access is only thread-compatible. So as for mutalbe gflags, we need to get its value by calling GetCommandLineOption, see the example below:

         std::string flag;
         gflags::GetCommandLineOption("load_config_interval_secs", &flag);
         size_t delayMS = stoi(flag) * 1000 + folly::Random::rand32(900);
    

    GetCommandLineOption only gives you a value in string, so you may need to transform to the type you want.

    Some issues for now

    1. For those mutable gflgas, we need to specify its name in hard code, any better ideas?
    2. When console print result, type of different rows must be the same, so I transform all values to string for now. (when we list all variables, it contains value of different type)
    3. For now all uint32 and int32 glags are converted to int64 for now. (The reason is we can only parse int64, double, bool, string in console)
    ready-for-testing 
    opened by critical27 32
  • Add prefix bloom filter support

    Add prefix bloom filter support

    Currently, The DataModel of Vertex and Edge are as follows

    (1)Vertex: type(1byte)_PartID(3bytes)_VertexID(8bytes)_TagID(4bytes)_Timestamp(8bytes) (2)Edge: type(1byte)_PartID(3bytes)_VertexID(8bytes)_EdgeType(4bytes)_Rank(8bytes)_otherVertexId(8bytes)_Timestamp(8bytes)

    We can use “type(1byte)_PartID(3bytes)_VertexID(8bytes)” as the value for prefix bloom filter, QueryEdgePropsProcessor and QueryVertexPropsProcessor can benefit from this a lot

    ready-for-testing 
    opened by chenxu14 28
  • Implement create space, drop space, add hosts, show hosts , remove hosts via MetaClient

    Implement create space, drop space, add hosts, show hosts , remove hosts via MetaClient

    #200 Support some admin sentences in Query Engine. Implement the following SQL via MetaClient.: create space drop space add hosts show hosts remove hosts

    opened by ayyt 28
  • Fixed use of precompiled header

    Fixed use of precompiled header

    Currently, PCH does not take effect when building in the out-of-source way, since the .gch file, by design, must be at the same directory with the original header. This PR resolves this problem by generating the .gch file in the source tree, i.e. ${CMAKE_CURRENT_SOURCE_DIR}.

    At the mean time, the former implementation of FindPCHSupport does not handle the compile options properly, so that the options used for PCH generation and source compilation are different, which is erroneous. This PR also addresses this issue.

    ready-for-testing 
    opened by dutor 25
  • Update docker related configuration

    Update docker related configuration

    • Export ports of nebula services in vesoft/nebula-graph docker image
    • Reset log level in docker image
    • Set stderr threshold in nebula graph configure file rather than graph daemon implementation
    • Update CI configuration for package and build nebula
    • Change package script parameter about package type: RPM or DEB

    reference

    ready-for-testing 
    opened by yixinglu 25
  • The result of property-accessing expression is incorrect

    The result of property-accessing expression is incorrect

    Describe the bug (required) As title.

    Your Environments (required) nebula v3.3.0

    How To Reproduce(required)

    ([email protected]) [nba]> match (v:player)-[e]->(n) with {key:v} as m return m.key.player.age limit 3
    +------------------+
    | m.key.player.age |
    +------------------+
    | __NULL__         |
    | __NULL__         |
    | __NULL__         |
    +------------------+
    Got 3 rows (time spent 17007/17372 us)
    

    Expected behavior Get the correct property.

    type/bug severity/none affects/none 
    opened by czpmango 2
  • Fix update sessions when leader change happens

    Fix update sessions when leader change happens

    What type of PR is this?

    • [x] bug
    • [ ] feature
    • [ ] enhancement

    What problem(s) does this PR solve?

    Issue(s) number:

    Close https://github.com/vesoft-inc/nebula-ent/issues/2152 https://github.com/vesoft-inc/nebula-ent/issues/2176

    Description:

    UpdateSessions() should deal with errors like leader change.

    How do you solve it?

    Special notes for your reviewer, ex. impact of this fix, design document, etc:

    Checklist:

    Tests:

    • [ ] Unit test(positive and negative cases)
    • [ ] Function test
    • [ ] Performance test
    • [ ] N/A

    Affects:

    • [ ] Documentation affected (Please add the label if documentation needs to be modified.)
    • [ ] Incompatibility (If it breaks the compatibility, please describe it and add the label.)
    • [ ] If it's needed to cherry-pick (If cherry-pick to some branches is required, please label the destination version(s).)
    • [ ] Performance impacted: Consumes more CPU/Memory

    Release notes:

    Please confirm whether to be reflected in release notes and how to describe:

    ex. Fixed the bug .....

    ready-for-testing ready for review cherry-pick-v3.4 
    opened by Aiee 0
  • `skip`+`limit` return results, some data is missing

    `skip`+`limit` return results, some data is missing

    • NebulaGraph version is v3.3

    When using the official basketballplayer data set + skip + limit in Cypher to do data pagination, I found a weird rule. As long as the number of skip is less than / equal to one-half of the limit, there will be data loss, which is less than one-third After about one hour, all data is lost:

    image

    image

    image

    image

    statements as below:

    ([email protected]) [basketballplayer]> match  ()-[e]->() return e  skip 100 limit 34
    +-----------------------------------------------------------------------+
    | e                                                                     |
    +-----------------------------------------------------------------------+
    | [:follow "player109"->"player125" @0 {degree: 90}]                    |
    | [:serve "player111"->"team200" @0 {end_year: 2018, start_year: 2016}] |
    +-----------------------------------------------------------------------+
    Got 2 rows (time spent 12.682ms/20.443416ms)
    
    Mon, 09 Jan 2023 06:48:09 UTC
    
    ([email protected]) [basketballplayer]> match  ()-[e]->() return e  skip 100 limit 3
    +---+
    | e |
    +---+
    +---+
    Empty set (time spent 7.91ms/8.722916ms)
    
    Mon, 09 Jan 2023 06:48:23 UTC
    
    ([email protected]) [basketballplayer]> match  ()-[e]->() return e  skip 100 limit 30
    +---+
    | e |
    +---+
    +---+
    Empty set (time spent 24.068ms/31.6455ms)
    
    Mon, 09 Jan 2023 06:49:42 UTC
    

    ref: https://discuss.nebula-graph.com.cn/t/topic/11863

    type/bug severity/none affects/none 
    opened by QingZ11 0
  • Rethink variable scope validation for path pattern

    Rethink variable scope validation for path pattern

    Please check the FAQ documentation before raising an issue

    Describe the bug (required)

    At present, the variable validation in path pattern only happens in match clause, but when the path pattern placed in the expression context, the variable's behavior will not be expected.

    for example:

    MATCH (v:player{name: 'Tim Duncan'})-[e:like*0..2]-(v2)
    WHERE size([i in e WHERE (v)-[i]-(v2) | i])>1
    RETURN count(*) AS cnt
    
    //------
    
    MATCH (v:player{name: 'Tim Duncan'})-[e:like*0..2]-(v2)-[i]-(v3)
    WHERE size([i in e WHERE (v)-[i]-(v2) | i])>1
    RETURN count(*) AS cnt
    

    above tests are from the PR #5215 , and report the following error:

    [ERROR (-1004)]: SyntaxError: syntax is ambiguous near `(v)-[i]-(v2)'
    

    Your Environments (required)

    • OS: uname -a
    • Compiler: g++ --version or clang++ --version
    • CPU: lscpu
    • Commit id (e.g. a3ffc7d8)

    How To Reproduce(required)

    Steps to reproduce the behavior:

    1. Step 1
    2. Step 2
    3. Step 3

    Expected behavior

    Additional context

    type/bug severity/none affects/none 
    opened by yixinglu 2
  • Create edge index failed

    Create edge index failed

    Describe the bug The edge index could not be created successfully as expected.

    Environments nebula 3.3.0

    How To Reproduce

    ([email protected]) [test]>  
      """
          CREATE EDGE IF NOT EXISTS E2(
            id int NOT NULL DEFAULT 0 COMMENT "primary key",
            name string NOT NULL,
            createDate DATETIME, location geography(polygon),
            isVisited bool COMMENT "kHop search flag",
            nickName TIME DEFAULT time()
            )
            TTL_DURATION = 100, TTL_COL = "id", COMMENT = "TAG B";
          """
    Execution succeeded (time spent 2535/2793 us)
    
    ([email protected]) [test]>  CREATE EDGE INDEX IF NOT EXISTS idx_E_3 on E2(isVisited, id, nickName, createDate, name);
    [ERROR (-1005)]: Invalid param!
    
    ([email protected]) [test]>  CREATE EDGE INDEX IF NOT EXISTS idx_E_3 on E2(isVisited, id, nickName, createDate);
    Execution succeeded (time spent 1863/2149 us)
    
    

    Expected behavior The index should be created successfully.

    type/bug severity/trivial affects/none 
    opened by czpmango 2
Releases(v3.3.0)
  • v3.3.0(Oct 31, 2022)

    Enhancement

    Bugfix

    • Fixed the crash of variable types collected. #4724

    • Fixed the crash in the optimization phase of multiple MATCH. #4780

    • Fixed the bug of aggregate expression type deduce. #4706

    • Fixed the incorrect result of the OPTIONAL MATCH statement to give an error message, because the WHERE clause of the OPTIONAL MATCH statement references variables defined by other MATCH statements that was not yet supported. https://github.com/vesoft-inc/nebula/pull/4670

    • Fixed the bug of parameter expression in the LOOKUP statement. #4664

    • Fixed the bug that YIELD DISTINCT returned a distinct result set in the LOOKUP statement. #4651

    • Fixed the bug that ColumnExpression encode and decode are not matched. #4413

    • Fixed the bug that id($$) filter was incorrect in the GO statement. #4768

    • Fixed the bug that full scan of MATCH statement when there is a relational In predicate. #4748

    • Fixed the optimizer error of MATCH statement.#4771

    • Fixed wrong output when using pattern expression as the filter in MATCH statement. #4778

    • Fixed the bug that tag, edge, tag index and edge index display incorrectly. #4616

    • Fixed the bug of date time format. #4524

    • Fixed the bug that the return value of the date time vertex was changed. #4448

    • Fixed the bug that the startup service failed when the log directory not existed and enable_breakpad was enabled. #4623

    • Fixed the bug that after the metad stopped, the status remained online. #4610

    • Fixed the corruption of the log file. #4409

    • Fixed the bug that ENABLE_CCACHE option didn't work. #4648

    • Abandoned uppercase letters in full-text index names. #4628

    • Disable COUNT(DISTINCT *) . #4553

    Change

    • Vertices without tags are 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. #4629

    Download

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v3.2.1(Sep 16, 2022)

    Bug fix

    • Fixed the crash caused by LOOKUP statements with AND and IN operators.#4551
    • Fixed the crash caused by an invalid filter in GetProp. #4568
    • Fixed the crash caused by handling a wrong syntax expression. #4607
    • Fixed concurrent exceptions related to the multi-match statements. #4605
    • Fixed the bug that expired data could not be filtered out when scanning vertices or edges.#4578
    • Fixed the bug that the properties function returned UNKNOWN_PROP. #4604
    • Fixed the split brain in raft. #4479
    • Replaced obsolete RocksDB API. #4395

    Download

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v3.2.0(Jul 18, 2022)

    Enhancement

    • Support the extract() function. #4098
    • Optimized the configuration file and added some configurations. #4310
    • Added optimization rules to remove the useless AppendVertices operator. #4277
    • Added optimization rules for pushing down the filter of edges. #4270
    • Added optimization rules for pushing down the filter of vertex properties. #4260
    • Eliminated the VID predication filter. #4249
    • Reduced the amount of data to be copied for Join operations when moving data. #4283
    • Obtained property values through subscripts to reduce the time-consuming of property queries. #4242
    • Optimized the performance of SHORTEST PATH. #4071
    • Optimized the performance of SUBGRAPH. #4226
    • Reduced the amount of data to be copied for Traverse and AppendVertices operators when moving data. #4176
    • Enhanced optimization rules for removing invalid project operators. #4157
    • Optimized memory allocation with Arena Allocator. #4239

    Bugfix

    • Fixed the web service crash when receiving some special attack messages. #4334
    • Fixed the storage service crash when scanning properties concurrently. #4268
    • Fixed the storage service crash when the name length of the inserting edge that exceeded the limit. #4305
    • Fixed the crash when enabling the concurrent query mode. #4288
    • Fixed the storage service crash when querying for indexes with the NULL property. #4234
    • Fixed the crash when dropping full-text index. #4384
    • Fixed the crash when using flags put interface without the body. #4405
    • Fixed the storage crash when deleting vertex and edge specify vid more than our defined before in space.#4406
    • Fixed the bug that standalone daemon exited after a restart. #4269
    • Fixed the bug that the result of the Join dot format explanation was incorrect for GraphViz online tool, which caused by twice JSON conversions. #4280
    • Fixed the bug in property queries. The use of dots in schema is now disabled. #4194
    • Fixed the bug that the machine lost the key when restoring data. #4311
    • Fixed the bug that using the same statement to return same vertex different properties, and the results showed BAD TYPE. #4151
    • Fixed the error message in statement MATCH p=(:team)-->() RETURN p LIMIT 1 without indexes. #4053
    • Enhanced the error message for operators AND and OR. #4304
    • Fixed the bug that there were no stats under the condition of using indexes. #4353
    • Fixed the bug that the timezone of cluster is different. #4391

    Download

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Apr 24, 2022)

    enhancement

    • 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
    • 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. #3870
    • 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

    Bugfix

    • 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

    download

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v3.0.2(Mar 29, 2022)

    bugfix

    • Support running Nebula Graph with a docker image on the ARM architecture. https://github.com/vesoft-inc/nebula/pull/3939/
    • Optimize the processing of using the version-matched client to connect to the server to avoid the connection failure problem. https://github.com/vesoft-inc/nebula/pull/4075

    download

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v3.0.1(Mar 15, 2022)

    bugfix

    • Fix the bug that it maybe take a long time for storage online after ADD HOSTS. https://github.com/vesoft-inc/nebula/pull/3950
    • Fix the crash of graph service when clients lower than v2.6 connect to Nebula service. https://github.com/vesoft-inc/nebula/pull/3942
    • Fix the crash of upgrading when there is no tag in SPACE. https://github.com/vesoft-inc/nebula/pull/3920
    • Fix the crash of graph service when pattern is MATCH <node>, <node>, <path>. https://github.com/vesoft-inc/nebula/pull/3915

    download

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Feb 16, 2022)

    Nebula Graph v3.0.0 only supports upgrading from v2.x release (the lowest version is v2.0.0 GA). If you want to upgrade from v1 to v3, you should first upgrade from v1 to v2, see details. And Nebula Graph v3.0.0 don‘t support the most ecosystem tools of v2.x, please upgrade the ecosystem tools.

    feature

    • 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

    enhancement

    • 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

    incompatible

    Nebula Graph v3.0.0 does not support the 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

    download

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v2.6.2(Jan 26, 2022)

    bugfix

    • Fixed the bug that memory not released when default value was used ​​when no value was specified in nGQL. https://github.com/vesoft-inc/nebula/pull/3806
    • Fixed the bug of reading memory stats under cgroup v2. https://github.com/vesoft-inc/nebula/pull/3792
    • Fixed 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/3793

    download:

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v2.6.1(Nov 3, 2021)

    bugfix

    • Fixed the bug that the nebula connection will be interrupted if the YIELD clause in LOOKUP contains aggregate function. https://github.com/vesoft-inc/nebula/pull/3245

    download:

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Oct 25, 2021)

    feature

    • Support TOSS. https://github.com/vesoft-inc/nebula/pull/2525
    • Support ZONE. https://github.com/vesoft-inc/nebula/issues/2604
    • Support Geo Spatial. https://github.com/vesoft-inc/nebula/pull/2954 https://github.com/vesoft-inc/nebula/pull/2979 https://github.com/vesoft-inc/nebula/pull/3043
    • Support crypto in transportation. https://github.com/vesoft-inc/nebula/pull/2584
    • Support return query result as JSON format. https://github.com/vesoft-inc/nebula/pull/2824
    • Support to clone space meta. https://github.com/vesoft-inc/nebula/pull/2763
    • Support lookup index scan using IN expression as filter. https://github.com/vesoft-inc/nebula/pull/2906
    • Integration Breakpad. https://github.com/vesoft-inc/nebula/pull/2536
    • Support copying the local folder of metad to remote. https://github.com/vesoft-inc/nebula/pull/2532
    • Support DELETE TAG. https://github.com/vesoft-inc/nebula/pull/2520
    • Support concat function. https://github.com/vesoft-inc/nebula/pull/2540
    • Support SHOW META LEADER. https://github.com/vesoft-inc/nebula/pull/2542

    enhancement

    • Optimize the computation of index scan limit pushdown. https://github.com/vesoft-inc/nebula/pull/2905 https://github.com/vesoft-inc/nebula/pull/2823 https://github.com/vesoft-inc/nebula/pull/2796
    • Optimize the calculation of sampling and limit pushdown at each step of the go statement. https://github.com/vesoft-inc/nebula/pull/2904 https://github.com/vesoft-inc/nebula/pull/2853 https://github.com/vesoft-inc/nebula/pull/2831
    • Better yield data format. https://github.com/vesoft-inc/nebula/pull/2555 https://github.com/vesoft-inc/nebula/pull/2572 https://github.com/vesoft-inc/nebula/pull/2779 https://github.com/vesoft-inc/nebula/pull/2895 https://github.com/vesoft-inc/nebula/pull/2944
    • Enable prefix bloom filter by default to improve performance. https://github.com/vesoft-inc/nebula/pull/2860
    • Support server to verify client version to make sure the connection reliability(client version start from v2.6.0). https://github.com/vesoft-inc/nebula/pull/2965
    • Optimize flow control when pulling the entire partition. https://github.com/vesoft-inc/nebula/pull/2557
    • SHOW JOBS only show space related. https://github.com/vesoft-inc/nebula/pull/2872
    • Grant job permission for all roles except GUEST. https://github.com/vesoft-inc/nebula/pull/2928
    • Improve memory watermark detection. https://github.com/vesoft-inc/nebula/pull/2885
    • Support to kill the slow queries of storage. https://github.com/vesoft-inc/nebula/pull/2534

    bugfix

    • Fixed the bug that clean part rocksdb data when raftpart::reset. https://github.com/vesoft-inc/nebula/pull/2522
    • Fixed the bug which insert mismatched date time type. https://github.com/vesoft-inc/nebula/pull/2527
    • Fixed the bug that setting millisecond failed but microsecond worked. https://github.com/vesoft-inc/nebula/pull/2781
    • Fixed the meta service crash when inserting too much data in batches(millions lines). https://github.com/vesoft-inc/nebula/pull/2813
    • Fixed the crash that getting edge when no edge schema exist in space. https://github.com/vesoft-inc/nebula/pull/2571
    • Fixed the bug for that GO with WHERE clause expression eval when prop data type is fixed_string. https://github.com/vesoft-inc/nebula/pull/2762
    • Fixed the bug when find all path. https://github.com/vesoft-inc/nebula/pull/2773
    • Fixed the bug that users without roles have the permission to find all roles of SPACE. https://github.com/vesoft-inc/nebula/pull/2778
    • Fixed the bug of case expression. https://github.com/vesoft-inc/nebula/pull/2819
    • Fixed the infinite loop when use time(). https://github.com/vesoft-inc/nebula/pull/2820
    • Fixed the bug while task node shutdown, this job will display "running" forever. https://github.com/vesoft-inc/nebula/pull/2843
    • Fixed the bug insert statements may cause inconsistent attribute values between replicas in the case of multiple replicas. https://github.com/vesoft-inc/nebula/pull/2862
    • Fixed the bug that space not right when submit job after USE. https://github.com/vesoft-inc/nebula/pull/3010
    • Fixed the bug that getting attribute error of thrift struct when column is not nullable. https://github.com/vesoft-inc/nebula/issues/3011
    • Fixed the bug that graphd is always running even if meta is not ready. https://github.com/vesoft-inc/nebula/issues/3048
    • Fixed the bug that dangling edge will return a null vertex when use FIND PATH WITH PROP. https://github.com/vesoft-inc/nebula/pull/3008
    • Fixed the crash when YIELD DISTINCT map value. https://github.com/vesoft-inc/nebula/pull/3051
    • Fixed the bug that the service still starts with a wrong ip/host. https://github.com/vesoft-inc/nebula/pull/3057
    • Fixed the bug that alter the same property in one statement. https://github.com/vesoft-inc/nebula/pull/3036
    • Fixed the bug that the multi-step filtering on edge is invalid. https://github.com/vesoft-inc/nebula/pull/3144

    download:

    • CN: https://nebula-graph.com.cn/download/
    • EN: https://nebula-graph.io/download/
    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Apr 15, 2021)

    New Features

    • YIELD clause supports DISTINCT  https://github.com/vesoft-inc/nebula/pull/2368
    •  Add lookup_concurrently option. LOOKUP supports traversing all partitions concurrently, which improves the performance significantly  https://github.com/vesoft-inc/nebula/pull/2417
    • LOOKUP clause supports DISTINCTLOOKUP ON supports returning srcid and dstid of an edge  https://github.com/vesoft-inc/nebula/pull/2415

    Bugfix

    • Fix the issue that YIELD -1*1 may result in an overflow  https://github.com/vesoft-inc/nebula/pull/2411
    • Fix the issue that leader election may be unstable when RPC times out https://github.com/vesoft-inc/nebula/pull/2419
    • Fix UnaryExpression bug which causes storaged crash  https://github.com/vesoft-inc/nebula/pull/2412
    • Fix the issue LIMIT and OFFSET do not return the expected result https://github.com/vesoft-inc/nebula/pull/2428
    • Fix the issue that partial results may return after the leader change. https://github.com/vesoft-inc/nebula/pull/2465
    • Fix the issue that executing FETCH PROP ON *  may lead to graphd crash after altering schema. https://github.com/vesoft-inc/nebula/pull/2461

    Changelog

    • Remove option check_leader. Metaclient always gets the meta info from the leader server. https://github.com/vesoft-inc/nebula/pull/2403,https://github.com/vesoft-inc/nebula/pull/2423
    Source code(tar.gz)
    Source code(zip)
    nebula-1.2.1.el6-5.x86_64.rpm(76.87 MB)
    nebula-1.2.1.el6-5.x86_64.rpm.sha256sum.txt(115 bytes)
    nebula-1.2.1.el7-5.x86_64.rpm(73.67 MB)
    nebula-1.2.1.el7-5.x86_64.rpm.sha256sum.txt(115 bytes)
    nebula-1.2.1.el8.x86_64.rpm(73.49 MB)
    nebula-1.2.1.el8.x86_64.rpm.sha256sum.txt(113 bytes)
    nebula-1.2.1.ubuntu1604.x86_64.deb(98.50 MB)
    nebula-1.2.1.ubuntu1604.x86_64.deb.sha256sum.txt(120 bytes)
    nebula-1.2.1.ubuntu1804.x86_64.deb(98.54 MB)
    nebula-1.2.1.ubuntu1804.x86_64.deb.sha256sum.txt(120 bytes)
    nebula-1.2.1.ubuntu2004.x86_64.deb(98.48 MB)
    nebula-1.2.1.ubuntu2004.x86_64.deb.sha256sum.txt(120 bytes)
  • v1.2.0(Dec 8, 2020)

    New Features

    • FIND PATH support to find paths with or without regard to direction. And also support to exclude loops in paths. #2398
    • Add ARM64 support to Nebula Graph. #2392
    • Add auto_remove_invalid_space option to indicate whether to remove data from a deleted graph space when restarting the services. #2375 #196

    Improvements

    • Improve the DELETE edges performance. #2404

    Bugfix

    • Fix the issue that FETCH PROP ON timestamp properties returns an int64 value. #2389
    • Fix the issue that GO m TO n STEPS may lead to OOM errors. #2386
    • Fix the issue that FETCH PROP ON * might return the wrong results when the tag on the vertex has no properties. #2359
    Source code(tar.gz)
    Source code(zip)
    nebula-1.2.0.el6-5.x86_64.rpm(76.71 MB)
    nebula-1.2.0.el6-5.x86_64.rpm.sha256sum.txt(115 bytes)
    nebula-1.2.0.el7-5.x86_64.rpm(73.53 MB)
    nebula-1.2.0.el7-5.x86_64.rpm.sha256sum.txt(115 bytes)
    nebula-1.2.0.el8.x86_64.rpm(73.34 MB)
    nebula-1.2.0.el8.x86_64.rpm.sha256sum.txt(113 bytes)
    nebula-1.2.0.ubuntu1604.amd64.deb(98.28 MB)
    nebula-1.2.0.ubuntu1604.amd64.deb.sha256sum.txt(119 bytes)
    nebula-1.2.0.ubuntu1804.amd64.deb(98.33 MB)
    nebula-1.2.0.ubuntu1804.amd64.deb.sha256sum.txt(119 bytes)
    nebula-1.2.0.ubuntu2004.amd64.deb(98.26 MB)
    nebula-1.2.0.ubuntu2004.amd64.deb.sha256sum.txt(119 bytes)
  • v1.1.0(Sep 21, 2020)

    Improvements

    • Remove the lock inside FunctionManager for better performance. #2273
    • Improve property-fetching performance by refactoring VertexHolder::getDefaultProp.#2249
    • Optimize GO statement performance by adopting unordered_map::reserve and vector::reserve, and removing storage query lock. #2268
    • Reduce the unnecessary creation of snapshots and optimize performance. #2287 #2318
    • Support configuring the prefix bloom filter for RocksDB. The prefix blooms can optimize QueryEdgeProps and QueryVertexProps performance, as well as reduce memory usage. #2274
    • Support configuring compaction_thread_limiter and rate_limiter options of RocksDB. #2251
    • Support obtaining RocksDB statistics through web service. #2262 #2243
    • Support more dynamically configurable options of RocksDB, such as max_open_files, memtable_huge_page_size. #2291
    • FETCH PROP ON supports fetching multiple tag properties on multiple vertexes. The previous command’s output can be passed to FETCH PROP ONas its input in the pipeline statement ("|"). FETCH PROP ON * supports getting the properties of multiple vertices. #2222 #117
    • Add a warning message for a partially successful query. #2290
    • Raft lease is always valid when replica_factor is set to 1. #2276

    Bugfixes

    • Fix the leader election failure that may occur during the balancing process. #2232
    • Fix the issue that there may be more than one election request after the RAFT election failed. #2305
    • Fix the issue that the logging of the original service can't be recorded to the log file when the service was started multiple times.  #2278 #2289
    • Fix the issue that StorageClient scanVertex and scanEdge interfaces failed to return the results after enable_multi_versions  is set to true. #2312
    • Fix the issue that USE SPACE and FIND PATH statements cannot work together in a query. #2303
    • Fix the issue that snapshots may be triggered unexpectedly. #2316
    • Fix the issue that storaged may crash when a vertex with related edges and index is deleted. #2335
    • Fix the issue that after  ALTER TAG/EDGE ADD <props>, LOOKUP ON the newly added properties may make graphd crash. #2341
    • Fix the stale data problem when using LRUCache. #2267
    • Fix the bug that meta service cannot be stopped in some cases. #2240
    • Fix the issue that MetaClientTest.HeartbeatTest may be hung if the target port has already been used. #2296
    • Fix the bug when stopping metad  before the initialization of job manager, metad may crash. #2332
    • Fix the bug that multiple indexes can exist for the same property set. #1695

    Changelog

    • Forbid range access for string-property indexes. For LOOKUP ON xxx WHERE xxx, if there are string properties in the WHERE clause, the exact-match index would be used to look up records. #2283 #2277
    • Forbid OR and XOR conditions in LOOKUP ON statement. #2283
    • The pipe (|) operation has deduped the input. #2292
    • The default value for rocksdb_disable_wal option has been changed to false. #2236
    Source code(tar.gz)
    Source code(zip)
    nebula-1.1.0.el6-5.x86_64.rpm(76.68 MB)
    nebula-1.1.0.el6-5.x86_64.rpm.sha256sum.txt(115 bytes)
    nebula-1.1.0.el7-5.x86_64.rpm(73.49 MB)
    nebula-1.1.0.el7-5.x86_64.rpm.sha256sum.txt(115 bytes)
    nebula-1.1.0.ubuntu1604.amd64.deb(98.24 MB)
    nebula-1.1.0.ubuntu1604.amd64.deb.sha256sum.txt(119 bytes)
    nebula-1.1.0.ubuntu1804.amd64.deb(98.28 MB)
    nebula-1.1.0.ubuntu1804.amd64.deb.sha256sum.txt(119 bytes)
  • v1.0.1(Jul 9, 2020)

    New Features

    • Support uuid() in FIND PATH statement #2209.
    • Support disabling block cache of rocksdb by setting rocksdb_block_cache of storaged.conf to less than or equal to 0 #2177
    • Adopt folly::SingletonThreadLocal in meta client to avoid multi-threads mitigating lock contention on localCacheLock_, which improves the performance significantly. #2165
    • Storage supports different compression algorithms of rocksdb and setting different compressions for different levels. #2179

    Bugfix

    • Fix the issue that compaction filter does not work when calls manual compaction #2184
    • Fix the issue that Leader sends Snapshot in some cases #2150
    • Fix the issue when UPSERT/UPDATE the new prop of existing data after adding a new prop of tag/edgetype, an error return #2186
    • Fix the issue that GO m ... n returns an error when m is set to 0 #2202
    • Fix the issue when combining GO n STEPS and | pipe statement,an incomplete result is returned in some cases #2203
    Source code(tar.gz)
    Source code(zip)
    nebula-1.0.1.el6-5.x86_64.rpm(61.36 MB)
    nebula-1.0.1.el6-5.x86_64.rpm.sha256sum.txt(96 bytes)
    nebula-1.0.1.el7-5.x86_64.rpm(59.12 MB)
    nebula-1.0.1.el7-5.x86_64.rpm.sha256sum.txt(96 bytes)
    nebula-1.0.1.ubuntu1604.amd64.deb(77.38 MB)
    nebula-1.0.1.ubuntu1604.amd64.deb.sha256sum.txt(100 bytes)
    nebula-1.0.1.ubuntu1804.amd64.deb(77.42 MB)
    nebula-1.0.1.ubuntu1804.amd64.deb.sha256sum.txt(100 bytes)
  • v1.0.0(Jun 10, 2020)

    Basic Features

    • Online DDL & DML. Support updating schemas and data without stopping or affecting your ongoing operations.
    • Graph traversal. GO statement supports forward/reverse and bidirectional graph traversal. GO minHops TO maxHops is supported to get variable hops relationships.
    • Aggregate. Support aggregation functions such as GROUP BY, ORDER BY, and LIMIT.
    • Composite query. Support composite clauses: UNION, UNION DISTINCT, INTERSECT, and MINUS.
    • PIPE statements. The result yielded from the previous statement could be piped to the next statement as input.
    • Use defined variables. Support user-defined variables to pass the result of a query to another.
    • Index. Both the single-property index and composite index are supported to make searches of related data more efficient. LOOKUP ON statement is to query on the index.

    Advanced Features

    • Privilege Management. Support user authentication and role-based access control. Nebula Graph can easily integrate with third-party authentication systems. There are five built-in roles in Nebula Graph: GOD, ADMIN, DBA, USER, and GUEST. Each role has its corresponding privileges.
    • Support Reservoir Sampling, which will retrieve k elements randomly for the sampling of the supernode at the complexity of O(n).
    • Cluster snapshot. Support creating snapshots for the cluster as an online backup strategy.
    • TTL. Support TTL to expire items after a certain amount of time automatically.
    • Operation & Maintenance
      • Scale in/out. Support online scale in/out and load balance for storage
      • HOSTS clause to manage storage hosts
      • CONFIGS clause to manage configuration options
    • Job Manager & Scheduler. A tool for job managing and scheduling. Currently, COMPACT and FLUSH jobs are supported.
    • Graph Algorithms. Support finding the full path and the shortest path between vertices.
    • Provide OLAP interfaces to integrate with third-party graph analytics platforms.
    • Support multiple character sets and collations. The default CHARSET and COLLATE are utf8 and utf8_bin.

    Clients

    • Java Client. Support source code building and downloading from the MVN repository, see Java Client for more details.
    • Python Client. Support source code building and installation with pip, see Python Client for more details.
    • Golang Client. Install the client with the command go get -u -v github.com/vesoft-inc/nebula-go,see Go Client for more details.

    Nebula Graph Studio

    A graphical user interface for working with Nebula Graph. Support querying, designing schema, data loading, and graph exploring. See Nebula Graph Studio for more details.

    Tools

    • Data Import
      • Nebula-Importer is used to import data from the CSV file.
      • Spark Writer, a Spark-based distributed data import tool that converts data from multiple data resources into the Nebula Graph.
    • Data Export
      • Dump Tool. A single-machine off-line data dumping tool to dump or count data with specified conditions.
    • Monitoring
      • Nebula Stats Exporter (for Prometheus), is to collect database metrics and expose metrics to Prometheus. And Grafana has integrated for metrics Visualization and Alerting.
    Source code(tar.gz)
    Source code(zip)
    nebula-1.0.0.el6-5.x86_64.rpm(61.00 MB)
    nebula-1.0.0.el6-5.x86_64.rpm.sha256sum.txt(96 bytes)
    nebula-1.0.0.el7-5.x86_64.rpm(59.00 MB)
    nebula-1.0.0.el7-5.x86_64.rpm.sha256sum.txt(96 bytes)
    nebula-1.0.0.ubuntu1604.amd64.deb(77.20 MB)
    nebula-1.0.0.ubuntu1604.amd64.deb.sha256sum.txt(100 bytes)
    nebula-1.0.0.ubuntu1804.amd64.deb(77.25 MB)
    nebula-1.0.0.ubuntu1804.amd64.deb.sha256sum.txt(100 bytes)
  • v1.0.0-rc4(Apr 2, 2020)

    !! Note:RC4 is not compatible with the Data inserted before commitID 43453a0 (2020.02.06) due to the change of the underlying data structure.

    New features

    • Support Index to make searches of related data more efficient. An index on a property/properties combination can be created with CREATE INDEX. DROP INDEX is to drop an index #1776. REBUILD INDEX is to reindex the data #1566.

    • Support LOOKUP ON to query on index #1705. See #1738 for the performance of Storage Engine when inserting data with an index.

    • Introduces account management and access control #1842, #1873. All users may perform only the operations permitted to them. Roles provided by Nebula Graph and their privileges please refer to #1929. Add --enable_authorize=true to nebula-graphd.conf and restart the services to enable authentication.

    • Support TTL to remove items after a certain amount of time automatically #1584、#422, #1934.

    • Enhance DELETE VERTEX to support deleting a batch of vertices. And supports hash() and uuid() functions for VertexID #1317, #1759.

    • Introduces Job Manager, to manage the jobs that take a long time of Storage Engine. At present, it supports flush and compact operations. SUBMIT JOB is to submit a job, STOP JOB stops the running jobs,SHOW JOB shows the details info of a job, RECOVER JOB is to put back the failed job to the queue #1424.

    • Support BIDIRECT for GO query to traverse along with both ingoing and outgoing directions #1740, #1752.

    • Support Reservoir Sampling, set enable_reservoir_sampling to TRUE is to turn on the sampling. Max_edge_returned_per_vertex in nebula-storage.conf is to configure the number of returned edges #1746, #1915.

    • Support more character sets and collations. SHOW CHARSET and SHOW COLLATION statement show all available character sets and collations. It can be configured when creating the space. The default CHARSET is utf8, and the corresponding COLLATE is utf8_bin #1709.

    OLAP Interface

    Tools

    • Support Deploying Nebula Graph on Kubernetes with Helm #1473
    • Introduce Nebula Stats Exporter (for Prometheus) to collect database metrics and expose metrics to Prometheus. And Grafana has integrated for metrics Visualization and Alerting.

    Change

    • RC4 is not compatible with the Data inserted before commitID 43453a0 (2020.02.06) due to the change of the underlying data structure.
    • DOC move to repo vesoft-inc/nebula-doc
    • For Nebula Python Client, is_async is not supported when creating ConnectionPool. Async client will be introduced later.
    • _src in REVERSELY and BIDIRECT statements represent the queried node instead of the src of the edge. While _dst refers to the other connected nodes. e.g. GO FROM <vid> OVER <edgetype> YIELD edgetype._src returns the vid. #1740
    Source code(tar.gz)
    Source code(zip)
    nebula-1.0.0-rc4.el6-5.x86_64.rpm(61.43 MB)
    nebula-1.0.0-rc4.el6-5.x86_64.rpm.sha256sum.txt(100 bytes)
    nebula-1.0.0-rc4.el7-5.x86_64.rpm(59.19 MB)
    nebula-1.0.0-rc4.el7-5.x86_64.rpm.sha256sum.txt(100 bytes)
    nebula-1.0.0-rc4.ubuntu1604.amd64.deb(77.45 MB)
    nebula-1.0.0-rc4.ubuntu1604.amd64.deb.sha256sum.txt(104 bytes)
    nebula-1.0.0-rc4.ubuntu1804.amd64.deb(77.49 MB)
    nebula-1.0.0-rc4.ubuntu1804.amd64.deb.sha256sum.txt(104 bytes)
  • v1.0.0-rc3(Feb 7, 2020)

    Query engine

    • Support fetching all props of a given vertex #1486
    • Support DELETE EDGE to delete the given edge #1063
    • Add IF EXISTS to conditionally drop a tag/edgetype only if it exists. #1505
    • Add IF NOT EXISTS to conditionally create a space/tag/edge only if it does not exist #1379
    • Export graphd metrics #1451

    Storage

    • Add scan edge/vertex interface to retrieve data from storage for OLAP, #1381
    • Support heartbeat_interval_secs option to config heartbeat interval between storage/graph and meta #1540
    • Pushdown filter to minimize data transfer and improve query performance #947
    • Support local conf mode, using local conf rather than config in meta server #1411
    • Add timeout for storage/meta clients, the default value is 60s and configured by meta_client_timeout_ms option #1399
    • Support creating a snapshot for the whole cluster #1199 #1372
    • Both support reading from leader/follow and support only read from the leader #1363
    • Add check step for each balance task during the balancing process. #1378

    Build

    • Simplify the build process, support most of Linux Kernel 2.6.32+ system #1332 Index
    • Support create an index, get a list of all indexes in the space and drop an index #1459 #1360

    Tools

    • dump_tools, an off-line data dumping tool that can be used to dump or count data with specified conditions. #1479 #1554
    • Spark Writer adopts async client,add Hash and UUID support,support load data into the same schema from different data source #1405 #1512. It also supports configuring Spark partition #1412.

    UI

    • Nebula Graph Studio is the graphical user interface for working with Nebula. Query, visualize nebula and import CSV data to Nebula. Visualize and explore graph data via the interface; an editor with syntax highlighting feature enables users to design queries fast and view query results in a structured manner; support data import via GUI. Here's the repo of this tool (including documentation and deployment files): https://github.com/vesoft-inc/nebula-web-docker
    Source code(tar.gz)
    Source code(zip)
    nebula-1.0.0-rc3.el6-5.x86_64.rpm(59.94 MB)
    nebula-1.0.0-rc3.el6-5.x86_64.rpm.sha256sum.txt(100 bytes)
    nebula-1.0.0-rc3.el7-5.x86_64.rpm(57.95 MB)
    nebula-1.0.0-rc3.el7-5.x86_64.rpm.sha256sum.txt(100 bytes)
    nebula-1.0.0-rc3.ubuntu1604.amd64.deb(76.47 MB)
    nebula-1.0.0-rc3.ubuntu1604.amd64.deb.sha256sum.txt(104 bytes)
    nebula-1.0.0-rc3.ubuntu1804.amd64.deb(76.47 MB)
    nebula-1.0.0-rc3.ubuntu1804.amd64.deb.sha256sum.txt(104 bytes)
  • v1.0.0-rc2(Dec 2, 2019)

    Query Engine

    • Support GROUP BY to group items that have the same values,often used with aggregate functions (COUNT, MAX, MIN, SUM, AVG, etc.) to group the result-set by one or more property field. #749
    • UPDATE CONFIGS supports expression #1273
    • Support changing log severity level and verbose level from console #1273
    • Support IF... RETURN... to return the result if a specified condition is true #1233 #1246
    • String properties could have unlimited length #1103
    • Support GO FROM ... REVERSELY to implement reverse query #1349
    • When insert vertices and edges, users can specify properties order instead of following the schema defined order #1219

    Storage

    • Support SHOW PARTS to fetch the partition information of current space #1086
    • Support BALANCE STOP to stop load balance process #1238
    • Support triggering the compaction and flush manually #677 #1240
    • Change BlockBasedTable default block cache size from 4MB to 1024MB #1248
    • Add max_edge_returned_per_vertex gflags option to limit the return size of supper vertex #1221
    • Add cache for vertex #1294 #1268
    • Upgrade dependencies folly and fbthrift  #1161

    Tools

    • Enhance CSV Importer, user can import CSV using docker image. See Nebula Importer for more details.

    Client

    Changed/Removed

    • Remove commands ADD/REMOVE HOSTS, the hosts could be discovered automatically #1172  

    Coming soon

    • See RoadMap for the features coming soon
    Source code(tar.gz)
    Source code(zip)
    nebula-1.0.0-rc2.el6-5.x86_64.rpm(247.09 MB)
    nebula-1.0.0-rc2.el6-5.x86_64.rpm.sha256sum.txt(100 bytes)
    nebula-1.0.0-rc2.el7-5.x86_64.rpm(234.34 MB)
    nebula-1.0.0-rc2.el7-5.x86_64.rpm.sha256sum.txt(100 bytes)
    nebula-1.0.0-rc2.ubuntu1604.amd64.deb(312.97 MB)
    nebula-1.0.0-rc2.ubuntu1604.amd64.deb.sha256sum.txt(104 bytes)
    nebula-1.0.0-rc2.ubuntu1804.amd64.deb(358.94 MB)
    nebula-1.0.0-rc2.ubuntu1804.amd64.deb.sha256sum.txt(104 bytes)
  • v1.0.0-rc1(Nov 5, 2019)

    nGQL

    • Support LIMIT to limit the number of items returned from a result set. (#750)
    • Support YIELD in Pipe Syntax to designate return type. (#745)
    • Support ORDER BY  used to sort the records in the result set. (#537)
    • Support udf_is_in to check if a value matches any value in a given value set. (#1096)
    • Support DELETE VERTEX to delete the vertex and its associated in and out edges. (#868)
    • Support UUID() to generate the global unique identifiers. (#958, #961, #1031)
    • Support Logic Symbols XOR, ORAND and NOT. (#858)
    • Support TIMESTAMP data type. (#843)
    • Add more functions for String data type, such as upper(), trim(), lower(), substr(). (#841)
    • Support type casting in logic comparison. (#964)
    • Add leader information for SHOW HOSTS statement. (#918)
    • Support SHOW CONFIGS statement to show configuration options of the specific service [meta/storage/graph], GET CONFIGS to get the option value and UPDATE CONFIGS to update the option value. (#504)
    • Support FIND PATH statement to find the shortest path and full path. (#847)
    • Enhance GO statement to support graph traversal over multiple edge types. (#699)
    • Simplify the build process. (#1047, #948, #1083)

    Storage

    • Support PUT/GET interface in storage engine. (#977)
    • Add Leader balance. (#731, #881)
    • Support HTTP interface to monitor performance metrics (such as QPS, Latency AVG/ P99/ P999, etc.) of each storage server. (#872, #1136)
    • Support scaling out/in for storage. (#421, #444, #795, #881, #998)
    • Support retry for Meta client, three times by default. (#814)

    Tools

    • Add Golang Importer and support loading data from CSV file concurrently.

    Change

    • Change the configuration template of storaged

    Others

    • Split metad, storaged and graphd into three images. Add Dockerfiles to build images. (#923)
    • Add Golang client support and move clients to separate repositories, check vesoft-inc/nebula-go and vesoft-inc/nebula-java for details.
    Source code(tar.gz)
    Source code(zip)
    nebula-1.0.0-rc1.el6-5.x86_64.rpm(245.32 MB)
    nebula-1.0.0-rc1.el7-5.x86_64.rpm(232.65 MB)
    nebula-1.0.0-rc1.ubuntu1604.amd64.deb(310.67 MB)
    nebula-1.0.0-rc1.ubuntu1804.amd64.deb(356.63 MB)
  • v1.0.0-beta(Aug 14, 2019)

    Storage Engine

    • Support cluster deployment
    • Add raft and support scheduling Raft leader
    • Support HBase in storage engines
    • Support importing data from HDFS

    nGQL

    • Support comment syntax
    • Support creating space with default options, showing space and dropping space
    • Support describing and listing tags and edge types
    • Support DISTINCT statement to return only distinct values
    • Support UNION, INTERSECT and MINUS
    • Support FETCH statement to get the given vertex's tag properties
    • Support variable/pipe reference in WHERE and YIELD
    • Support inserting multiple tags or edges
    • Support arithmetic and logical computation in YIELD and WHERE
    • Support ORDER BY statement to sort the result set
    • Support CRUD hosts

    Docs

    • Add User Manual
    • Add Home Page

    Tools

    • Java importer - To load data from CSV file
    • package_build - To support multiple Linux release
    • A perf tool for storage service to implement the stress test
    • Console supports keyword auto-completion

    Changed

    • $$[tag].prop is changed to $$.tag.prop
    • Refactor nebula.service script to start/stop service
    Source code(tar.gz)
    Source code(zip)
    md5.txt(284 bytes)
    nebula-1.0.0-beta.el6-5.x86_64.rpm(127.70 MB)
    nebula-1.0.0-beta.el7-5.x86_64.rpm(124.83 MB)
    nebula-1.0.0-beta.ubuntu1604.amd64.deb(176.81 MB)
    nebula-1.0.0-beta.ubuntu1804.amd64.deb(177.67 MB)
  • v0.1.0(May 14, 2019)

    This is the first release of Nebula Graph, a brand new, fast and distributed graph database.

    Available Features

    • Physical data isolation with Graph Space
    • Strongly typed schema support
    • Vertices and edges insertion
    • Graph traversal(the GO statement)
    • Variable definition and reference
    • Piping query result between statements
    • Client API in C++, Golang and Java

    Features Coming Soon

    • Raft support
    • Query based on secondary index(the LOOKUP statement)
    • Sub-graph retrieval(the MATCH statement)
    • User defined function call
    • User management

    Try Out

    A Docker image is available for trial purpose. You can get it by following the guide here.

    Source code(tar.gz)
    Source code(zip)
🥑 ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.

?? ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.

ArangoDB 12.8k Jan 9, 2023
Scylla is the real-time big data database that is API-compatible with Apache Cassandra and Amazon DynamoDB

Scylla is the real-time big data database that is API-compatible with Apache Cassandra and Amazon DynamoDB. Scylla embraces a shared-nothing approach that increases throughput and storage capacity to realize order-of-magnitude performance improvements and reduce hardware costs.

ScyllaDB 8.9k Jan 4, 2023
FEDB is a NewSQL database optimised for realtime inference and decisioning application

FEDB is a NewSQL database optimised for realtime inference and decisioning applications. These applications put real-time features extracted from multiple time windows through a pre-trained model to evaluate new data to support decision making. Existing in-memory databases cost hundreds or even thousands of milliseconds so they cannot meet the requirements of inference and decisioning applications.

4Paradigm 1.2k Jan 2, 2023
Kvrocks is a key-value NoSQL database based on RocksDB and compatible with Redis protocol.

Kvrocks is a key-value NoSQL database based on RocksDB and compatible with Redis protocol.

Bit Leak 1.9k Jan 8, 2023
The MongoDB Database

The MongoDB Database

mongodb 23k Jan 1, 2023
RocksDB: A Persistent Key-Value Store for Flash and RAM Storage

RocksDB is developed and maintained by Facebook Database Engineering Team. It is built on earlier work on LevelDB

Facebook 24.3k Jan 5, 2023
RediSearch is a Redis module that provides querying, secondary indexing, and full-text search for Redis.

A query and indexing engine for Redis, providing secondary indexing, full-text search, and aggregations.

null 4k Jan 5, 2023
Nebula Graph is a distributed, fast open-source graph database featuring horizontal scalability and high availability

Nebula Graph is an open-source graph database capable of hosting super large scale graphs with dozens of billions of vertices (nodes) and trillions of edges, with milliseconds of latency.

vesoft inc. 834 Dec 24, 2022
OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.

What is OceanBase database OceanBase Database is a native distributed relational database. It is developed entirely by Alibaba and Ant Group. OceanBas

OceanBase 5.1k Jan 4, 2023
dqlite is a C library that implements an embeddable and replicated SQL database engine with high-availability and automatic failover

dqlite dqlite is a C library that implements an embeddable and replicated SQL database engine with high-availability and automatic failover. The acron

Canonical 3.3k Jan 9, 2023
MySQL Server, the world's most popular open source database, and MySQL Cluster, a real-time, open source transactional database.

Copyright (c) 2000, 2021, Oracle and/or its affiliates. This is a release of MySQL, an SQL database server. License information can be found in the

MySQL 8.6k Dec 26, 2022
An eventing framework for building high performance and high scalability systems in C.

NOTE: THIS PROJECT HAS BEEN DEPRECATED AND IS NO LONGER ACTIVELY MAINTAINED As of 2019-03-08, this project will no longer be maintained and will be ar

Facebook Archive 1.7k Dec 14, 2022
An eventing framework for building high performance and high scalability systems in C.

NOTE: THIS PROJECT HAS BEEN DEPRECATED AND IS NO LONGER ACTIVELY MAINTAINED As of 2019-03-08, this project will no longer be maintained and will be ar

Meta Archive 1.7k Dec 14, 2022
Kunlun distributed DBMS is a NewSQL OLTP relational distributed database management system

Kunlun distributed DBMS is a NewSQL OLTP relational distributed database management system. Application developers can use Kunlun to build IT systems that handles terabytes of data, without any effort on their part to implement data sharding, distributed transaction processing, distributed query processing, crash safety, high availability, strong consistency, horizontal scalability. All these powerful features are provided by Kunlun.

zettadb 114 Dec 26, 2022
YugabyteDB is a high-performance, cloud-native distributed SQL database that aims to support all PostgreSQL features

YugabyteDB is a high-performance, cloud-native distributed SQL database that aims to support all PostgreSQL features. It is best to fit for cloud-native OLTP (i.e. real-time, business-critical) applications that need absolute data correctness and require at least one of the following: scalability, high tolerance to failures, or globally-distributed deployments.

yugabyte 7.4k Jan 7, 2023
Open source Altium Database Library with over 147,000 high quality components and full 3d models.

Open source Altium Database Library with over 147,000 high quality components and full 3d models.

Mark 1.4k Dec 29, 2022
DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.

DB Browser for SQLite What it is DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files c

null 17.5k Jan 2, 2023
A flutter package for making game levels map like candy crush or similar games using flutter with ability to be horizontal or vertical

Game Levels Scrolling Map A package for making game levels map like candy crush or similar games using flutter with ability to be horizontal or vertic

Mohamed Sayed 12 Oct 26, 2022
A simulated tsunami detection system featuring nodes communicating with a satellite

A simulated tsunami detection system featuring nodes communicating with a satellite and a base station to broadcast alerts when a tsunami is detected.

null 1 Nov 23, 2021
An operating system for RISC V, featuring a small microkernel

ilo pali An operating system for RISC V, featuring a small microkernel. Build instructions Install the Newlib GNU RISC-V toolchain and do make to buil

jan Jenwa 7 Oct 28, 2022