alt*_*elo 3 mysql semi-sync-replication
我正在研究MySQL Semisynchronous Replication,我对工作流程的理解如下:
rpl_semi_sync_master_timeout
几毫秒以接收来自至少一个从站的确认我的问题是,在任何时候,这种类型的复制都确保事务在从属上执行(SQL_TREAD
应用它)。考虑到它会在每个事务上增加延迟,并且在 master 失败的情况下,不能 100% 保证 slave 与 master 一致,使用这种类型的复制有什么好处?
Baron Schwartz在这方面写了一篇出色的文章,我认为一个关键句子可以回答您的问题:
那么半同步复制对我有什么保证呢?如果没有错误或超时,那么保证本质上就是如果主节点崩溃,每个客户端只有一个事务可能会丢失。
所以半同步复制最大限度地减少(但不完全消除)这个确切问题的机会:
IO Thread
出于某种原因,副本 B 的复制开始在其主服务器 - 服务器 A 后面运行正如 Baron 的帖子中所指出的(根据你的措辞,我相信你知道这一点),它不是万无一失的——如果它停止从复制者那里得到响应,MySQL 将回退到常规复制——但不可恢复的数据丢失是不太可能发生。
结果是它防止了上述情况,它是“开箱即用的”,并且不需要任何第三方或基础架构级解决方案(例如 Galera/Xtradb Cluster 或 DRBD)。这些好处是否值得付出代价可能会因您的情况而异。
归档时间: |
|
查看次数: |
202 次 |
最近记录: |