« ErlangとPerlの速度比較 その2 | Main | チャットをCometより楽に実装する方法 »

Tuesday, April 24, 2007

DBの分散方法

Rails って,結構人気があるから,既にそういう機能もあるのではと思っていたけど,無かったらしい.
簡単に実装できるから,誰も公開していなかっただけなのかもしれないけど.(^^;

2種類のモジュールがあるようだけど,readonlyable 方式はすぐ問題が出てきそうな気がする.

たとえば,ユーザ登録時にIDの重複判定をするような場合,read_only 指定をしていると,masterからslaveへの更新反映が遅延するため,正しく重複判定出来ない可能性が出てしまいそう.

かといって,read_only 指定をしないと,アクセスが多そうなユーザ情報のテーブルが分散されない.

その辺を考えると,多少面倒でも magic_multi_connections のやり方が正解じゃないのかなぁ,と思う.


TripletaiL でも,こういう分散は考慮していて,magic_multi_connections と同じようなやり方を採用している.
ただし,複数のサーバを登録しておいて,ラウンドロビンで適当なDBを使う機能がついているので,コード側ではマスターかスレーブかを指定しておいて,複数台のスレーブの分散はフレームワーク任せという感じ.

Tripletail::DB


縦の分散だけじゃなく,横の分散まで自動化できるツールがあると便利そうだけど,見たことがない….
実装,というか上手く分散するロジックを考えるのが難しいからかなぁ.

% 分散DBを使う方がお手軽?ErlangのMnesiaに期待中…

|

« ErlangとPerlの速度比較 その2 | Main | チャットをCometより楽に実装する方法 »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference DBの分散方法:

» [O] Railsで複数DBを使い分けるためのライブラリ magic_multi_connections [Overlasting::Net]
「magic_multi_connections」というRailsで複数DBを使い分けるためのラ イブラリについて、まとめている記事がありました。 [Read More]

Tracked on Friday, April 27, 2007 10:24 PM

« ErlangとPerlの速度比較 その2 | Main | チャットをCometより楽に実装する方法 »