CosmosDB图 - 为什么添加边的成本取决于图的大小?

时间:2018-03-22 18:15:09

标签: azure-cosmosdb gremlin

我创建了一个玩具应用程序,它将顶点和边添加到CosmosDB图集合中,并为每个请求打印消耗的RU。

这是输出:

{'path1': {'$variable1': '2018-01-01',
           '$variable2': '2020-01-01',
           '$variable3': '2018-01-01',
           '$variable4': '2018-01-01'},
 'path2': {'$variable1': '2018-01-01',
           '$variable2': '2020-01-01',
           '$variable3': '2018-01-01',
           '$variable4': '2018-01-01 + 2020-01-01'}}

添加顶点的成本是固定的,但添加边的成本会随着图中已有的顶点和边的数量而增加。

知道为什么会这样吗?

编辑: 我在一个没有分区的集合上尝试了同样的事情,whaddaya知道吗? 所有的创作成本都是不变的! 我真的很想了解如果集合是分区的,那么分区间的通信是什么。

2 个答案:

答案 0 :(得分:2)

您需要稍微修改一下查询

gV('1')。has('tenantID','1')。addE('knows')。to(gV('1')。has('tenantId','1'))

用于分区收集。通过'id'查询顶点对于分区收集是低效的,因为将在所有分区中搜索顶点。

答案 1 :(得分:0)

用于添加顶点和边的gremlin查询是什么。

请注意,添加顶点是一次写入。同时,添加边可以是两次读取和一次写入。

现在,写入通常是独立的,但读取可以与系统中的数据量相关联,具体取决于您的读取方式。