我有3个游戏服务器连接在同一个数据库。我开始使用galera集群进行同步,因为mysql远程连接由于主机距离、BR、US和FR而延迟,而我的游戏服务器只使用一个主线程进行重要查询。
发生这种延迟(滞后)是因为在继续运行应用程序之前,主体线程需要接收回调(确认)。
我以为在galera集群中,使用本地数据库和ping 0,这个问题不会再发生了,但是我不知道为什么,每次我在数据库上插入和删除时,都会发生同样的延迟。在我的应用程序调试中,我看到查询在本地以0毫秒发送,但它仍然滞后。
我的问题是,galera mysql-wsrep是否需要确认其他集群?
发布于 2019-10-18 05:41:15
在执行COMMIT命令期间,Galera会检查所有其他节点。这就是发生延迟的时候。当然,COMMIT是任何事务的显式或隐式(自动提交)的一部分,因此每个事务都有该延迟。
这意味着,地理上分散的Galera集群的最佳使用是将许多操作放在单个事务中。(另一方面,如果出现任何失败/死锁等情况,单个事务中的太多事务可能会导致撤消太多操作。)
美国和欧洲之间的滞后大约是100ms;这就是你看到的吗?
https://stackoverflow.com/questions/58346288
复制相似问题