JanusGraph 旨在提供不止一台机器的图数据的存储和计算能力。实时的图数据遍历和分析查询是JaunsGraph的基本特性。本节将讲解JanusGraph的特性和所支持的底层持久性解决方案。

  1. JanusGraph 基本特性

    • 支持海量的图数据。 JanusGraph所支持的图的大小取决于集群中机器的数量。
    • 支持大并发下图的事务和操作处理。 JanusGraph的事务处理能力与集群中的机器数量成正比,并且能够毫秒级的响应在海量图数据上的复杂的遍历查询操作。
    • 通过Hadoop框架支持全量图分析和批量图处理。
    • 支持对大图的顶点和边进行地理位置,数值范围和全文的检索。
    • 原生支持Apache TinkerPop图数据模型。
    • 原生支持图形遍历语言Gremlin。
    • 易于使用,通过Gremlin Server实现与编程语言无关的连接。
    • 根据不同图数量级的配置来调整性能。
    • 以节点为中心的索引提供节点级别的查询,来解决超级节点问题。
    • 提供优化的磁盘存储方式,来提高磁盘的存储效率和访问速度。
    • 源代码遵循Apache 2 license的开源许可。
  2. JanusGraph基于Apache Cassandra的优势

    • 持续可用,没有单点故障。
    • 没有主从架构下的图读写瓶颈。
    • 弹性扩展,支持增加和减少机器。
    • 使用缓存来确保数据持续可用。
    • 可以通过增加集群中的机器来扩大缓存。
    • 基于Apache Hadoop。
    • 源代码遵循Apache 2 license的开源许可。
  3. JaunsGraph基于Hbase的优势

    • 基于Apache Hadoop的生态系统。
    • 支持强一致性。
    • 支持更多机器的线性扩展。
    • 读写严格一致。
    • 基于Hbase tables便于Hadoop MapReduce计算。
    • 支持通过JMX查看性能指标。
    • 源代码遵循Apache 2 license的开源许可。
  4. JanusGraph和CAP理论

    Despite your best efforts, your system will experience enough faults that it will have to make a choice between reducing yield (i.e., stop answering requests) and reducing harvest (i.e., giving answers based on incomplete data). This decision should be based on business requirements.

    ​ – Coda Hale

    当我们使用数据库时,需要充分考虑CAP理论(C =一致性,A =可用性,P =可分区性)。 JanusGraph支持了3种后端存储:Apache Cassandra,Apache HBase和Oracle Berkeley DB Java Edition。 注意,BerkeleyDB JE是一个非分布式数据库,通常仅用来测试和学习JanusGraph。

    HBase以可用性为代价优先考虑强一致性。 Cassandra以一致性为代价优先考虑可用性。

    欢迎扫码关注公众号,更好的交流

欢迎扫码关注公众号,更好的交流