我可以在一个 Titan DB 中创建多少个图表?

How many graphs can i create in one Titan DB?

我遇到的情况是,系统的每个用户都可以拥有自己的数百万个顶点和更多边的图形。我想将它实现为每个用户的单独图形。

  1. 所以,如果有十亿多用户,我可以创建多少个图表 在带有 DynamoDB 后端的集群 Titan DB 中?

  2. 如果存在限制,我是否应该创建多个单独的 TitanDB 实例并分散负载?

我需要这个的原因是图表上的大多数 activity 都在用户拥有的范围内。交叉用户 activity 可能很少且偶发。

我查看了此 Titan Graph DB Limitations 文档的限制,但它只讨论了顶点和边的限制。此外,当我们在 google 上搜索时,所有文档链接都在没有信息的情况下访问 DataStax 主页,在那里我可以找到文档。

此外,您能告诉我如何根据需要创建单独的图形实例吗?

同一个持久层中可以有多个图。例如对于 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);

以上有效地为您提供了同一图中的两个子图。

我个人的建议是,如果您不需要图表之间的任何联系,那么您应该使用多个图表。 IE。 graph1graph2graph3 正如我在上面指定的那样。这将使长 运行 中的缩放更容易。当然要非常确定不需要连接。