GraphDB中的

我的基本要求

  • 成熟(可投入生产)
  • 本地.NET或C ++语言绑定
  • 水平可扩展性:两者
    • 自动数据冗余和分片
    • 分布式图算法/查询执行

      目前我取消了以下资格:

      • InfiniteGraph:没有C ++ / .NET语言绑定
      • HyperGraphDB:没有C ++ / .NET语言绑定
      • Microsoft Trinity:不成熟
      • Neo4j:未分发

        我不确定以下内容的可扩展性:

        • 稀疏DEX
        • Franz Inc. AllegroGraph
        • Sones GraphDB

          我发现有关水平可伸缩性功能的可用信息相当笼统。我想这有充分的理由。

          任何信息将不胜感激。

有帮助吗?

解决方案

不幸的是,即使在学术界,您的基本要求已经扩展了当今对图形的一般理解。没有列出的纯图形数据库能够满足您的所有需求。知道大型分布式但互连图的分布式图算法仍然是一个很大的研究问题。因此,对于您的应用程序,最好是找到一个匹配良好的图形数据库,图形处理堆栈或RDF-Store,并自行实现缺少的部分。 当您的应用程序主要是在线事务图处理(OLTP)(读/写繁重)并且重点放在顶点时,您可以暂时放弃分布式算法,然后使用以下一种方法:

  • Neo4j
  • OrientDB
  • DEX
  • HyperGraphDB
  • InfiniteGraph
  • InfoGrid
  • 微软霍顿

    当更多的是联机分析处理(OLAP)(主要是阅读内容)仍然侧重于顶点和分布时,那么真的很重要:

    • Apache Hama(早期项目)
    • Microsoft Trinity(研究项目)
    • 金球(很好,但仅Java)
    • Signal / Collect(http://www.ifi.uzh.ch/ddis/research/sc,但是一个研究项目)

      或者它的重点是边缘,逻辑推理/模式匹配,并且您需要或更好地可以像语义网中那样使用边缘级别的分布,然后使用以下RDF- / Triple- / Quadstores中的一种:

      • AllegroGraph(好吧,它们是graphdb / rdf存储混合体;)
      • 耶拿
      • 芝麻
      • Stardog
      • Virtuoso
      • ...还有更多RDF商店

        良好的起点可能是DEX或Neo4j:如果您正在寻找用于C ++的良好且非常快速的graphdb内核,DEX可能是最佳选择,但您必须自己实现大量的网络和发行内容。 Neo4j具有许多分布和容错能力,但目前在顶点分片级别上更多,它的内核是Java。有关实现分布式图形算法的想法和灵感,请查看Golden Orb和Signal / Collect。 另一种方法可能是从AllegroGraph或Stardog开始。尤其是AllegroGraph在一开始可能会有些棘手,直到您习惯了他们的思维方式。 Stardog还很年轻,还很Java,但是很快并且已经很成熟了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top