【问题标题】:PgBouncer in Ruby on Rails app and advisory locksRuby on Rails 应用程序和咨询锁中的 PgBouncer
【发布时间】:2020-04-02 10:25:39
【问题描述】:

我一直在多个应用程序中广泛使用咨询锁,现在,由于数据库连接数量巨大,我正在考虑引入连接池。我正在考虑使用事务 pool_mode 的 pgbouncer,从最初的研究来看,并非一切都清楚。

因此,咨询锁是基于会话的功能,它不适用于事务池模式。这也是在 Ruby on Rails 中运行迁移问题的常见来源,也是在 Rails 6 中可以禁用咨询锁以解决迁移问题的原因之一。另一方面,有事务级别的锁,它可能在事务池模式下工作得很好。然而,这似乎不符合一般建议,即您不应该在 pgbouncer 中使用咨询锁,甚至在 Rails 中,它要么是基于会话的咨询锁,要么根本不用于迁移(尽管这可以做出决定,因为每次迁移都可以禁用事务),所以有点混乱。

所以我想知道事务级咨询锁是否只能与 pgbouncer 一起使用,还是我应该寻找一些替代方案?

提前感谢您的回答。

【问题讨论】:

    标签: ruby-on-rails postgresql pgbouncer


    【解决方案1】:

    任何在事务结束后无法存活的东西都可以在 pgBouncer 的事务池模式中使用。

    所以我认为使用事务级咨询锁没有问题。

    【讨论】:

      猜你喜欢
      • 2014-11-05
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 2011-05-15
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多