我们在rails2.3/postgresql/resque
应用程序中切换到使用Octopus进行分片,因为我们正在最大化数据库服务器的磁盘I / O.我们有十个数据库,每个数据库都有多个分片。 (分片包含模式搜索路径)。
我们的一些跨多个客户的流程非常缓慢。
以下是代码的结构:
User.each do |u|
Octopus.using(u.shard.to_sym) do
update data
end
end
我们怀疑问题是Octopus不断打开和关闭数据库连接。
这是八达通如何运作的?它可以保留数据库连接池吗?
答案 0 :(得分:4)
ar-octopus 0.3.4中可能存在错误。它通过以下提交修复:
https://github.com/tchandy/octopus/commit/0c71fa228c3a9d659482a0dee8be5b4bd47493eb
唯一的变化是从self.using中删除“hijack_initializer”。