当前位置:网站首页>多主复制下处理写冲突(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
此时,冲突避免方式不再有效,必须要有方案应对不同主节点同时写入的可能。
边栏推荐
- 智能垃圾桶(九)——震动传感器(树莓派pico实现)
- 【愚公系列】2022年07月 Go教学课程 022-Go容器之字典
- Flutter gets the height of the status bar statusbar
- tensorflow2.0 cnn(layerwise)
- LeetCode_733_图像渲染
- 你辛辛苦苦写的文章可能不是你的原创
- npm安装时卡在sill idealTree buildDeps,npm安装速度慢,npm安装卡在一个地方不动
- 【7.29】Code Source - 【Arrangement】【Stone Game II】【Cow and Snacks】【Minimum Number of Spawns】【Sequence】
- 基于ABP实现DDD
- 第二届中国PWA开发者日
猜你喜欢

gerrit中如何切换远程服务器

【7.29】代码源 - 【排列】【石子游戏 II】【Cow and Snacks】【最小生成数】【数列】

C language - function

第05章 存储引擎【1.MySQL架构篇】【MySQL高级】

"Autumn Recruitment Series" MySQL Interview Core 25 Questions (with answers)

6-22漏洞利用-postgresql数据库密码破解

.NET 20th Anniversary Interview - Zhang Shanyou: How .NET technology empowers and changes the world

Graham‘s Scan法求解凸包问题

外媒所言非虚,苹果降价或许是真的在清库存

宁波大学NBU IT项目管理期末考试知识点整理
随机推荐
Website vulnerability repair service provider's analysis of unauthorized vulnerability
多主复制的适用场景(2)-需离线操作的客户端和协作编辑
使用 Postman 工具高效管理和测试 SAP ABAP OData 服务的试读版
[TypeScript]OOP
TypeError: unhashable type: ‘list‘
How Redis handles concurrent access
【愚公系列】2022年07月 Go教学课程 020-Go容器之数组
MySQL多表联合查询
What is the difference between BI software in the domestic market?
MySQL multi-table union query
Kubernetes common commands
flutter设置statusbar状态栏的背景颜色和 APP(AppBar)内部颜色一致方法。
Oracle动态注册非1521端口
软件实现AT命令操作过程
牛客网刷题(二)
update data table update
Small program: Matlab solves differential equations "recommended collection"
Design and Implementation of Compiler Based on C Language
ML.NET related resources
【7.29】Code Source - 【Arrangement】【Stone Game II】【Cow and Snacks】【Minimum Number of Spawns】【Sequence】