【发布时间】:2020-04-02 10:25:39
【问题描述】:
我一直在多个应用程序中广泛使用咨询锁,现在,由于数据库连接数量巨大,我正在考虑引入连接池。我正在考虑使用事务 pool_mode 的 pgbouncer,从最初的研究来看,并非一切都清楚。
因此,咨询锁是基于会话的功能,它不适用于事务池模式。这也是在 Ruby on Rails 中运行迁移问题的常见来源,也是在 Rails 6 中可以禁用咨询锁以解决迁移问题的原因之一。另一方面,有事务级别的锁,它可能在事务池模式下工作得很好。然而,这似乎不符合一般建议,即您不应该在 pgbouncer 中使用咨询锁,甚至在 Rails 中,它要么是基于会话的咨询锁,要么根本不用于迁移(尽管这可以做出决定,因为每次迁移都可以禁用事务),所以有点混乱。
所以我想知道事务级咨询锁是否只能与 pgbouncer 一起使用,还是我应该寻找一些替代方案?
提前感谢您的回答。
【问题讨论】:
标签: ruby-on-rails postgresql pgbouncer