我运行了几个HammerDB基准测试,并处理这些配置。我注意到slave_parallel_workers
的不同值对TPM有相当大的影响。
据我所知,slave_parallel_workers
只影响从中继日志应用事务的速度。然而,所有可能的HA/DR设置,包括异步复制、半同步复制和组复制,都不会等到事务应用到次要节点(S)之后才提交。据我理解,slave_parallel_workers
只应影响复制滞后,对TPM的影响为零,而情况显然并非如此。
我是不是遗漏了什么?
编辑:为了消除任何混淆,我希望slave_parallel_workers
的值不会对TPM产生影响。现实情况是,slave_parallel_workers
值越高,TPM值越高。所以我希望有人能解释原因。
编辑2:所有事务都在主节点上完成。
发布于 2021-06-28 21:28:25
您在主服务器上运行了许多事务。在某些情况下,它们访问的行没有冲突,因此它们并行进行。也许有时它们会发生冲突,其中一个会因为僵局而延迟或回滚,但我们假设‘大多数’没有明显的冲突。
在每个COMMIT
中,整个事务被复制到副本(S),在那里它们必须被重放。假设是binlog_format=ROW,那么对副本的重放就没有那么复杂了。
在slave_parallel_workers
>1和slave_parallel_type = LOGICAL_CLOCK
的情况下,“作为源上同一个二进制日志组提交的一部分的事务将并行地应用于副本。”
也就是说,“每分钟的交易”可能会增加。
更多讨论:https://dev.mysql.com/doc/refman/5.7/en/replication-options-replica.html
我预计加速比因素将“达到”slave_parallel_workers
的值。我希望超过CPU核心的数量会带来越来越少的改进。
由于有很多相互冲突的事务,我希望主服务器和副本都会受到影响。
如果您只有一个数据库,slave_parallel_type = DATABASE
可能会阻止任何并行性。
https://dba.stackexchange.com/questions/294908
复制相似问题