エンタープライズアプリケーションにおけるデータベースのクラスタリング

yyamano2006-07-18


http://completemirage.blog55.fc2.com/blog-entry-21.html

以前も書いたように、所謂Web屋さんたちの間では当然のように使われているMySQLの並列化&Read/Writeを分けるアーキテクチャですが、Javaでこれをやろうとするとイマイチ難しかったりします。

もし、同じようなことをやりたいのであれば、データソース層でそういうことをやるフレームワークを作るんでしょうね。

ただし、僕はエンタープライズアプリケーションにおけるこのようなクラスタリングには懐疑的です。こういうことは、RDBMSでやるべきではないかと。わざわざ、アプリケーション(含むインハウスフレームワーク)で作り込むのは退化じゃないでしょうか。
id:hyoshiokさんに言わせると、これは頭の固いおじさんの発想らしいけど:-)

7、8年前に同じようなことをやった経験があります。ただし、スケーラビリティではなくファイルサイズの上限問題を解決するためだったし、OODBでしたけど。エンジニアとしてはすごく面白いんだけど、運用や障害対応は面倒だし、無条件にはおすすめしかねるというのが正直な所です。

エンタープライズアプリケーションで、こういうクラスタリングが必要なものがどれぐらいあるんでしょうか? 僕はほとんどないと思っています。したがって、スケーラビリティに関する本当に特別な要求がない限りはRDBMSにまかせて、後はハードウェアでがんばるというのが一般解じゃないでしょうか。新しい技術にどん欲なところだったら、分散キャッシュや on memory database、Spaceベースのミドルウェアなんかも面白いとは思いますけど。