cake_session 1213:试图锁定时发现死锁;尝试重新启动事务

时间:2013-09-16 01:54:54

标签: php mysql sql cakephp

我使用Percona(3个主 - 主同步节点,使用galera负载均衡器)移动到SQL集群环境,并将所有dbs转换为InnoDB。我们现在继续在CakePHP 1.3应用程序中获取它

  

2013-09-11 09:16:52 Sql_errors:会话错误:(1213:找到死锁   当试图锁定;尝试重启交易) -   文件:/cake/libs/cake_session.php - 行:759

     

2013-09-11 09:16:52 Sql_errors:会话错误:(1213:找到死锁   当试图锁定;尝试重启交易) -   文件:/cake/libs/cake_session.php - 行:759

     

2013-09-11 10:54:49 Sql_errors:会话错误:(1213:发现死锁   当试图锁定;尝试重启交易) -   文件:/cake/libs/cake_session.php - 行:759

     

2013-09-11 11:36:36 Sql_errors:会话错误:(1213:发现死锁   当试图锁定;尝试重新启动交易) -

因为它是CakePHP核心的一部分,所以我有点厌倦进行任何修改。我想知道是否有人曾经遇到过CakePHP这个问题,有什么建议可能对避免它有用吗?

1 个答案:

答案 0 :(得分:0)

要详细了解此处发生的情况,请参阅Percona XtraDB Cluster: Multi-node writing and Unexpected deadlocks

TL; DR版本:

  

处理这个问题很简单,就是在具有乐观锁定的同步复制系统中进行多节点写入的权衡。

     

你可以做些什么来解决这个问题?以下是从最简单到最复杂的一些想法:

     
      
  • 仅写入群集中的单个节点(一次)

  •   
  • 更新应用程序数据库库以处理突然死锁

  •   
  • 重构您的应用程序/架构以避免数据热点

  •