当前位置:网站首页>Handling Write Conflicts under Multi-Master Replication (1)-Synchronous and Asynchronous Conflict Detection and Conflict Avoidance
Handling Write Conflicts under Multi-Master Replication (1)-Synchronous and Asynchronous Conflict Detection and Conflict Avoidance
2022-07-31 16:39:00 【HUAWEI CLOUD】
The biggest problem of multi-master replication: write conflicts may occur, which must be resolved.
For example, two users edit the wiki at the same time, as shown in Figure-7.User 1 changes the page title from A->B, and User 2 changes the title from A->C at the same time.Each user's changes are successfully committed to the local master node.But when asynchronously replicating to each other, a conflict is found.Normal master-slave replication does not have this problem.
3.2.1 Synchronous and asynchronous conflict detection
If a master-slave replicated database, the second write request will:
- Blocks until the first write is complete
- Or aborted, forcing the user to retry
Under the multi-master replication model, both writes succeed, and conflicts can only be detected asynchronously at a later point in time, when it is too late to ask the user to resolve the conflict.
Theoretically, synchronization conflict detection can be achieved, that is, waiting for the write request to complete the synchronization of all replicas, and then notifying the user that the write is successful.But this will lose the advantage of multi-master: allowing each master to accept write requests independently.Therefore, if you really need synchronization conflict detection, you should consider using master-slave replication with a single master node!
3.2.2 Avoiding conflicts
The best strategy for dealing with conflicts: avoid them, if the application layer can guarantee that all write requests for a particular record go through the same master, there will be no conflicts.In practice, due to the poor conflict resolution implemented by many primary replication models, direct conflict avoidance is the recommended preferred solution.
If users need to edit their own data, it can ensure that requests from specific users are always routed to a specific IDC and read/write using the primary node of that IDC.Different users may correspond to different primary data centers (for example, according to the user's geographic location), but from the user's point of view, this is basically equivalent to the master-slave replication model.
However, it may sometimes be necessary to change the pre-designated primary node, possibly because:
- IDC failure, traffic needs to be rerouted to another IDC
- Or possibly because the user has roamed to another location, near a different IDC
At this time, the conflict avoidance method is no longer effective, and there must be a plan to deal with the possibility of simultaneous writing by different master nodes.
边栏推荐
猜你喜欢
i.MX6ULL driver development | 33 - NXP original network device driver reading (LAN8720 PHY)
2022年整理LeetCode最新刷题攻略分享(附中文详细题解)
Golang——从入门到放弃
EF Core 2.2中将ORM框架生成的SQL语句输出到控制台
第05章 存储引擎【1.MySQL架构篇】【MySQL高级】
仿生毛毛虫机器人源码
最新神作!阿里巴巴刚出炉的面试参考指南(泰山版),我直接狂刷29天
【pytorch】1.7 pytorch与numpy,tensor与array的转换
智能垃圾桶(九)——震动传感器(树莓派pico实现)
GP 6总体架构学习笔记
随机推荐
【7.29】Code Source - 【Arrangement】【Stone Game II】【Cow and Snacks】【Minimum Number of Spawns】【Sequence】
联邦学习:联邦场景下的多源知识图谱嵌入
最新神作!阿里巴巴刚出炉的面试参考指南(泰山版),我直接狂刷29天
go图书管理系统
selenium的常见方法及使用
二分查找的细节坑
基于C语言的编译器设计与实现
npm安装时卡在sill idealTree buildDeps,npm安装速度慢,npm安装卡在一个地方不动
仿生毛毛虫机器人源码
Premiere Pro 2022 for (pr 2022)v22.5.0
JS基础小练习
动态规划(一)
The 2nd China PWA Developer Day
Masterless Replication System (3)-Limitations of Quorum Consistency
Masterless replication system (1) - write DB when node fails
form 表单提交后,使页面不跳转[通俗易懂]
牛客 HJ20 密码验证合格程序
牛客 HJ18 识别有效的IP地址和掩码并进行分类统计
How to install CV2 smoothly in Anaconda
关于柱状图的经典画法总结