« 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

The comments to this entry are closed.

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より楽に実装する方法 »