tinkerpop的核心架构分析

tinkerpop的核心就是gremlin的图数据引擎,这套引擎定义了图数据的查询接口,图数据的数据结构,图数据的存储接口。它的源代码在这里:

拿下来代码以后,看下它的项目目录结构:

tinkerpop的源代码结构组织的很清晰,有几个目录可以重点看下:

除了上面介绍的这些组件,还有这些组件值得仔细看:

以上就是对tinkerpop这个项目源代码架构的大概分析。下面具体看看一些核心组件的类图。

Storage

下面是gremlin-core当中定义的Storage接口。默认实现的两个classes包括FileSystemStorageSparkContextStorage

这个接口也可以用来扩展给filesystem和spark以外的存储系统用来接入。

TinkerGraph

tinker-graphgremlin引擎的核心数据结构。上面的classes里,可以看到围绕着TinkerGraph这个class展开的设计。具体的使用可以查看文档:

SparkGremlinPlugin

spark-gremlin的设计:

上面的设计可以看到,gremlin通过实现spark的RDD数据结构来实现对spark平台的接入。

以上是对tinkerpop源代码分析的一些记录,实际上tinkerpop这个平台还有很多可以深挖的东西,后续还会慢慢写一些学习笔记。