当前位置:网站首页>Handling write conflicts under multi-master replication (4) - multi-master replication topology
Handling write conflicts under multi-master replication (4) - multi-master replication topology
2022-07-31 15:32:00 【Huawei cloud】
The topology of replication describes the communication path through which write requests are propagated from one node to another.With two masters, as in Figure-7, there is only one reasonable topology: M1 must synchronize all his writes to M2, and vice versa.When there are more than two M, a variety of different topologies are possible.Figure-8 illustrates some examples.

The most common topology is all-to-all, i.e. Figure-8, where each M synchronizes its writes to all other Ms.
But more restricted topologies are also used: for example, MySQL only supports circular topologies, where each node receives writes from the previous node and writes those writes (plus its own writes)In) forwarded to the subsequent node.
Another popular structure is the star shape ^v.A designated root node forwards writes to all other nodes.The star topology can be generalized to trees.
Ring, star topology
Write requests need to go through multiple nodes to reach all replicas, i.e. intermediate nodes need to forward data changes received from other nodes.To avoid infinite loops, each node needs to be assigned a unique identifier, and each write request in the replication log is marked with the identifiers of all nodes that have passed.When a node receives a data change marked with its own identifier, the data change will be ignored, avoiding repeated forwarding.
Questions
If a node fails, it may disrupt the flow of replicated messages between other nodes, rendering them unable to communicate until the node is repaired.Topologies can be reconfigured to work on failed nodes, but in most deployments this reconfiguration must be done manually.A more densely connected topology (such as all-to-all) is more fault-tolerant because it allows messages to travel along different paths, avoiding a single point of failure.
All-to-all topologies can also be problematic.Especially when some network links may be faster than others (network congestion), as a result some replicated messages may "overtake" others, as shown in Figure-9.
Client A sends L1A row is inserted into the table, and B updates the row in L3.However, L2 can receive writes in a different order: updates (from its perspective, updates to rows that don't exist in the database) can be received first, and then L1's insert log (which should arrive before the update log).
This is a causality problem, similar to "consistent prefix reads": updates depend on previously completed inserts, so make sure all nodes receive inserts before processing updates.Adding a timestamp to each log write is not enough, mainly because there is no way to ensure that the clocks are fully synchronized and thus the received logs cannot be ordered correctly on L2.
To properly order log messages, a version vector can be used.Conflict detection technology is not fully implemented in many primary replication systems.As PostgreSQL BDR does not provide causal ordering of writes, Tungsten Replicator for MySQL does not even attempt to detect conflicts.
边栏推荐
- 做事软件开发-法的重要性所在以及合理结论的认识
- 乡村基冲刺港交所:5个月期内亏2224万 SIG与红杉中国是股东
- Destruction order of thread_local variables
- Implementing click on the 3D model in RenderTexture in Unity
- Delete table data or clear table
- TRACE32 - SNOOPer-based variable logging
- Internet banking stolen?This article tells you how to use online banking safely
- Bilateral filtering acceleration "recommended collection"
- What is the difference between BI software in the domestic market?
- The normal form of the database (first normal form, second normal form, third normal form, BCNF normal form) "recommended collection"
猜你喜欢

BGP综合实验(建立对等体、路由反射器、联邦、路由宣告及聚合)

四象限时间管理有多好用?

思路迪医药冲刺港股:5个月亏2.9亿 泰格医药与先声药业是股东

mongo进入报错

Synchronized and volatile interview brief summary

leetcode303场周赛复盘

使用 GraphiQL 可视化 GraphQL 架构

Excel quickly aligns the middle name of the table (two-word name and three-word name alignment)

腾讯云部署----DevOps

OPPO在FaaS领域的探索与思考
随机推荐
乡村基冲刺港交所:5个月期内亏2224万 SIG与红杉中国是股东
TRACE32——基于SNOOPer的变量记录
多主复制的适用场景(1)-多IDC
R语言向前或者向后移动时间序列数据(自定义滞后或者超前的期数):使用dplyr包中的lag函数将时间序列数据向前移动一天(设置参数n为正值)
双边滤波加速「建议收藏」
R language ggplot2 visualization: use the ggmapplot function of the ggpubr package to visualize the MA plot (MA-plot), the font.legend parameter and the font.main parameter to set the title and legend
Kubernetes principle analysis and practical application manual, too complete
R语言ggplot2可视化:使用ggpubr包的ggmaplot函数可视化MA图(MA-plot)、font.legend参数和font.main参数设置标题和图例字体加粗
C语言”三子棋“升级版(模式选择+AI下棋)
Synchronized和volatile 面试简单汇总
mongo进入报错
名创优品斥资6.95亿购买创始人叶国富所持办公楼股权
TRACE32 - C source code association
Kubernetes常用命令
Public Key Retrieval is not allowed error solution when DBeaver connects to MySQL 8.x
Efficient use of RecyclerView Section 2
实现防抖与节流函数
ML.NET相关资源整理
Browser's built-in color picker
01 邂逅typescript,环境搭建