gpt4 book ai didi

azure - 文档数据库 - 具有 session 一致性的 ETag 乐观并发

转载 作者:行者123 更新时间:2023-12-02 00:26:16 25 4
gpt4 key购买 nike

如果我有一个具有 session 一致性的 DocumentDB 数据库,那么使用 etag 并发写入同一文档有何保证?例如,A 和 B 在不同的 session 中运行:

  • 读取:A - etag:1
  • 读取:B - etag:1
  • 写入:A - etag:1(匹配,etag = 2)
  • 写入:B - etag:1 ?

假设 Write:B 失败,因为 etag 为 2,但我没有找到任何明确的文档来说明 DocumentDB 从服务器上读取 etag 值的位置有什么保证,如下所示其中,是否可以从 etag 仍为 1 的辅助副本中读取数据,并让 Write:B 仍然通过

这个问题Session Guarantee on DocumentDB在评论中讨论了这个问题,但似乎没有得出结论。

<小时/>

网络文档

摘自常见问题解答https://learn.microsoft.com/en-us/azure/documentdb/documentdb-faq enter image description here

来自示例源(暗示但没有说明,这在所有一致性级别上都成立?)https://github.com/Azure/azure-documentdb-dotnet/blob/master/samples/code-samples/DocumentManagement/Program.cs : enter image description here

最佳答案

此处为 DocumentDB 团队成员。确认 Larry 的答复,即将对所有一致性级别强制执行使用 ETag 的条件写入。写入请求必须包含 ETag(REST 中的 If-Match header ,.NET 中的 RequestOptions.AccessCondition)。

于 2019 年 7 月 29 日编辑,如果帐户配置为多区域写入,则无法保证具有多区域写入器的 ETag,并且您必须通过冲突解决程序解决并发写入问题。与以前一样,ETag 验证仍然适用于单区域写入帐户。

关于azure - 文档数据库 - 具有 session 一致性的 ETag 乐观并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40662399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com