RailsのDB負荷分散プラグインを実装しよう。。。。かなw
最近、会社でもRailsとMySQLで負荷分散に取り込むことが多いのですが
これはやっぱり難しいですよね。
色々プラグインを入れてみたり、自前で実装してみたりと試しているのですが、どうもシックリこない。
何が面倒なのかというと、実装の中で明示的にMasterかSlaveにつなげるというのを意識しないといけない点だ。
それによってconnection先を変更してるんだけど、これがどうも馴染めない。
そこでRESTfulをベースにアクション単位で負荷分散する方針で新しいプラグインを作ってみようと思う。
- getはSlave
- post,put,deleteはMaster
もしくは
- showはSlave
- indexはSlave
- newはMaster
- createはMaster
- updateはMaster
- destroyはMaster
のように決め打ちでやればどうだろう?
もしくはfilterにように
class FooController < ApplicationController :master => [:create,:update] :slave => [:index,:show]
とかやるといいのだろうか?
まあ、この辺を組み合わせて作るのだろうけど、showにアクセスしたときに読んだ人の数をカウントしたりとか、このルールに乗っ取らない処理をする場合は諦めてくださいってことですかね。
というわけで、誰か実装してくださいw
その前にacts_as_tritonnをなんとかしたほうがいいすかねw