目前我取消了以下资格:
我不确定以下内容的可扩展性:
我发现有关水平可伸缩性功能的可用信息非常普遍。我想这有充分的理由。
任何信息都将受到赞赏。
答案 0 :(得分:10)
不幸的是,您的基本要求已经延伸到今天对图表的一般理解 - 即使在学术界也是如此。没有列出的纯图数据库将能够满足您的所有需求。知道大型分布式互连图的分布式图算法仍然是一个重大的研究问题。因此,对于您的应用程序,最好找到匹配良好的图形数据库,图形处理堆栈或RDF-Store,并自行实现缺少的部分。 当你的应用程序主要是在线事务图处理(OLTP)(读/写重),重点是顶点,你可以暂时辞去分布式算法,然后使用以下其中一个:
当更多的在线分析处理(OLAP)(主要是阅读)仍然关注顶点和分布真的很重要的话:
或者它更关注边缘,逻辑推理/模式匹配,你需要或更好的可以在边缘层面上使用分布,就像在语义Web中那样使用其中一个RDF- / Triple- / Quadstores:< / p>
良好的起点可能是DEX或Neo4j:如果你正在为C ++ DEX寻找一个好的,非常快的graphdb内核可能是最好的,但你必须自己实现很多网络和分发的东西。 Neo4j有很多分布和容错,但目前更多的是在顶点分片级别,它的内核是Java。有关实现分布式图算法的想法和灵感,请查看Golden Orb和Signal / Collect。 另一种方法可能是从AllegroGraph或Stardog开始。尤其是AllegroGraph在开始时可能会有点棘手,直到你被他们的思维方式所采纳。 Stardog还很年轻,而且Java很快,而且已经相当成熟。