我的情况是系统的每个用户都可以拥有自己的百万个顶点和更多边缘的图形。我想将它作为每个用户的单独图表来实现。
因此,如果有十亿以上的用户,我可以创建多少个图表 在具有DynamoDB后端的集群Titan DB中?
如果存在限制,我应该创建多个单独的TitanDB实例并分散负载吗?
我需要这个的原因是图表上的大多数活动都在用户拥有的范围内。跨用户活动可能很少而且是零星的。
我查看了这个Titan Graph DB Limitations文档的限制,但它只讨论了顶点和边缘的限制。此外,当我们在谷歌上搜索时,所有文档链接都在没有niformation的DataStax主页上,我可以在那里找到文档。
另外,您能告诉我如何根据需要创建单独的图形实例吗?
答案 0 :(得分:4)
您可以在同一个持久层中拥有多个图表。例如,如果您有以下配置,请使用Cassandra:
conf1:
storage.cassandra.keyspace=name1
conf2:
storage.cassandra.keyspace=name2
conf3:
storage.cassandra.keyspace=name3
然后,您可以使用以下内容在该持久层中创建多个图形:
graph1 = TitanFactory.open(conf1)
graph2 = TitanFactory.open(conf2)
graph3 = TitanFactory.open(conf3)
如果您问如何在同一TitanFactory.open()
内创建多个图表,那么您无法以直截了当的方式进行。
您可以做的是在同一图表中创建多个断开连接的图形。例如:
graph1 = TitanFactory.open(conf)
//Create One Disconnected Graph
v1 = graph.addVertex();
v2 = graph.addVertex();
v1.addEdge("edge", v2);
//Create Another Disconnected Graph
v3 = graph.addVertex();
v4 = graph.addVertex();
v3.addEdge("edge", v4);
以上有效地为您提供了同一图表中的两个子图。
我个人的建议是,如果您的图表之间不需要任何连接,那么您应该使用多个图表。即我在上面指定的graph1
,graph2
和graph3
。从长远来看,这将使扩展更容易。当然非常肯定不需要连接。