Cosmos DB中可以进行事务查询吗?

时间:2020-08-22 19:30:01

标签: transactions azure-cosmosdb paging

Cosmos DB支持多项目 write 事务(在snapshop隔离下)。但是,有什么方法可以执行事务性多项 read (即SELECT)吗?


要弄清为什么Cosmos DB查询通常是事务性的:

假设您有一个包含成对的文档的集合,这些文档总是成对地创建和删除,让我们将它们称为 A s和 B s。因此,一个写事务可以创建文档A1 B1,而另一个写事务可以删除A2 B2 ,因此您永远都不会看到没有相应A的{​​{1}},反之亦然。

但是,如果您对此集合进行B查询,则结果将始终会被分页。无法避免分页。因此,获取查询的结果集意味着检索所有页面。现在,假设第一页包含SELECT但不包含A1。在获得第一页之后,B1A1在单个事务中被删除。现在B1将永远不会出现在随后检索到的任何页面上,从而导致包含B1 A1的答案集。这是一个事务不一致的视图。

有什么解决方法吗?

0 个答案:

没有答案