这是我的问题:
有时一个持久的查询(> 60秒,我有很多这些)总是一个SELECT会使我的整个应用程序停止正常工作直到查询解决。
第一个持久查询开始使其他人慢,然后所有系统都被冻结。
我的应用程序是带有ruby 2.3的Rails 3.2应用程序。
我使用Makara作为读取副本的适配器。
我有以下架构:
我有四种资源:
我的服务器堆栈使用Apache + Passenger。
这是我的猜测:
只读副本正在尝试更新select操作实际使用的表,因此在应用程序完成之前,他无法应用同步,从而使两个只读副本与主服务器不同。
最佳部分:
我们只处理400转,其中一半是更新数据库中的结果。