我正试着去想一种假想的情景。
假设我们有一个编写量很大的分布式数据库,而分片不是一种选择。
我想知道多领导人复制(写-写)是否比单领导者(写-读)更有效,因为写-写有同步数据库的开销,并且最终传播到另一个主(S)的写入操作的数量相同。
在哪种情况下,对于编写量大的应用程序来说,多领导者复制比单个领导者更有表现力,而在哪些情况下则不然?
我知道这个问题是宽泛和细微的,但我很乐意阅读一些关于这个问题的想法。
发布于 2019-07-16 23:21:19
每一个写都是在每台机器上执行的,不管它是主人还是奴隶。由此得出的结论是,使用传统复制编写缩放是有限制的。甚至加雷拉和群复制也只是师父(S)和奴隶(S)的变体。每台服务器都有所有的数据,并且按照实际情况保持最新的数据。
因此,分片是获得写入缩放的唯一方法。
好吧,我还是试着回答你的问题吧。
通过RBR (基于行的复制),从服务器通常可以完成比主服务器更少的编写(INSERT/UPDATE/DELETE/etc)。
这意味着拥有多位大师会在某种程度上传播“大师的努力”。因此,拥有更多的主人有助于扩展,而移动更多的读物给奴隶也有帮助。
一些配置,以及我的评论:
M <-> M“双主”--如果你同时写这两封信(正如上面所暗示的那样),那么它是一个有点脆弱的系统。
M1 -> M2 -> M3 -> M1“循环大师”--非常脆弱。如果一台服务器发生故障,那将是一场噩梦。
3+大师,每个人互相交谈"Galera集群“--这解决了上面的弱点,但是如果大师之间有很大的延迟,就会受到影响。(获得地理分离以获得HA的延迟。)这是今天一些写缩放的最佳配置。
“群复制”我不确定要不要写缩放。
在所有以上,奴隶(S)可以挂任何或所有大师提供读缩放。
对于写缩放(而不是HA),我将在同一个服务器房中使用3个Galera节点。如果有足够的读物需要担心,那就把一些只读的奴隶打开。
注意:经过Galera中的3个节点(或者可能是5个节点),您将面临一些性能下降的风险。这是因为每个节点都必须在每个COMMIT期间相互通信。
https://dba.stackexchange.com/questions/243035
复制相似问题