DBの分散方法
Rails って,結構人気があるから,既にそういう機能もあるのではと思っていたけど,無かったらしい.
簡単に実装できるから,誰も公開していなかっただけなのかもしれないけど.(^^;
2種類のモジュールがあるようだけど,readonlyable 方式はすぐ問題が出てきそうな気がする.
たとえば,ユーザ登録時にIDの重複判定をするような場合,read_only 指定をしていると,masterからslaveへの更新反映が遅延するため,正しく重複判定出来ない可能性が出てしまいそう.
かといって,read_only 指定をしないと,アクセスが多そうなユーザ情報のテーブルが分散されない.
その辺を考えると,多少面倒でも magic_multi_connections のやり方が正解じゃないのかなぁ,と思う.
TripletaiL でも,こういう分散は考慮していて,magic_multi_connections と同じようなやり方を採用している.
ただし,複数のサーバを登録しておいて,ラウンドロビンで適当なDBを使う機能がついているので,コード側ではマスターかスレーブかを指定しておいて,複数台のスレーブの分散はフレームワーク任せという感じ.
縦の分散だけじゃなく,横の分散まで自動化できるツールがあると便利そうだけど,見たことがない….
実装,というか上手く分散するロジックを考えるのが難しいからかなぁ.
% 分散DBを使う方がお手軽?ErlangのMnesiaに期待中…
The comments to this entry are closed.
Comments