Azure CosmosDB (6) 冲突类型和解决策略
《Windows Azure Platform 系列文章目录》
当我们为CosmosDB配置多个Azure Region写入,就需要考虑冲突类型和解决策略。
对于配置了多个写入区域的 Azure Cosmos DB 帐户,当写入者同时更新多个区域中的相同项时,可能会发生更新冲突。 更新冲突划分为以下三种类型:
插入冲突:
当应用程序同时从两个或更多个区域插入具有相同唯一索引的两个或更多个项时,可能会发生这些冲突。 例如,可能会因为 ID 属性而发生此冲突。 所有写入最初可能会在其各自的本地区域中成功。 但根据所选的冲突解决策略,最终只会提交一个具有原始 ID 的项目。
替换冲突:
当应用程序同时从两个或更多个区域更新单个项时,可能会发生这些冲突。
删除冲突:
当应用程序同时从一个区域删除一个项并从其他区域更新该项时,可能会发生这些冲突。
冲突解决策略:
Azure CosmosDB 提供了灵活的策略驱动的机制来解决更新冲突。 可以针对 Azure CosmosDB 容器,从以下两种冲突解决策略中进行选择:
1.Last Write Wins (LWW),最后写入者胜出。
这个策略是默认的策略。该策略基于时间同步时钟协议。
如果在执行插入或替换操作时有两个或更多个项发生冲突,冲突解决路径值最大的项将成为优胜者。 如果多个项的冲突解决路径的数字值相同,则由系统确定优胜者。 保证所有区域融合到单个优胜者,并且提交的项的版本最终相同。 当涉及到删除冲突时,已删除版本始终优先于插入或替换冲突。 不管冲突解决路径的值如何,均会发生此结果。
“最后写入者胜出”是默认的冲突解决策略。 它可用于 SQL 和 MongoDB API 帐户。
2.自定义
此解决策略旨在使用应用程序定义的语义来调解冲突。 在 Azure Cosmos DB 容器上设置此策略时,还需注册合并存储过程。 当在服务器的数据库事务下检测到冲突时,将自动调用此过程。 在执行提交协议过程中,该系统可保证正好执行合并过程一次。
Azure CosmosDB (6) 冲突类型和解决策略的更多相关文章
- Azure CosmosDB (9) Unique Key Constraints
<Windows Azure Platform 系列文章目录> 在Azure Cosmos DB中,还支持Unique Key Constraints(唯一键约束). 我们可以在Azure ...
- Azure CosmosDB (4) 在一致性(Consistency)可用性(Availability)和性能(Performance)之间的权衡
<Windows Azure Platform 系列文章目录> 我个人感觉,这个概念和分布式系统中的CAP原则是类似的: CAP原则指的是在一个分布式系统中,Consistency(一致性 ...
- netty 粘包的解决策略
粘包问题的解决策略 由于底层的 TCP 无法理解上层业务数据,所以在底层是无法保证数据包不被拆分和重组的 , 这个问题只能通过上层的应用协议栈设计来解决,根据业界主流的协议的解决方案, 可以 ...
- (转载)Android滑动冲突的完美解决
Android滑动冲突的完美解决 作者:softwindy_brother 字体:[增加 减小] 类型:转载 时间:2017-01-24我要评论 这篇文章主要为大家详细介绍了Android滑动冲突的完 ...
- 落地Azure CosmosDb的一个项目分享
我们遇到了什么? 我们有这么一个业务场景,就是某供应商会去爬取某些数据,爬到后会发到一个FTP上,然后我们定时去获取这些数据 这个数据有大有小,小的30多M数据量百万级,大的数据量能到数百M上千万数据 ...
- Android应用内存泄漏的定位、分析与解决策略
什么是内存泄漏 对于不同的语言平台来说,进行标记回收内存的算法是不一样的,像 Android(Java)则采用 GC-Root 的标记回收算法.下面这张图就展示了 Android 内存的回收管理策略( ...
- 无法解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_90_CI_AI" 之间的排序规则冲突。的解决方法
在SQL SERVICE的查询的时候遇到了“无法解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_90_CI_AI&q ...
- crawler_网络爬虫中编码的正确处理与乱码的解决策略
转载: http://hi.baidu.com/erliang20088/item/9156132bdaeae8949c63d134 最近一个月一直在对nutch1.6版进行中等层次的二次开发,本来是 ...
- Azure CosmosDB (8) 性能指标Request Unit-RU
<Windows Azure Platform 系列文章目录> 本次将介绍Cosmos DB的性能指标RU (Request Unit). 总的来说,我们设置的Azure CosmosDB ...
随机推荐
- better-scroll无法滚动的问题。
better-scroll无法滚动的问题.1遇见better-scroll(以下简称:BS)无法滚动,可从两方面去考虑.一是层级关系出错,二是计算高度出错.###1,层级关系BS的基本结构是:一个wr ...
- js date setInterval 时间 时钟 getFullYear ,JavaScript
js 创建时钟: 1.参考链接: 注意 getYear (两位 或者 四位) 改成 getFullYear js操作时间 2.实例: html: <span class="glyp ...
- dubbo could not get local host ip address will use 127.0.0.1 instead 异常处理
dubbo could not get local host ip address will use 127.0.0.1 instead 查看hostname localhost:spring wls ...
- socket网络编程-----I/O复用之select函数
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/soc ...
- 【Python】*args和**kwargs的区别
1.*args表示将参数作为元组传给函数 通过一个函数的定义来理解’*args’的含义 修改函数的定义: >>> def fun(*args): ... print args ... ...
- sql业务分割
create Function StrToTable(@str varchar(1000)) Returns @tableName Table ( str2table varchar(50) ) As ...
- DAX和Power BI中的参考日期表
本文使用Power BI模板描述DAX中的引用Date表,可以在Analysis Services模型中使用相同的技术.在Dax Date Template页面下载最新版本的模板. 为什么引用Date ...
- two pointers
two pointers是算法编程中一种非常重要的思想,但是很少会有教材单独拿出来将,其中一个原因是它更倾向于是一种编程技巧,而长得不太像是一个是“算法”的模样.two pointers的思想十分简介 ...
- knockout checkbox 全选
knockout checkbox 全选 <input type=checkbox data-bind="checked:IsAll"/>全选 <ul data- ...
- HDU 6181:Two Paths(次短路)
Two Paths Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 153428/153428 K (Java/Others) Total S ...