ChronoGraph:具有版本控制的TinkerPop图数据库的特性与评估
1. ChronoGraph的局限性
ChronoGraph在某些方面存在一定的局限性。在时间分析相关的用例中,它不太适合需要时间范围查询或时间轴模式检测的场景。例如,回答“哪些元素经常一起变化”这样的问题,虽然在ChronoGraph中可以实现,但无法高效执行,需要对提交日志进行线性扫描。再如“列出所有与给定顶点相邻的顶点”的查询,同样需要线性迭代。
ChronoGraph是TinkerPop的一种实现,主要针对遍历语言Gremlin进行优化,因此在声明式、模式驱动的搜索方法(如Cypher)方面,不如专门的Cypher图数据库(如Neo4j)。
目前,ChronoGraph不支持在多台机器之间分布式部署,这限制了图的规模,最大只能在单台机器的物理内存和计算资源限制内管理。目前已知实践中使用的最大ChronoGraph实例在头部版本中有约500,000个元素(顶点加边),且不包括元素的过去版本。
由于数据的版本化特性,ChronoGraph不能像常规通用图数据库那样大量依赖具有O(1)访问时间的字典(如哈希映射)。每次导航步骤中的时间解析步骤复杂度为O(log (n)),这也限制了图的可扩展性。此外,ChronoGraph仍处于研究阶段,代码优化还有很大的提升空间。
2. 与其他TinkerPop实现的比较
ChronoGraph是TinkerPop家族的独特成员。以下是ChronoGraph与其他相关TinkerPop实现的比较:
| 图数据库 | TinkerPop版本 | 部署方式 | 范式 | 最大隔离级别 |
超级会员免费看
订阅专栏 解锁全文
2779

被折叠的 条评论
为什么被折叠?



