寻找具有.NET或C++绑定的成熟,可扩展的GraphDB

Lio*_*gan 4 nosql graph-databases distributed-database

我对GraphDB的基本要求:

  • 成熟(准备就绪)
  • 本机.NET或C++语言绑定
  • 横向可扩展性:两者
    • 自动数据冗余和分片
    • 分布式图算法/查询执行

目前我取消了以下资格:

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

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

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

我发现有关水平可扩展性功能的可用信息非常普遍.我想这有充分的理由.

任何信息,将不胜感激.

小智 10

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

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

当更多的在线分析处理(OLAP)(主要是阅读)仍然关注顶点和分布真的很重要:

  • Apache Hama(早期项目)
  • Microsoft Trinity(研究项目)
  • 金球(好,但只限Java)
  • 信号/收集(http://www.ifi.uzh.ch/ddis/research/sc,但研究项目)

或者更多地关注边缘,逻辑推理/模式匹配,您需要或更好地使用边缘级别的分布,就像在语义Web中一样,然后使用这些RDF-/Triple-/Quadstores中的一个:

  • AllegroGraph(好吧,他们是graphdb/rdf商店混合;)
  • 耶拿
  • 芝麻
  • Stardog
  • 炫技
  • ......以及更多的RDF商店

好的起点可能是DEX或Neo4j:如果你正在为C++ DEX寻找一个好的,非常快的graphdb内核可能是最好的,但你必须自己实现很多网络和分发的东西.Neo4j有很多分布和容错,但目前更多的是在顶点分片级别,它的内核是Java.有关实现分布式图算法的想法和灵感,请查看Golden Orb和Signal/Collect.另一种方法可能是从AllegroGraph或Stardog开始.尤其是AllegroGraph在开始时可能会有点棘手,直到你被他们的思维方式所采纳.Stardog仍然年轻而且Java,但速度快且已经相当成熟.