logo
咨询企业版

技术分享源码解读

NebulaGraph 源码解读系列 | Vol.00 序言

NebulaGraph 源码解读系列 | Vol.00 序言

NebulaGraph 是由杭州悦数科技有限公司(官网:https://www.vesoft.com/cn/)开源的一款分布式图数据库,它主要用来解决伴随着海量数据产生,在关联数据分析、挖掘方面面临的新挑战。自 2019 年 5 月开源以来,NebulaGraph 受到了广泛的关注,许多企业、技术团队、开发者将 NebulaGraph 应用到业务上构建知识图谱、风控、数据治理、反欺诈、实时推荐等场景。在 Nebula 社区中,越来越多用户从案例分享中掌握 NebulaGraph 的使用方法,与此同时,出现了一种声音,部分用户希望能了解 NebulaGraph 背后的实现思路和原理。

在这样的背景下,我们希望通过 NebulaGraph 源码解读系列,分析设计思路和实现原理,帮助大家深入了解 NebulaGraph,更好地使用 NebulaGraph,同样的,这也将有利于你和 NebulaGraph 社区一块共建更好的 NebulaGraph。

内容概述

源码解读系列主要从 NebulaGraph 系统架构核心模块展开,此外针对社区用户关心的架构限制带来的性能问题将在最后一个章节分析此类问题。

源码解读系列虽名为源码解读,但并非只是对代码实现的分析和函数讲解,更侧重于从设计角度带你掌握 NebulaGraph 实现原理,透过实现的代码来了解背后的设计思路。(由于 NebulaGraph 目前仍处于快速迭代阶段,持续有新功能进入主分支,故部分不断迭代的核心模块的讲解不会过多地深入代码细节)。

目前源码解读系列章节规划如下:

  • NebulaGraph Overview:带你了解 NebulaGraph 架构和代码仓分布、代码结构和模块规划;
  • 核心模块讲解:讲述语义分析、优化、调度等系统模块,Java、Python 等各类客户端的运行原理;
  • 组件通信:讲述 NebulaGraph 中通信机制;
  • 2.0 新特性讲解:从 Variable Length Pattern Match 和索引选择两个点切入讲述 Match 实现的原理;
  • 架构限制和解决方案:针对社区的慢查询中止、超大点处理的问题讲述对应的解决方案;

希望大家读完本系列内容之后,对 NebulaGraph 有一定的了解,明白 NebulaGraph 新功能的实现原理,遇到问题时能从实现角度更快定位问题解决问题。以及,在 NebulaGraph 仓库贡献代码时能更好地写出符合 NebulaGraph 设计思路的代码。

NebulaGraph 完全指南

源码解析系列旨在带你了解 NebulaGraph 代码背后的实现原理,而 NebulaGraph 完全指南(链接:https://docs.nebula-graph.com.cn/site/pdf/NebulaGraph-book.pdf)则是使用大全,从图数据库是什么开始讲起,介绍 nGQL 具体的使用以及对应的参数含义,全方位解决 NebulaGraph 使用问题。

背景知识

本系列内容围绕 NebulaGraph 这一分布式图数据库展开,但是仍然需要读者具备下列技术背景:

  • 数据库基本原理
  • NebulaGraph 架构
  • C++ 语言:NebulaGraph 由 C++ 编程语言实现,读者需要有一定的 C++ 编程基础,这将有利于快速了解代码。

写在文末

这是第一次我们写系列讲解内容,当中若存在不妥和改进点,希望读者能在论坛、微信群等渠道反馈给我们,好让我们更好地产出内容。

交流图数据库技术?加入 Nebula 交流群请先填写下你的 Nebula 名片,Nebula 小助手会拉你进群~~