当前位置:网站首页>多主复制下处理写冲突(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
此时,冲突避免方式不再有效,必须要有方案应对不同主节点同时写入的可能。
边栏推荐
- 最新神作!阿里巴巴刚出炉的面试参考指南(泰山版),我直接狂刷29天
- 【网络通信三】研华网关Modbus服务设置
- 小程序:matlab解微分方程「建议收藏」
- 【7.28】代码源 - 【Fence Painting】【合适数对(数据加强版)】
- 2020 WeChat applet decompilation tutorial (can applet decompile source code be used)
- arm按键控制led灯闪烁(嵌入式按键实验报告)
- Emmet syntax
- LeetCode_733_图像渲染
- server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 失败
- 2022年整理LeetCode最新刷题攻略分享(附中文详细题解)
猜你喜欢

【TypeScript】深入学习TypeScript类型操作

【pytorch】pytorch 自动求导、 Tensor 与 Autograd

联邦学习:联邦场景下的多源知识图谱嵌入

tooltips使用教程(鼠标悬停时显示提示)

2022年必读的12本机器学习书籍推荐

Three aspects of Ali: How to solve the problem of MQ message loss, duplication and backlog?

Intelligent bin (9) - vibration sensor (raspberries pie pico implementation)

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

宁波大学NBU IT项目管理期末考试知识点整理
How Redis handles concurrent access
随机推荐
Implementing distributed locks based on Redis (SETNX), case: Solving oversold orders under high concurrency
研发过程中的文档管理与工具
The new BMW 3 Series is on the market, with safety and comfort
你辛辛苦苦写的文章可能不是你的原创
Dialogue with Zhuang Biaowei: The first lesson of open source
npm安装时卡在sill idealTree buildDeps,npm安装速度慢,npm安装卡在一个地方不动
C language - function
Foreign media right, apple on May be true in inventory
js的toString方法
长得很怪的箱图
Graham‘s Scan法求解凸包问题
复杂高维医学数据挖掘与疾病风险分类研究
2022年整理LeetCode最新刷题攻略分享(附中文详细题解)
网站漏洞修复服务商关于越权漏洞分析
多主复制的适用场景(1)-多IDC
Flutter set the background color of the statusbar status bar and APP method (AppBar) internal consistent color.
GP 6总体架构学习笔记
牛客网刷题(一)
第05章 存储引擎【1.MySQL架构篇】【MySQL高级】
[TypeScript] In-depth study of TypeScript type operations