You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hugegraph.apache.org by ji...@apache.org on 2023/06/25 13:06:13 UTC

[incubator-hugegraph-doc] branch master updated: doc: update outdated architectural doc (#274)

This is an automated email from the ASF dual-hosted git repository.

jin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph-doc.git


The following commit(s) were added to refs/heads/master by this push:
     new bf55c142 doc: update outdated architectural doc (#274)
bf55c142 is described below

commit bf55c142bbfebc261bf005349e8194af2885289d
Author: V_Galaxy <19...@qq.com>
AuthorDate: Sun Jun 25 21:06:07 2023 +0800

    doc: update outdated architectural doc (#274)
    
    * doc: remove outdated gcc dependency hint in server quickstart
    
    * doc: sync architectural EN doc
---
 .../hugegraph-server-idea-setup.md                 |   6 ++-
 content/cn/docs/guides/architectural.md            |  34 ++++++++--------
 .../docs/images/design/architectural-revised.png   | Bin 0 -> 338402 bytes
 content/cn/docs/quickstart/hugegraph-server.md     |  14 ++-----
 .../hugegraph-server-idea-setup.md                 |   6 ++-
 content/en/docs/guides/architectural.md            |  44 ++++++++++-----------
 .../docs/images/design/architectural-revised.png   | Bin 0 -> 338402 bytes
 content/en/docs/quickstart/hugegraph-server.md     |   6 +--
 8 files changed, 51 insertions(+), 59 deletions(-)

diff --git a/content/cn/docs/contribution-guidelines/hugegraph-server-idea-setup.md b/content/cn/docs/contribution-guidelines/hugegraph-server-idea-setup.md
index b2a9f10d..ae1c1028 100644
--- a/content/cn/docs/contribution-guidelines/hugegraph-server-idea-setup.md
+++ b/content/cn/docs/contribution-guidelines/hugegraph-server-idea-setup.md
@@ -114,17 +114,19 @@ curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
 
 ### 可能遇到的问题
 
-#### java: package sun.misc does not exist
+#### 1. java: package sun.misc does not exist
 
 原因可能是在使用 Java 11 编译时触发了交叉编译,导致项目中使用的 `sun.misc.Unsafe` 找不到符号。有两种解决方案可供选择:
 
 1. 在 IntelliJ IDEA 的 `Preferences/Settings` 中找到 `Java Compiler` 面板,然后关闭 `--release` 选项 (推荐)
 2. 或者将项目的 SDK 版本设置为 8
 
-#### Log4j2 日志无法打印 %l 等位置信息
+#### 2. Log4j2 日志无法打印 %l 等位置信息
 
 这是因为 Log4j2 中使用了 asynchronous loggers,可以参考[官方文档](https://logging.apache.org/log4j/2.x/manual/layouts.html#LocationInformation)进行配置
 
+---
+
 ##### 参考
 
 1. [HugeGraph-Server Quick Start](/docs/quickstart/hugegraph-server/)
diff --git a/content/cn/docs/guides/architectural.md b/content/cn/docs/guides/architectural.md
index 6e7663d1..c9c23dba 100644
--- a/content/cn/docs/guides/architectural.md
+++ b/content/cn/docs/guides/architectural.md
@@ -6,25 +6,25 @@ weight: 1
 
 ### 1 概述
 
-作为一款通用的图数据库产品,HugeGraph需具备图数据的基本功能,如下图所示。HugeGraph包括三个层次的功能,分别是存储层、计算层和用户接口层。 HugeGraph支持OLTP和OLAP两种图计算类型,其中OLTP实现了[Apache TinkerPop3](https://tinkerpop.apache.org)框架,并支持[Gremlin](https://tinkerpop.apache.org/gremlin.html)查询语言。 OLAP计算是基于SparkGraphX实现。
-
-<div style="text-align: center;">
-  <img src="/docs/images/design/architectural-overview.png" alt="image">
-</div>
+作为一款通用的图数据库产品,HugeGraph 需具备图数据库的基本功能。HugeGraph 支持 OLTP 和 OLAP 两种图计算类型,其中 OLTP 实现了 [Apache TinkerPop3](https://tinkerpop.apache.org) 框架,支持 [Gremlin](https://tinkerpop.apache.org/gremlin.html) 和 [Cypher](https://en.wikipedia.org/wiki/Cypher) 查询语言,拥有功能齐全的应用工具链,还提供了插件式后端存储驱动框架。
 
-
-### 2 组件
-
-HugeGraph的主要功能分为HugeCore、ApiServer、HugeGraph-Client、HugeGraph-Loader和HugeGraph-Studio等组件构成,各组件之间的通信关系如下图所示。
+下面是 HugeGraph 的整体架构图:
 
 <div style="text-align: center;">
-  <img src="/docs/images/design/architectural-component.png" alt="image">
+  <img src="/docs/images/design/architectural-revised.png" alt="image">
 </div>
 
-
-- HugeCore :HugeGraph的核心模块,TinkerPop的接口主要在该模块中实现。HugeCore的功能涵盖包括OLTP和OLAP两个部分。
-- ApiServer :提供RESTFul Api接口,对外提供Graph Api、Schema Api和Gremlin Api等接口服务。
-- HugeGraph-Client:基于Java客户端驱动程序。HugeGraph-Client是Java版本客户端驱动程序,后续可根据需要提供Python、Go、C++等多语言支持。
-- HugeGraph-Loader:数据导入模块。HugeGraph-Loader可以扫描并分析现有数据,自动生成Graph Schema创建语言,通过批量方式快速导入数据。
-- HugeGraph-Studio:基于Web的可视化IDE环境。以Notebook方式记录Gremlin查询,可视化展示Graph的关联关系。HugeGraph-Studio也是本系统推荐的工具。
-- HugeGraph-Computer:HugeGraph-Computer是一个分布式图处理系统 (OLAP)。
+HugeGraph 包括三个层次的功能,分别是应用程序层、图引擎层和存储层。
+
+- 应用程序层:
+  - [Hubble](/docs/quickstart/hugegraph-hubble/): 一站式可视化分析平台,平台涵盖了从数据建模,到数据快速导入,再到数据的在线、离线分析、以及图的统一管理的全过程,实现了图应用的全流程向导式操作。
+  - [Loader](/docs/quickstart/hugegraph-loader/): 数据导入组件,能够将多种数据源的数据转化为图的顶点和边并批量导入到图数据库中。
+  - [Tools](/docs/quickstart/hugegraph-tools/): 命令行工具,用于部署、管理和备份/恢复 HugeGraph 中的数据。
+  - [Computer](/docs/quickstart/hugegraph-computer/): 分布式图处理系统 (OLAP),它是 [Pregel](https://kowshik.github.io/JPregel/pregel_paper.pdf) 的一个实现,可以运行在 Kubernetes 上。
+  - [Client](/docs/quickstart/hugegraph-client/): 使用 Java 编写的 HugeGraph 客户端,用户可以使用 Client 编写 Java 代码操作 HugeGraph,后续可根据需要提供 Python、Go、C++ 等多语言支持。
+- [图引擎层](/docs/quickstart/hugegraph-server/):
+  - REST Server: 提供 RESTful API 用于查询 Graph/Schema 等信息,支持 [Gremlin](https://tinkerpop.apache.org/gremlin.html) 和 [Cypher](https://en.wikipedia.org/wiki/Cypher) 查询语言,提供服务监控和运维的 APIs。
+  - Graph Engine: 支持 OLTP 和 OLAP 两种图计算类型,其中 OLTP 实现了 [Apache TinkerPop3](https://tinkerpop.apache.org) 框架。
+  - Backend Interface: 实现将图数据存储到后端。
+- 存储层:
+  - Storage Backend: 支持多种内置存储后端 (RocksDB/MySQL/HBase/...),也允许用户无需更改现有源码的情况下扩展自定义后端。
diff --git a/content/cn/docs/images/design/architectural-revised.png b/content/cn/docs/images/design/architectural-revised.png
new file mode 100644
index 00000000..2316ebf9
Binary files /dev/null and b/content/cn/docs/images/design/architectural-revised.png differ
diff --git a/content/cn/docs/quickstart/hugegraph-server.md b/content/cn/docs/quickstart/hugegraph-server.md
index 71d48383..371e153d 100644
--- a/content/cn/docs/quickstart/hugegraph-server.md
+++ b/content/cn/docs/quickstart/hugegraph-server.md
@@ -16,7 +16,7 @@ Core 模块是 Tinkerpop 接口的实现,Backend 模块用于管理数据存
 
 #### 2.1 安装 Java 11 (JDK 11)
 
-请优先考虑在 Java11 的环境上启动 `HugeGraph-Server`,目前同时保留对 Java8 的兼容
+请优先考虑在 Java 11 的环境上启动 `HugeGraph-Server`,目前同时保留对 Java 8 的兼容
 
 **在往下阅读之前务必执行 `java -version` 命令查看 jdk 版本**
 
@@ -24,14 +24,6 @@ Core 模块是 Tinkerpop 接口的实现,Backend 模块用于管理数据存
 java -version
 ```
 
-#### 2.2 安装 GCC-4.3.0 (GLIBCXX_3.4.10) 或更新版本(可选)
-
-如果使用的是 RocksDB 后端,请务必执行 `gcc --version` 命令查看 gcc 版本;若使用其他后端,则不需要。
-
-```bash
-gcc --version
-```
-
 ### 3 部署
 
 有三种方式可以部署 HugeGraph-Server 组件:
@@ -320,7 +312,7 @@ Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)....OK
 
 下载 MySQL 的[驱动包](https://repo1.maven.org/maven2/mysql/mysql-connector-java/),比如 `mysql-connector-java-8.0.30.jar`,并放入 HugeGraph-Server 的 `lib` 目录下。
 
-修改 `hugegraph.properties`,配置数据库URL,用户名和密码,`store` 是数据库名,如果没有会被自动创建。
+修改 `hugegraph.properties`,配置数据库 URL,用户名和密码,`store` 是数据库名,如果没有会被自动创建。
 
 ```properties
 backend=mysql
@@ -345,7 +337,7 @@ cd hugegraph-${version}
 bin/init-store.sh
 ```
 
-启动server
+启动 server
 
 ```bash
 bin/start-hugegraph.sh
diff --git a/content/en/docs/contribution-guidelines/hugegraph-server-idea-setup.md b/content/en/docs/contribution-guidelines/hugegraph-server-idea-setup.md
index 4cbe64da..4f215bba 100644
--- a/content/en/docs/contribution-guidelines/hugegraph-server-idea-setup.md
+++ b/content/en/docs/contribution-guidelines/hugegraph-server-idea-setup.md
@@ -114,17 +114,19 @@ To avoid maintaining two separate configuration files, you can modify the Log4j2
 
 ### Possible Issues
 
-#### java: package sun.misc does not exist
+#### 1. java: package sun.misc does not exist
 
 The reason may be that cross-compilation is triggered when using Java 11 to compile, causing the symbol of `sun.misc.Unsafe` used in the project to not be found. There are two possible solutions:
 
 1. In IntelliJ IDEA, go to `Preferences/Settings` and find the `Java Compiler` panel. Then, disable the `--release` option (recommended).
 2. Set the Project SDK to 8.
 
-#### Unable to Print Location Information (%l) in Log4j2
+#### 2. Unable to Print Location Information (%l) in Log4j2
 
 This is because Log4j2 uses asynchronous loggers. You can refer to the [official documentation](https://logging.apache.org/log4j/2.x/manual/layouts.html#LocationInformation) for configuration details.
 
+---
+
 ### References
 
 1. [HugeGraph-Server Quick Start](/docs/quickstart/hugegraph-server/)
diff --git a/content/en/docs/guides/architectural.md b/content/en/docs/guides/architectural.md
index 3d161d95..616f79ef 100644
--- a/content/en/docs/guides/architectural.md
+++ b/content/en/docs/guides/architectural.md
@@ -6,25 +6,25 @@ weight: 1
 
 ### 1 Overview
 
-As a general-purpose graph database product, HugeGraph needs to have the basic functions of graph data, as shown in the figure below. HugeGraph includes three levels of functions, namely storage layer, computing layer and user interface layer. HugeGraph supports two types of graph computing, OLTP and OLAP. OLTP implements the [Apache TinkerPop3](https://tinkerpop.apache.org) framework and supports the [Gremlin](https://tinkerpop.apache.org/gremlin.html) query language. OLAP computing is  [...]
-
-<center>
-  <img src="/docs/images/design/architectural-overview.png" alt="image">
-</center>
-
-
-### 2 components
-
-The main functions of HugeGraph are divided into components such as HugeCore, ApiServer, HugeGraph-Client, HugeGraph-Loader and HugeGraph-Studio. The communication relationship between each component is shown in the figure below.
-
-<center>
-  <img src="/docs/images/design/architectural-component.png" alt="image">
-</center>
-
-
-- HugeCore: The core module of HugeGraph, the interface of TinkerPop is mainly implemented in this module. The function of HugeCore includes two parts: OLTP and OLAP.
-- ApiServer: Provides RESTFul Api interface, and provides external interface services such as Graph Api, Schema Api, and Gremlin Api.
-- HugeGraph-Client: Java-based client driver. HugeGraph-Client is a Java version client driver, which can provide Python, Go, C++ and other multi-language support as needed.
-- HugeGraph-Loader: data import module. HugeGraph-Loader can scan and analyze existing data, automatically generate Graph Schema creation language, and quickly import data in batches.
-- HugeGraph-Studio: Web-based visual IDE environment. Record Gremlin queries in Notebook mode, and visualize the relationship between Graphs. HugeGraph-Studio is also a tool recommended by this system.
-- HugeGraph-Computer: HugeGraph-Computer is a distributed graph processing system (OLAP).
+As a general-purpose graph database product, HugeGraph needs to possess basic graph database functionality. HugeGraph supports two types of graph computation: OLTP and OLAP. For OLTP, it implements the [Apache TinkerPop3](https://tinkerpop.apache.org) framework and supports the [Gremlin](https://tinkerpop.apache.org/gremlin.html) and [Cypher](https://en.wikipedia.org/wiki/Cypher) query languages. It comes with a complete application toolchain and provides a plugin-based backend storage d [...]
+
+Below is the overall architecture diagram of HugeGraph:
+
+<div style="text-align: center;">
+  <img src="/docs/images/design/architectural-revised.png" alt="image">
+</div>
+
+HugeGraph consists of three layers of functionality: the application layer, the graph engine layer, and the storage layer.
+
+- Application Layer:
+  - [Hubble](/docs/quickstart/hugegraph-hubble/): An all-in-one visual analytics platform that covers the entire process of data modeling, rapid data import, online and offline analysis of data, and unified management of graphs. It provides a guided workflow for operating graph applications.
+  - [Loader](/docs/quickstart/hugegraph-loader/): A data import component that can transform data from various sources into vertices and edges and bulk import them into the graph database.
+  - [Tools](/docs/quickstart/hugegraph-tools/): Command-line tools for deploying, managing, and backing up/restoring data in HugeGraph.
+  - [Computer](/docs/quickstart/hugegraph-computer/): A distributed graph processing system (OLAP) that implements [Pregel](https://kowshik.github.io/JPregel/pregel_paper.pdf). It can run on Kubernetes.
+  - [Client](/docs/quickstart/hugegraph-client/): HugeGraph client written in Java. Users can use the client to operate HugeGraph using Java code. Support for other languages such as Python, Go, and C++ may be provided in the future.
+- [Graph Engine Layer](/docs/quickstart/hugegraph-server/):
+  - REST Server: Provides a RESTful API for querying graph/schema information, supports the [Gremlin](https://tinkerpop.apache.org/gremlin.html) and [Cypher](https://en.wikipedia.org/wiki/Cypher) query languages, and offers APIs for service monitoring and operations.
+  - Graph Engine: Supports both OLTP and OLAP graph computation types, with OLTP implementing the [Apache TinkerPop3](https://tinkerpop.apache.org) framework.
+  - Backend Interface: Implements the storage of graph data to the backend.
+- Storage Layer:
+  - Storage Backend: Supports multiple built-in storage backends (RocksDB/MySQL/HBase/...) and allows users to extend custom backends without modifying the existing source code.
diff --git a/content/en/docs/images/design/architectural-revised.png b/content/en/docs/images/design/architectural-revised.png
new file mode 100644
index 00000000..2316ebf9
Binary files /dev/null and b/content/en/docs/images/design/architectural-revised.png differ
diff --git a/content/en/docs/quickstart/hugegraph-server.md b/content/en/docs/quickstart/hugegraph-server.md
index a6bee140..b53e8f4f 100644
--- a/content/en/docs/quickstart/hugegraph-server.md
+++ b/content/en/docs/quickstart/hugegraph-server.md
@@ -14,16 +14,12 @@ The Core Module is an implementation of the Tinkerpop interface; The Backend mod
 
 ### 2 Dependency for Building/Running
 
-#### 2.1 Install Java11 (JDK 11)
+#### 2.1 Install Java 11 (JDK 11)
 
 Consider use Java 11 to run `HugeGraph-Server` (also compatible with Java 8 now), and configure by yourself.
 
 **Be sure to execute the `java -version` command to check the jdk version before reading**
 
-#### 2.2 Install GCC-4.3(GLIBCXX_3.4.10) or higher version (optional)
-
-If you are using the `RocksDB` backend, be sure to execute the `gcc --version` command to check its version; Not required if you are using other backends.
-
 ### 3 Deploy
 
 There are three ways to deploy HugeGraph-Server components: