This article is published on the Nebula Graph Community public account

Nebula Graph is a distributed graphics database developed by Nebula Graph Technology Co., LTD. (www.vesoft.com/cn/) to solve the new challenges of analyzing and mining associated data with the generation of massive amounts of data. Nebula Graph has received a lot of attention since it was opened to the public in May 2019, with organizations, technology teams, and developers applying Nebula Graph to their businesses to build knowledge graphs, risk control, data governance, anti-fraud, real-time recommendations, and more. As more and more users in the Nebula community learned how to use Nebula Graph from the Nebula case shares, a voice emerged that some wanted to understand the rationale behind Nebula Graph’s implementation.

With this in mind, we want to use the Nebula source code to understand the series and understand the design and implementation of Nebula Graph. In the same way, This will also help you and the Nebula Graph community build a better Nebula Graph.

Description of content

The source code interpretation series begins with the Nebula Graph system architecture and core modules, and the final chapter examines performance issues that the community is concerned about due to architectural constraints.

The Source Code Interpretation series, called The Source Code Interpretation Series, is not just a compilation of code and functions. It takes you through the Principles behind Nebula Graph’s implementation from a design perspective and gives you a glimpse of the design behind the Nebula Graph implementation. (Because Nebula Graph is still in rapid iteration, with new features continuing to enter the main branch, the review of some of the iterating core modules won’t go into too much code detail.)

The current source code interpretation series is planned as follows:

  • Nebula Graph Overview: Takes you through the Nebula Graph architecture and code warehouse distribution, code structure, and module planning.
  • Core module explanation: describe semantic analysis, optimization, scheduling and other system modules, Java, Python and other operating principles of various clients;
  • Component Communications: Describes the communications mechanisms in Nebula Graph;
  • Description of 2.0 new features: From Variable Length Pattern Match and index selection two points to explain the principle of Match implementation;
  • Architectural limitations and solutions: Solutions for the community’s problems of slow query abort and super-large processing;

By the end of this series, you will have learned a little bit about Nebula Graph, understand the rationale behind the new Nebula Graph features, and be able to quickly locate and solve problems with Nebula from an implementation perspective. As well, you can better write code that matches the Nebula Graph design ideas when contributing to the Nebula Graph repository.

Nebula Graph complete guide

The Source Code Interpretation series is designed to take you through the Nebula Graph implementation principles behind the Nebula Graph code, and the Nebula Graph Complete Guide (link: docs.nebula-graph.com.cn/site/pdf/Ne…) With the Nebula Graph database in mind, you can use nGQL for the Nebula Graph database.

Background knowledge

This series is built around Nebula Graph, a distributed graphics database, but requires a background in the following technologies:

  • Database Fundamentals
  • Nebula Graph structure
  • The C++ language: Nebula Graph is implemented in the C++ programming language, which requires a background in C++ programming to quickly understand the code.

At the end of the article

This is the first time for us to write a series of explanation content. If there is any problem or improvement, we hope readers can give us feedback in forums, wechat groups and other channels, so that we can better produce content.

Want to meet with Nebula’s official team and community? 【nMeetup 】 offline activity registration is under way, in 09.04 with us in Hangzhou map database technology exchange ~ [09.04 Hangzhou registration], [09.11 Shenzhen registration]