简介
JanusGraph 的优势
JanusGraph 旨在支持处理非常大的图,这些图需要超出单机所能提供的存储和计算能力。扩展图数据处理以进行实时遍历和分析查询是 JanusGraph 的基本优势。本节将讨论 JanusGraph 及其底层支持的持久化解决方案的各种具体优势。
JanusGraph 的一般优势
- 支持超大型图。JanusGraph 图可随集群中机器的数量而扩展。
- 支持大量并发事务和操作图处理。JanusGraph 的事务能力随集群中机器的数量而扩展,并在毫秒级时间内对大型图回答复杂的遍历查询。
- 通过 Hadoop 框架支持全局图分析和批处理图处理。
- 支持对超大型图的顶点和边的地理、数字范围和全文搜索。
- 原生支持 Apache TinkerPop 所公开的流行属性图数据模型。
- 原生支持图遍历语言 Gremlin。
- 众多图级配置提供了调整性能的旋钮。
- 以顶点为中心的索引提供了顶点级查询,以缓解臭名昭著的超级节点问题。
- 提供优化的磁盘表示,以高效利用存储和加快访问速度。
- 在宽松的 Apache 2 许可证下开源。
JanusGraph 与 Apache Cassandra 结合的优势
- 持续可用,无单点故障。
-
由于没有主/从架构,因此图的读/写没有瓶颈。
-
弹性伸缩允许添加和移除机器。
- 缓存层确保连续访问的数据在内存中可用。
- 通过向集群添加更多机器来增加缓存的大小。
- 与 Apache Hadoop 集成。
- 在宽松的 Apache 2 许可证下开源。
JanusGraph 与 HBase 结合的优势
- 与 Apache Hadoop 生态系统紧密集成。
- 原生支持强一致性。
- 通过添加更多机器实现线性伸缩。
- 严格一致的读写。
- 方便的基类,用于通过 HBase 表支持 Hadoop MapReduce 作业。
- 支持通过 JMX 导出指标。
- 在宽松的 Apache 2 许可证下开源。
JanusGraph 与 CAP 定理
尽管您尽了最大努力,您的系统仍会发生足够的故障,以至于它必须在降低产量(即停止响应请求)和降低收获(即根据不完整的数据给出答案)之间做出选择。此决定应基于业务需求。
使用数据库时,应充分考虑 CAP 定理(C=一致性,A=可用性,P=分区容错性)。JanusGraph 分布式支持 3 种后端:Apache Cassandra、Apache HBase 和 Oracle Berkeley DB Java Edition。请注意,BerkeleyDB JE 是一个非分布式数据库,通常仅与 JanusGraph 一起用于测试和探索目的。
HBase 优先考虑一致性,但牺牲了产量,即完成请求的概率。Cassandra 优先考虑可用性,但牺牲了收获,即查询答案的完整性(可用数据/完整数据)。