1. 程式人生 > 其它 >Nebula Graph 原始碼解讀系列 | Vol.00 序言

Nebula Graph 原始碼解讀系列 | Vol.00 序言

這次,我們深入瞭解下 Nebula Graph 背後的程式碼實現邏輯和原理。這只是一個開始,從瞭解圖資料庫的程式碼實現原理開始…

本文首發於 Nebula Graph Community 公眾號

Nebula Graph 是由杭州歐若數網科技有限公司(官網:https://www.vesoft.com/cn/)開源的一款分散式圖資料庫,它主要用來解決伴隨著海量資料產生,在關聯資料分析、挖掘方面面臨的新挑戰。自 2019 年 5 月開源以來,Nebula Graph 受到了廣泛的關注,許多企業、技術團隊、開發者將 Nebula Graph 應用到業務上構建知識圖譜、風控、資料治理、反欺詐、實時推薦等場景。在 Nebula 社群中,越來越多使用者從案例分享中掌握 Nebula Graph 的使用方法,與此同時,出現了一種聲音,部分使用者希望能瞭解 Nebula Graph 背後的實現思路和原理。

在這樣的背景下,我們希望通過 Nebula Graph 原始碼解讀系列,分析設計思路和實現原理,幫助大家深入瞭解 Nebula Graph,更好地使用 Nebula Graph,同樣的,這也將有利於你和 Nebula Graph 社群一塊共建更好的 Nebula Graph。

內容概述

原始碼解讀系列主要從 Nebula Graph 系統架構核心模組展開,此外針對社群使用者關心的架構限制帶來的效能問題將在最後一個章節分析此類問題。

原始碼解讀系列雖名為原始碼解讀,但並非只是對程式碼實現的分析和函式講解,更側重於從設計角度帶你掌握 Nebula Graph 實現原理,透過實現的程式碼來了解背後的設計思路。(由於 Nebula Graph 目前仍處於快速迭代階段,持續有新功能進入主分支,故部分不斷迭代的核心模組的講解不會過多地深入程式碼細節)。

目前原始碼解讀系列章節規劃如下:

  • Nebula Graph Overview:帶你瞭解 Nebula Graph 架構和程式碼倉分佈、程式碼結構和模組規劃;
  • 核心模組講解:講述語義分析、優化、排程等系統模組,Java、Python 等各類客戶端的執行原理;
  • 元件通訊:講述 Nebula Graph 中通訊機制;
  • 2.0 新特性講解:從 Variable Length Pattern Match 和索引選擇兩個點切入講述 Match 實現的原理;
  • 架構限制和解決方案:針對社群的慢查詢中止、超大點處理的問題講述對應的解決方案;

希望大家讀完本系列內容之後,對 Nebula Graph 有一定的瞭解,明白 Nebula Graph 新功能的實現原理,遇到問題時能從實現角度更快定位問題解決問題。以及,在 Nebula Graph 倉庫貢獻程式碼時能更好地寫出符合 Nebula Graph 設計思路的程式碼。

Nebula Graph 完全指南

原始碼解析系列旨在帶你瞭解 Nebula Graph 程式碼背後的實現原理,而 Nebula Graph 完全指南(連結:https://docs.nebula-graph.com.cn/site/pdf/NebulaGraph-book.pdf)則是使用大全,從圖資料庫是什麼開始講起,介紹 nGQL 具體的使用以及對應的引數含義,全方位解決 Nebula Graph 使用問題。

背景知識

本系列內容圍繞 Nebula Graph 這一分散式圖資料庫展開,但是仍然需要讀者具備下列技術背景:

  • 資料庫基本原理
  • Nebula Graph 架構
  • C++ 語言:Nebula Graph 由 C++ 程式語言實現,讀者需要有一定的 C++ 程式設計基礎,這將有利於快速瞭解程式碼。

寫在文末

這是第一次我們寫系列講解內容,當中若存在不妥和改進點,希望讀者能在論壇、微信群等渠道反饋給我們,好讓我們更好地產出內容。

想和 Nebula 官方研發團隊、社群使用者來個面對面的技術交流嗎?【nMeetup 認識圖資料庫】線下活動報名進行中,在 09.04 和我們一起在杭州交流圖資料庫技術吧~ 【09.04 杭州場報名】【09.11 深圳場報名】

Nebula Graph:一個開源的分散式圖資料庫