Azure 什么是;没有任何进一步的书面说明”;在documentDb最终一致性模型中是什么意思?

Azure 什么是;没有任何进一步的书面说明”;在documentDb最终一致性模型中是什么意思?,azure,azure-cosmosdb,Azure,Azure Cosmosdb,documentDb文档(at)中包含以下信息: 最终结果: 最终的一致性保证了在没有任何进一步写入的情况下,组内的副本最终将聚合 没有进一步的书写是什么意思 假设我将写操作表示为W(x,s1,t1),其中x是记录/文档,在时间1将其更新为状态1。以下是我的写入事件序列: W(A,s1,t1),W(B,s1,t1),W(B,s2,t2),W(C,s1,t3),其中t1

documentDb文档(at)中包含以下信息:

最终结果: 最终的一致性保证了在没有任何进一步写入的情况下,组内的副本最终将聚合

没有进一步的书写是什么意思

假设我将写操作表示为W(x,s1,t1),其中x是记录/文档,在时间1将其更新为状态1。以下是我的写入事件序列:

W(A,s1,t1),W(B,s1,t1),W(B,s2,t2),W(C,s1,t3),其中t1 1) 对每个记录A、B、C的其他副本的更改传播是否独立开始?如果是,每个记录是否都有一个等待期来检测给定记录的更新流

2) 每个记录A、B、C的更改是否仅在t3(表示写入结束)后的一段时间(tn)后才开始传播到其他副本


3) 假设我只有W(A,s1,t1),并且不为任何记录写入更多事件,通常将记录A更改传播到所有副本需要多长时间?(AWS Dynamodb声称这不到一秒钟;我没有发现documentDb有任何这样的说法)

这个想法是,当您写入一些数据时,会有一段时间延迟,直到所有副本都应用了相同的操作

因此,对于写入数据的任何给定时间点,可能会有一个或多个副本稍微不同步

当文档提到“没有进一步写入””时,它只是说,如果您完成了一组文档的编写,并且在一段时间内没有写入其他内容,那么最终所有副本都将处于完全相同的状态。每个副本最终都会彼此保持一致。相反:如果您一直在写,并且从未停止过写,那么您的单个副本可能总是与您刚刚写的主副本(关于您刚刚写的最新文档)稍微不同步


TL;DR文档只是试图显示数据在写入后如何保持一致。

DocumentDB中的复制没有内置的内在延迟。在单区域配置中,实际上复制副本之间最多有几毫秒的延迟。在多区域设置中,主要是区域之间的网络(“光速”)滞后加上一些计算开销

文档之所以说“有一段时间”,是因为这种延迟取决于您的拓扑结构和网络分区。在网络分区的情况下,最终的一致性倾向于可用性而不是一致性(过时),因此副本可能会落后


DocumentDB对最终一致性的实现保证了非常高的一致性读取概率(请参阅)。如果您想要更有力的保证,您可以选择Session、BoundedStalence或Strong等一致性级别。

我正在尝试找出什么是“时间延迟”(假设在任何地方都没有失败)。我知道这是一个很难回答的问题,但典型的时间延迟范围会有所帮助。有关更详细的讨论,您可以发送电子邮件askdocdb@microsoft.com