如果我有一个具有会话一致性的DocumentDB数据库,那么使用etags并发写入同一个文档有什么保证呢?例如,A和B在不同的会话中运行:
假设写:B失败了,因为etag是2,但是我还没有找到任何明确的文档,说明DocumentDB从服务器上读取etag值的保证是什么,比如,是否可以从二级副本读取etag仍然是1,让写:B仍然通过
这个问题Session Guarantee on DocumentDB在评论中讨论了这个问题,但似乎没有得出结论。
Web文档
来自于FAQ https://learn.microsoft.com/en-us/azure/documentdb/documentdb-faq
从示例源(暗示但不声明,这在所有一致性级别上都是正确的?) https://github.com/Azure/azure-documentdb-dotnet/blob/master/samples/code-samples/DocumentManagement/Program.cs:
发布于 2016-11-17 11:19:38
这里是DocumentDB团队成员。确认拉里的答复,即条件写入与ETags将在所有一致性级别强制执行。写入请求必须包括ETag ( REST中的If匹配标头,.NET中的RequestOptions.AccessCondition )。
编辑7/29/2019的帐户配置为多区域写入,没有保证ETag与多区域作者,你必须解决并发写入通过冲突解决过程。和以前一样,ETag验证仍然适用于单个区域的写帐户.
https://stackoverflow.com/questions/40662399
复制相似问题