功能概览
此文档主要介绍 TuGraph 的主要功能和特性。
1.安装部署
1.1.部署方式
TuGraph目前提供云部署、Docker部署以及安装包部署三种部署方式,用户可根据实际情况选择适合的部署方式。
1.2.软硬件环境
TuGraph核心是由C++开发,默认使用的编译器为GCC8.4,使用c++17标准。此外,存 储过程中额外提供了Python Procedure API,该功能需要Python环境。TuGraph不需要特殊的硬件比如GPU,对RDMA、HBM等高延迟低带宽的通用硬件升级可以天然适配。
TuGraph测试过基于X86和ARM的CPU,包括Intel、AMD、Kunpeng、Hygon、飞腾等,也同时在多个操作系统上运行,包括Ubuntu、CentOS、SUSE、银河麒麟、中标麒麟、UOS的主流版本,对操作系统和CPU没有特殊的要求。
软硬件环境也包括依赖库的环境,由于TuGraph的存储层中默认的KV存储是LMDB,需要文件系统能够支持POSIX接口。在不同的环境下编译和参数配置会略有不同,比如在图存储的点边数据打包中,应和操作系统的页表大小匹配,默认为4KB,建议将系统的页表大小也设置为4KB。
2.存储层
在图数据模型上,TuGraph支持属性图模型,按照层次可以分为子图、标签(包括点标签和边标签)、属性。从存储层看,TuGraph使用使用直观的多层的树状模型,没有跨子图的标签,也没有跨标签的属性,仅保留图模型的核心逻辑。
在子图的存储上,TuGraph对多图做了数据的物理隔离,每个图对应一个LMDB的实例。多图的元数据描述信息,保存在meta的特殊的公共LMDB实例中。点边标签及其属性的存储,通过将图数据自适应地映射到KV键值对,最大程度发挥读性能。同时在KV层实现了多线程写,解决了LMDB写性能较低的劣势。主键索引和二级索引,对应LMDB中B+的表,支持基于比较的索引值增删查改。
存储层还保留了一些其他非核心功能的数据,包括权限数据、预编译的插件数据、监控数据等。