gpt4 book ai didi

mysql - 如何使用 galera 集群测试关键读取和慢速同步

转载 作者:行者123 更新时间:2023-11-29 05:51:35 26 4
gpt4 key购买 nike

本题不是关于如何解决replication的问题,目的是找出replication慢导致的bug。为了性能,我们不希望所有查询都是同步的,只希望我们识别为关键读取的查询是同步的。

我们的 galera 集群有时会出现有关同步的错误。例如,我们的 Web 应用程序在写入数据后执行重定向,但在下一页显示过时状态。在开发环境上我们没有这些问题。在具有某些服务器负载的生产环境中,如果我们读取几毫秒前写入的数据,有时另一个节点会不同步。

为了解决这个问题,我们对关键读取使用节点固定,从与之前写入的相同节点读取,我们正在试验 SET SESSION wsrep-sync-wait=6; 用于 INSERT/UPDATES/DELETE 像描述的那样here 避免减少这种行为(现在使用位“1”,如 rick-james 提到的)。

如何测试复制慢导致的bug?

我们的想法是模拟一个非常慢的同步来测试我们的应用程序的关键读取行为。是否有一些配置选项可以让 galera 集群在重负载下运行? Galera 有一个内置的 flow control放慢速度,但我找不到可靠的方法来强制集群进入流量控制。该解决方案不必单独依赖 MySQL,慢速虚拟卷与“innodb_flush_method”之类的东西相结合也可能会有帮助。

(更新以希望改进问题)

最佳答案

您需要包含 1,因为您正在阅读。

SET SESSION wsrep_sync_wait=1;   -- or any odd number
SELECT ... ; -- this will wait if necessary
SET SESSION wsrep_sync_wait=0; -- (optional); to avoid slowing down subsequent SQL

关于mysql - 如何使用 galera 集群测试关键读取和慢速同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53477322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com