けんちゃんくんさんのWeb日記
2014/10/27

複数DBとの戦いの記録

Rails 複数DB Casual Talks が一瞬で定員になるほど世の中は複数DBの知見に飢えているようなのですが、登壇を若者にまかせることができてよかったと思っていたのも束の間、お仕事では複数DBではまっていた。

ようやく問題の一つを解決できたので共有しておきますぞ。

Octopusには複数のslaveをラウンドロビンで使う機能があるんだけど、これがちょっと理解できない挙動をしていて

Octopus.using(slave_group: :my_slave_group) do
  User.count # my_slave_groupのslaveに行く
  User.count # masterに行く!!1?
end

というかんじで、2つ目以降のクエリがmasterのDBに行ってしまうのであった…

さすがにこれは多くの人が期待する動きではないと思うんのでうまいこと直したいなぁ。だいたいの原因はわかってるんだけど、どう修正したもんかなーという気持ち。

とりあえずすぐ再現させられるので、我こそはという人は直してくれるとすごく嬉しいです!

created_at: 2015-08-06 01:43:33 +0900
updated_at: 2015-08-06 01:43:33 +0900