在10000个节点和1M边缘,你应该没有普通Gremlin(没有Faunus)的问题.请参阅下面的代码,我使用Furnace生成大约该尺寸的图表:
gremlin> g = TitanFactory.open('/tmp/titan/generated')
==>titangraph[local:/tmp/titan/generated]
gremlin> import com.tinkerpop.furnace.generators.*
==>import com.tinkerpop.gremlin.*
==>import com.tinkerpop.gremlin.java.*
...
==>import com.tinkerpop.furnace.generators.*
gremlin> for (int i=0;i<10000;i++) g.addVertex(i)
==>null
gremlin> r = new java.util.Random()
==>java.util.Random@137f0ced
gremlin> generator = new DistributionGenerator("knows", { it.setProperty("weight", r.nextInt(100)) } as EdgeAnnotator)
==>com.tinkerpop.furnace.generators.DistributionGenerator@111a3ce4
gremlin> generator.setOutDistribution(new PowerLawDistribution(2.1))
==>null
gremlin> generator.generate(g,1000000)
==>1042671
Run Code Online (Sandbox Code Playgroud)
回想一下你在聚合上的帖子,我基本上对这个数据集执行相同的查询.
gremlin> start=System.currentTimeMillis();g.E.groupBy{it.getProperty("weight")}{it}.cap.next();System.currentTimeMillis()-start
==>1415
gremlin> m.size()
==>100
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,进行此遍历需要大约1.5秒(在TinkerGraph上大约500毫秒,这一切都在内存中).
在1B边缘你可能需要Faunus.我不认为你会在一分钟之内完成所有这些边缘的迭代,即使你能以某种方式将它全部放入内存中.请注意,使用Faunus,您可能无法获得1分钟的查询/回答时间.你需要尝试一下我想.