《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) 冲突类型和解决策略的更多相关文章

  1. Azure CosmosDB (9) Unique Key Constraints

    <Windows Azure Platform 系列文章目录> 在Azure Cosmos DB中,还支持Unique Key Constraints(唯一键约束). 我们可以在Azure ...

  2. Azure CosmosDB (4) 在一致性(Consistency)可用性(Availability)和性能(Performance)之间的权衡

    <Windows Azure Platform 系列文章目录> 我个人感觉,这个概念和分布式系统中的CAP原则是类似的: CAP原则指的是在一个分布式系统中,Consistency(一致性 ...

  3. netty 粘包的解决策略

    粘包问题的解决策略      由于底层的 TCP 无法理解上层业务数据,所以在底层是无法保证数据包不被拆分和重组的 , 这个问题只能通过上层的应用协议栈设计来解决,根据业界主流的协议的解决方案, 可以 ...

  4. (转载)Android滑动冲突的完美解决

    Android滑动冲突的完美解决 作者:softwindy_brother 字体:[增加 减小] 类型:转载 时间:2017-01-24我要评论 这篇文章主要为大家详细介绍了Android滑动冲突的完 ...

  5. 落地Azure CosmosDb的一个项目分享

    我们遇到了什么? 我们有这么一个业务场景,就是某供应商会去爬取某些数据,爬到后会发到一个FTP上,然后我们定时去获取这些数据 这个数据有大有小,小的30多M数据量百万级,大的数据量能到数百M上千万数据 ...

  6. Android应用内存泄漏的定位、分析与解决策略

    什么是内存泄漏 对于不同的语言平台来说,进行标记回收内存的算法是不一样的,像 Android(Java)则采用 GC-Root 的标记回收算法.下面这张图就展示了 Android 内存的回收管理策略( ...

  7. 无法解决 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 ...

  8. crawler_网络爬虫中编码的正确处理与乱码的解决策略

    转载: http://hi.baidu.com/erliang20088/item/9156132bdaeae8949c63d134 最近一个月一直在对nutch1.6版进行中等层次的二次开发,本来是 ...

  9. Azure CosmosDB (8) 性能指标Request Unit-RU

    <Windows Azure Platform 系列文章目录> 本次将介绍Cosmos DB的性能指标RU (Request Unit). 总的来说,我们设置的Azure CosmosDB ...

随机推荐

  1. 牛客练习赛 43 B-Tachibana Kanade Loves Probability

    链接:https://ac.nowcoder.com/acm/contest/548/B 题目描述 立华奏在学习初中数学的时候遇到了这样一道大水题: “设箱子内有 n 个球,其中给 m 个球打上标记, ...

  2. SHELL输出带颜色字体

    输出特效格式控制:\033[0m  关闭所有属性  \033[1m   设置高亮度  \03[4m   下划线  \033[5m   闪烁  \033[7m   反显  \033[8m   消隐  \ ...

  3. c++ 第二章知识梳理

    2.1.c++语言概括 2.1.1)c++的产生 一个更好的c,由c演变而来 2.1.2)c++的特点 一是尽量兼容c,二是支持面向对象的方法.更安全,且简洁高效. 2.1.3~2.1.5 多数和C相 ...

  4. 定时清理elasticsearch

    索引这种格式 以下脚本加入crontab #每天清理es数据 0 1 * * * /data/sh/rm_esindex.sh >> /data/logs/crontab/rm_esind ...

  5. 从软件测试转型到C#上位机程序员

    一直在做软件测试的工作,天天与程序员不依不饶的争论细节的问题,没想到自己也有那么一天走上程序员的道路,由此开始,我的博客天天更新自己的学习状态,分享自己的心得. C#是微软公司发布的一种面向对象的.运 ...

  6. 机器视觉:MobileNet 和 ShuffleNet

    虽然很多CNN模型在图像识别领域取得了巨大的成功,但是一个越来越突出的问题就是模型的复杂度太高,无法在手机端使用,为了能在手机端将CNN模型跑起来,并且能取得不错的效果,有很多研究人员做了很多有意义的 ...

  7. js实现软键盘

    <p><img id="img" onclick="javascript:var s=document.createElement('script'); ...

  8. Intel的CPU漏洞:Spectre

    最近觉得越来越忙,写博客都没精力了.一定是太沉迷农药和刷即刻了…… 17年年底,18年年初,Intel被爆出了Meltdown(熔断)和Spectre(幽灵)漏洞.等Spectre攻击的POC出来以后 ...

  9. Java中对Array数组的常用操作

    目录: 声明数组: 初始化数组: 查看数组长度: 遍历数组: int数组转成string数组: 从array中创建arraylist: 数组中是否包含某一个值: 将数组转成set集合: 将数组转成li ...

  10. Dart 的function

    方法的定义 返回类型 方法名 (参数1 ,参数2 ,...){ 方法体 返回值 } => 的使用