Performance OrientDB-大数据性能

Performance OrientDB-大数据性能,performance,gremlin,orientdb,Performance,Gremlin,Orientdb,我在项目中使用OrientDB,我真正关心的是性能。我创建了大数据来测试它,有50万人和50万个兴趣,以及人和人之间的随机关系(2496540个关系)和人和兴趣(332060个关系) 我需要做的是遍历顶点和边。我试过小精灵。 对于朋友少于100人的人,获得共同的朋友大约需要10-20秒,但是如果一个人有数千个朋友,这是不可行的,它需要太多的时间 g.v(id).both('KNOWS').as('here').both('KNOWS').has('id', '10:20').back('here

我在项目中使用OrientDB,我真正关心的是性能。我创建了大数据来测试它,有50万人和50万个兴趣,以及人和人之间的随机关系(2496540个关系)和人和兴趣(332060个关系)

我需要做的是遍历顶点和边。我试过小精灵。 对于朋友少于100人的人,获得共同的朋友大约需要10-20秒,但是如果一个人有数千个朋友,这是不可行的,它需要太多的时间

g.v(id).both('KNOWS').as('here').both('KNOWS').has('id', '10:20').back('here').dedup.email
好友数少于100的人推荐好友大约需要40-50秒,但如果一个人有数千个好友,推荐好友也需要40-50秒

x=[g.v(id)];g.v(id).both('KNOWS').aggregate(x).both('KNOWS').except(x).dedup.email
这些是OrientDB快速执行这种遍历的方法吗

OrientDB SQL遍历只支持深度优先遍历,似乎无法在两个人之间找到共同的朋友,而且朋友推荐很复杂。我错过什么了吗


谢谢你的回答

为什么不从10:20开始,从那里交叉关系,而不是浏览所有数据库,检查该顶点是否与10:20相关?

我不太明白。例如,我需要在10:10和10:20之间找到共同的朋友,Gremlin希望这样:g.v('10:10')。两者('KNOWS')。as('here')。两者('KNOWS')。has('id','10:20')。back('here')。dedup.email。是吗?没错。我没有得到第一个帖子的g.v(id),其中id是你每次通过的RID。为了加快遍历,OrientDB需要在服务器中有足够的堆并启用缓存。你的配置硬件/软件是什么?当然,我只使用我的电脑做这些测试。顺便问一下,分布式服务器的性能会比只有一台机器更好吗?