2013-06-24 38 views
60

任何人都可以提供或指出Neo4j和泰坦之间的良好比较吗? 我可以看到的一件事是规模 - 泰坦是扩展和需要一个潜在的可扩展数据存储像cassandra。 Neo4j仅适用于HA,并拥有自己的嵌入式数据库。任何其他利弊?任何特定的使用情况。 (目前Titan是否在任何地方使用?)有人试过neo4j vs泰坦 - 利弊

我也有以下链接:http://architects.dzone.com/articles/16-graph-databases-compared,它给出了图形数据库的客观比较,但没有太多关于Neo4j和泰坦之间的优缺点。

+0

你可以看看@ [Titan vs Neo4j](https://groups.google.com/d/msg/aureliusgraphs/vkQkzjN8fo0/9YYgqI4TA0QJ),它可以帮助你.. –

回答

16

很高兴看到你探索图形数据库。我将与您的问题的Neo4j部分对话:

全球2000多于30个现在使用Neo4j生产各种用例,其中许多令人惊讶,即使对我们来说也是如此! (我们发明了性能曲线图!)

客户的部分名单可以发现如下: www.neotechnology.com/customers

的Neo4j已经全天候不间断生产了10年,而该产品具有当然的,因为那么显著发展它建立在一个非常坚实的基础上。

大多数转向图形数据库的公司 - 为我所知的Neo4j说话 - 正在这样做,因为:a)他们的RDBMS无法处理连接查询需求的范围&,和/或b)来自建模领域的巨大便利和速度,这些领域是一个图形(社交,网络&数据中心管理,欺诈,投资组合,身份等),而不是表格。

踢,你可以在这里找到了一些客户的会谈,从四个(很快5个)GraphConnect举行今年在世界各地的主要城市是会议:

http://watch.neo4j.org/

如果”在伦敦,最后一个将在下周举行: http://www.graphconnect.com

您将在下面找到Neo4j背后的一些技术总结以及一些客户示例。要直接说出您的扩展问题:Neo4j具有独特的架构,旨在通过允许横向扩展以最大化查询响应时间来提高查询可预测性,使得每个实例都可以访问图形,而无需跳过网络。 (需要更多的读取吞吐量,只需添加实例)事实证明,这种方法适用于95%以上的图表,其中包括一些生产客户,其中一半以上的Facebook社交图在单个Neo4j集群中运行,支持“永远在线”的24x7网站。

www.neotechnology.com/neo4j-scales-for-the-enterprise/

一个世界上最大的邮政投递服务做了所有他们的实时包的Neo4j的路由。铁路正在Neo4j上构建路由系统。一些全球最大的客户正在将它们用于人力资源和数据治理,备用路径路由,网络数据中心管理,实时欺诈检测,生物信息学等。

Neo4j的Cypher查询语言是唯一的声明式查询语言明确地为属性图构建。它从我们13岁的本地Java API(这是其他图形数据库已采用的蓝图的基础)中汲取了所有经验教训,并将它们推广到下一代语言。 Cypher是学习图形和开发应用程序的好方法;并且如果您有特殊需求或价值“裸机”性能(即亚毫秒与单位数毫秒)的性能超出便利性总是存在本地Java API。 Neo4j从头开始支持图形,并有一个图形存储引擎,用于存储图形;不同于图形数据库生态系统中最近增加的一些新功能,它们在非图形数据库之上构建为图形库,并受到一些固有限制。 (例如FlockDB,因为它是基于MySQL的,仍将是什么比一个跳更大的速度很慢。)

肯定会觉得免费的,如果你需要什么更具体的联系新的球队。我们将非常乐意为您提供帮助! http://info.neotechnology.com/ContactUs.html

祝你好运!

+1

感谢Philip!到目前为止,Neo4j已经足够满足我的需求,所以我已经开始使用它了。我相信它应该能够按照自己的意义很好地扩展和扩展。另外我还看到neo4j集群和备份对于小型starups(少于3名员工或$ 10万美元的收入)是免费的,这对我来说真的很棒。我也意识到Neo4j有更大的占地面积和风扇跟随。我正在经历泰坦,它似乎非常适合超大图,所以我提出了这个帖子。我相信像...... – DevD

+1

这样庞大的组织...... facebook和linkedin有一个合适的横向扩展体系结构将是必不可少的。但正如我所说我不像其他人那样大,我已经开始在几个月前开始研究Neo4j,所以我不敢在排除方面排除Neo4j功能,而且我非常喜欢在Neo4j上工作。 – DevD

24

我们有一个社交图,其中在一天中我们添加了近1百万个节点和两倍的边。我们从neo4j图开始,因为是的,它的速度非常快,因为它的存储位于图形引擎运行的同一台机器上。但以下是我们想与您分享neo4j的经验。

  1. 不适合实时查询。我们有像twitter这样的社交结构。我们必须展示用户在其时间线上所遵循的所有用户的最新20项活动(及其相关活动)。 我们有一些用户跟随1000多个用户。我们为此编写的gremlin查询(如果您感兴趣,那么我们可以共享gremlin查询)真的产生了如此之多的GC,以至于具有8个cpu和48 gb ram的服务器用于冻结,我们必须重新启动服务器才能使其再次联机。
  2. 观察到许多时间网络分区。
  3. 在graoh数据库中没有非常需要的顶点中心索引。

最终,我们用gremlin查询来消除服务器性能,我们不得不将数据库更改为titan。

土卫六上我们得到合理的性能,并且还缩放是很容易的,因为我们正在使用Cassandra的作为后端存储。但是请注意,在这里使用gremlin也不是一个好主意,因为multiget查询非常难看,没有multiget,它的查询变得非常缓慢。

+2

嗨。我真的很想知道更多关于你的设置。如果你能写博客会很酷。如果你更喜欢在twitter或gmail上私下谈论im sorenbs。 – sorenbs

+2

为什么选择Gremlin而不是Cipher?这是Neo 1.9还是2?只是好奇。 –

+0

嗨,其现在已经超过了,因为我们用它一年。这绝对不是2,1.6或1.7。我不记得确切。那时cypher并不是那么受欢迎,它仍然处于新生的形式。 Titan优于neo4j,因为我现在认为它的能力可以扩展并提供多个顶点中心索引(VCI),在我们的例子中,它变得非常重要,因为我们通常有非常大的子集,并且没有VCI,它变得非常昏昏欲睡。 – user2772346