Azure cosmosdb DocumentDB乐观并发写入和过时重新读取

Azure cosmosdb DocumentDB乐观并发写入和过时重新读取,azure-cosmosdb,Azure Cosmosdb,根据我的理解,当使用If Match ETag更新DocumentDB中的文档时,如果编写了文档的更新版本,无论选择的一致性级别如何,此更新都将失败 我假设这也意味着,如果我使用较低的一致性级别并获得一个过时的读取,然后尝试使用此读取中的ETag执行更新,那么它应该会失败,即使技术上冲突的修改发生在我开始读取之前 常见的解决方案是重新阅读文档,再次进行修改,然后再次尝试编写。然而,我不明白这在一致性级别上是如何工作的。难道我不会再次获得过时的读取(即使假设没有进一步的并发写入),或者Docume

根据我的理解,当使用If Match ETag更新DocumentDB中的文档时,如果编写了文档的更新版本,无论选择的一致性级别如何,此更新都将失败

我假设这也意味着,如果我使用较低的一致性级别并获得一个过时的读取,然后尝试使用此读取中的ETag执行更新,那么它应该会失败,即使技术上冲突的修改发生在我开始读取之前

常见的解决方案是重新阅读文档,再次进行修改,然后再次尝试编写。然而,我不明白这在一致性级别上是如何工作的。难道我不会再次获得过时的读取(即使假设没有进一步的并发写入),或者DocumentDB是否以某种方式确保我在写入失败后获得最新的副本?这是否会导致大量的重新读取(没有最大尝试次数),直到其中一个读取最近的文档

这还带来了一个相关的第二个问题:在较低的一致性级别(主要是会话一致性)下,我可以预期的典型过时情况是什么(换句话说,更改传播到所有副本需要多长时间)?我知道基于负载、配置等,它可能会非常谨慎,但它是以毫秒、秒、分钟甚至小时为单位的吗

提前感谢您的回答,我非常喜欢学习和使用DocumentDB,但我没有在文档和示例中找到明确的答案