从Microsoft documentation中,我不完全了解使用会话一致性的CosmosDB是否保证没有乱序写入。下面的引用使它看起来像与持久前缀相同的保证:
保证读操作会遵循一致的前缀(假设有一个“ writer”会话),...
尽管从棒球示例的最下一页开始,看来读者可以得到完全随机的订单,类似于最终的一致性。除了在Azure门户上显示的图像似乎隐含地暗示与作者相同的顺序外,从其他在线资源中也找不到确定的答案。
答案 0 :(得分:1)
根据我的研究,我认为会话一致性级别不能保证客户始终读取订单中的值。
我的证据来自link:
如上所述,如果您选择会话一致性级别,则陈旧性窗口取决于您的实际工作量。因此,如果您确实担心读取顺序,建议您使用有限的陈旧程度或什至强一致性级别。
答案 1 :(得分:1)
(我来自Cosmos DB团队)
使用会话一致性的给定客户端将按顺序查看其自己的写入,但最终一致性(假定使用其他会话令牌)将看到其他客户端的写入。
我们将更新文档以使其更加清晰。新文本将显示如下内容:
会话:在单个客户端会话中,保证读取要遵循一致的前缀(假设有一个“ writer”会话),单调读取,单调写入,自写写入和跟随读取的保证。在进行写操作的会话之外的客户端将看到最终的一致性。