当前位置:网站首页>多主复制下处理写冲突(1)-同步与异步冲突检测及避免冲突
多主复制下处理写冲突(1)-同步与异步冲突检测及避免冲突
2022-07-31 16:31:00 【华为云】
多主复制最大问题:可能发生写冲突,必须解决之。
如两个用户同时编辑wiki,如图-7。用户1将页面标题从A-》B,且用户2同时将标题从A-》C。每个用户的更改都成功提交到本地主节点。但当异步复制到对方时,发现存在冲突。正常的主从复制则不会出现此问题。

3.2.1 同步与异步冲突检测
若为主从复制数据库,第二个写请求将:
- 被阻塞直到第一个写完成
- 或被中止,强制用户必须重试
多主节点的复制模型下,这两个写都是成功的,且只能在稍后时间点才能异步检测到冲突,那时再要求用户解决冲突为时已晚。
理论上能做到同步冲突检测,即等待写请求完成对所有副本的同步,再通知用户写成功。但这样会失去多主的优点:允许每个主节点独立接受写请求。所以,若确实需要同步冲突检测,应考虑使用单主节点的主从复制!
3.2.2 避免冲突
处理冲突的最理想策略:避免它们,若应用层能保证对特定记录的所有写请求都通过同一主节点,就不会冲突。实践中,由于很多主节点复制模型所实现的冲突解决方案很不好,因此直接避免冲突是推荐首选方案。
如用户需编辑自己的数据,可确保特定用户的请求始终路由到特定IDC,并使用该IDC的主节点读/写。不同用户可能对应不同主数据中心(如根据用户地理位置选择),但从用户角度看,这基本等价于主从复制模型。
但有时可能需更改事先指定的主节点,可能因为:
- IDC故障,需将流量重新路由到另一个IDC
- 或可能因为用户已漫游到另一个位置,接近了不同的IDC
此时,冲突避免方式不再有效,必须要有方案应对不同主节点同时写入的可能。
边栏推荐
- The arm button controls the flashing of the led light (embedded button experiment report)
- mysql black window ~ build database and build table
- 牛客 HJ3 明明的随机数
- 智能垃圾桶(八)——红外对管传感器(树莓派pico)
- Oracle动态注册非1521端口
- GP 6总体架构学习笔记
- gerrit中如何切换远程服务器
- Intelligent bin (9) - vibration sensor (raspberries pie pico implementation)
- .NET 20周年专访 - 张善友:.NET 技术是如何赋能并改变世界的
- arm按键控制led灯闪烁(嵌入式按键实验报告)
猜你喜欢
![[TypeScript] In-depth study of TypeScript type operations](/img/d9/ee240ccba72e8d3114ee5c52ed0c8f.png)
[TypeScript] In-depth study of TypeScript type operations

复杂高维医学数据挖掘与疾病风险分类研究

第二届中国PWA开发者日

苹果官网样式调整 结账时产品图片“巨大化”

How C programs run 01 - the composition of ordinary executable files

关于柱状图的经典画法总结

js的toString方法

C language "the third is" upgrade (mode selection + AI chess)

Premiere Pro 2022 for (pr 2022)v22.5.0

Three aspects of Ali: How to solve the problem of MQ message loss, duplication and backlog?
随机推荐
adb shell error error: device unauthorized
GP 6 overall architecture study notes
[TypeScript]OOP
牛客 HJ18 识别有效的IP地址和掩码并进行分类统计
Summary of the implementation method of string inversion "recommended collection"
Website vulnerability repair service provider's analysis of unauthorized vulnerability
你辛辛苦苦写的文章可能不是你的原创
研发过程中的文档管理与工具
牛客 HJ17 坐标移动
Stuck in sill idealTree buildDeps during npm installation, npm installation is slow, npm installation is stuck in one place
在资源管理类中提供对原始资源的访问——条款15
TypeError: unhashable type: ‘list‘
Kubernetes common commands
联邦学习:联邦场景下的多源知识图谱嵌入
tensorflow2.0 cnn(layerwise)
2.索引及调优篇【mysql高级】
jeecg master-slave database read-write separation configuration "recommended collection"
Unity 之 图集属性详解和代码示例 -- 拓展一键自动打包图集工具
After the form is submitted, the page does not jump [easy to understand]
复制延迟案例(1)-最终一致性