当前位置:网站首页>多主复制下处理写冲突(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
此时,冲突避免方式不再有效,必须要有方案应对不同主节点同时写入的可能。
边栏推荐
- Single-cell sequencing workflow (single-cell RNA sequencing)
- 牛客 HJ3 明明的随机数
- 上传图片-微信小程序(那些年的坑记录2022.4)
- JS基础小练习
- 动态规划之线性dp(上)
- 牛客 HJ20 密码验证合格程序
- Oracle dynamically registers non-1521 ports
- Snake Project (Simple)
- How C programs run 01 - the composition of ordinary executable files
- Foreign media right, apple on May be true in inventory
猜你喜欢

Kubernetes principle analysis and practical application manual, too complete

Foreign media right, apple on May be true in inventory

研发过程中的文档管理与工具

动态规划(一)

使用互相关进行音频对齐

长得很怪的箱图

Design and Implementation of Compiler Based on C Language

Visualize GraphQL schemas with GraphiQL

t-sne 数据可视化网络中的部分参数+

组合学笔记(六)局部有限偏序集的关联代数,Möbius反演公式
随机推荐
长得很怪的箱图
联邦学习:联邦场景下的多源知识图谱嵌入
牛客 HJ17 坐标移动
牛客网刷题(一)
【luogu P8326】Fliper(图论)(构造)(欧拉回路)
Premiere Pro 2022 for (pr 2022)v22.5.0
小程序:matlab解微分方程「建议收藏」
智能垃圾桶(九)——震动传感器(树莓派pico实现)
华为顶级工程师历时9年总结的“趣谈网络协议”PDF文档,太强了
adb shell error error: device unauthorized
Stuck in sill idealTree buildDeps during npm installation, npm installation is slow, npm installation is stuck in one place
阿里三面:MQ 消息丢失、重复、积压问题,如何解决?
Oracle动态注册非1521端口
【Meetup预告】OpenMLDB+OneFlow:链接特征工程到模型训练,加速机器学习模型开发
jeecg master-slave database read-write separation configuration "recommended collection"
i.MX6ULL driver development | 33 - NXP original network device driver reading (LAN8720 PHY)
仿生毛毛虫机器人源码
update data table update
Implementing click on the 3D model in RenderTexture in Unity
C程序是如何跑起来的01 —— 普通可执行文件的构成