Azure CosmosDB中的数据一致性

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Lei Zhang网络

小提示:您能找到这篇{Azure CosmosDB中的数据一致性}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Azure CosmosDB中的数据一致性内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">为了保证分布式数据库的高可用性和低延迟性,我们需要在可用性、延迟和吞吐量之间进行权衡。

< font-size: 16px;">绝大部分的商业分布式数据库,要求开发人员选择两个极端的数据库一致性:强一致性(Strong Consistency)和最终一致性(Eventual Consistency)

< font-size: 16px;">强一致性(Strong Consistency)是数据库编程的黄金标准。但是却需要更高的延迟,且在故障期间可用性较低。

< font-size: 16px;">另一方面,最终一致性(Eventual Consistency)提供更高的可用性,和更好的性能,但是应用编程的难度很大。

< font-size: 16px;">Azure Cosmos DB通过某种选择范围来实现数据一致性,而不会走两种极端。

< font-size: 16px;">虽然强一致性和最终一致性处于极端,但在整个范围中有许多一致性选择。开发人员可以使用这些选项在高可用性或性能方面做出精确谷歌快照的选择和细致的取舍。

< font-size: 16px;">借助Azure Cosmos DB,开发人员可以在一致性范围内从五个明确定义的一致性模型中进行选择。

< font-size: 16px;">从最强到最弱,这些模型为“Strong”、“Bounded Staleness”、“Session”、“Consistent 政府危机公关分析Prefix”和“Eventual Consistency”。

< font-size: 16px;">模型定义明确且直观。它们可用于特定的真实场景。每个模型均提供可用性和性能权衡,并由综合SLA提供支持。下图以范围区间形式显示了不同的一致性级别。





< font-size: 16px;">

< font-size: 16px;">一致性级别与区域无关。无论从哪个区域提供读取和写入、与Azure Cosmos帐户关联的区域数量是多少或帐户是配置了单个还是多个写入区域,所有读取操作都保证Azure Cosmos DB帐户的一致性级别。

< font-size: 16px;">与一致性级别关联的保证

< font-size: 16px;">Azure Cosmos DB提供的综合SLA可保证100%的读取请求满足所选任何一致性级别的一致性保证。如果满足与一致性级别关联的所有一致性保证,则读取请求满足一致性SLA。

< font-size: 16px;">下面描述了5种一致性级别的描述:

< font-size: 16px;">Strong(强一致性):< font-size: 16px;">强一致性保证读取操作,总是返回最新提交的版本。客户端永远不会看到未提交或者不完整的写入。始终保证用户读取最新提交的写入操作

< font-size: 16px;">Bounded Staleness:< font-size: 16px;">读取操作(Read)可以晚于写入操作(Write)最多K个版本,或者T个时间。如果我们选择Bounded Staleness,Staleness可以通过两种方式设置:

< font-size: 16px;">-版本号K

< font-size: 16px;">-读取操作可以滞后于写入操作的时间间隔(T)

< font-size: 16px;">强一致性(Strong)的场景,和Bounded Staleness的概念类似,但是过期窗口(Staleness Windows)为0

< font-size: 16px;">当客户端在接受写入的区域中执行读取操作时,Bounded Staleness的一致性提供的保证与强一致性的保证相同。

< font-size: 16px;">Session(会话一致性):< font-size: 16px;">会话一致性的范围限制在客户端会话。

< font-size: 16px;">举个例子,假设我们支持多会话(Multi Session)的场景。其中一个客户端A对CosmosDB执行增删改查操作,那该客户端仅能看到自己提交的内容。

< font-size: 16px;">其他客户端B、C等,不能看到客户端A执行的操作结果

< font-size: 16px;">Consistent prefix(一致性前缀):< font-size: 16px;">返回的更新包含所有更新的一些前航空危机公关处理缀,不带间隔。一致前缀保证读取永远不会看到无序写入

< font-size: 16px;">最终一致性(Eventual Consistency):< font-size: 16px;">不保证读取的顺序。如果缺少任何进一步的写入,则副本最终会收敛。

< font-size: 16px;">接下来我们举个例子:

< font-size: 16px;">



< font-size: 16px;">我们以棒球比赛为例。这场比赛目前处于第七局的中段。这是第七局的比赛。目前客队以2比5的比分落后。

< font-size: 16px;">Azure CosmosDB保存主队和客队的比分。下表列出了使用五种不同的一致性情况下,读取主队和客队比分的情况。

< font-size: 16px;">

< font-size: 16px;">如果大家有兴趣,可以参考这篇文章:https://www.microsoft.com/en-us/research/wp-content/uploads/2011/10/ConsistencyAndBaseballReport.pdf

Azure CosmosDB中的数据一致性

上一篇:instagram无法注册,注册ins提示未知错误怎么办
下一篇:如何使用Facebook和Instagram电商管理工具?


版权声明:以上主题为“Azure CosmosDB中的数据一致性"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    Azure CosmosDB中的数据一致性
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“Azure CosmosDB中的数据一致性”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Azure CosmosDB中的数据一致性的相关事宜。

关键词:Azure,CosmosDB中的数据一致性

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号