Tag: 数据库死锁

在高度并发的Rails系统中处理瞬态数据库错误的“最佳实践”是什么?

在研究死锁问题时,我发现了以下post: https://rails.lighthouseapp.com/projects/8994/tickets/6596 它的要点如下: MySQL文档说: 死锁是事务数据库中的一个典型问题,但它们并不危险,除非它们如此频繁以至于根本无法运行某些事务。 通常, 您必须编写应用程序,以便在由于死锁而回滚时,它们始终准备重新发出事务 。 因此,调试瞬态死锁是一种反模式,因为MySQL认为它们是可行且不可避免的。 因此,Rails应该为我们提供一种方法,因为它: 假设存在“最佳”的做事方式,并且它旨在鼓励这种方式 但是Rails并没有为我们提供一种方式,所以我们使用的是一种hacky DIY的东西。 所以如果所有这些都是真的,那么Rails解决方案在哪里? 注意:此项目处于非活动状态,但似乎很简单,可以作为解决方案。 为什么Rails没有这样的东西? https://github.com/qertoip/transaction_retry