著者でありNo Fluff Just StuffのスピーカーでもあるMichael Nygard氏は、最近webアプリケーションパフォーマンスとスケーラビリティへのアプローチの二つの代案(source)について記載している。Cache FarmsとRead Poolsである。
Cache Farmsの背景の考えは、クラスタ内のアプリケーションノードがそれ自体を保持する代わりに外部のキャッシュを共有していることである。これは冗長性を排除し、アプリケーションサーバーに多大なスペースを取り戻す。
アプリケーションサーバプロセスからキャッシュを動かすことによって重複を減らし、複数のインスタンスから同じキャッシュにアクセスすることができます。それらのオブジェクトをヒープの外に持っていくことで。アプリケーションサーバのヒープを小さくすることが可能になり、またガベージコレクションの停止を減少させます。
Read Poolsはほとんどのデータ駆動のアプリケーションが、書き込みよりも多く読み込みを実行するという事実を活用しています。読み取り専用のデータベース一式に対して、実行された読み取りを所有することによって書き込み動作の重荷を軽減することができます。
あなたはどのようにリードプールを作りますか?良い知らせです!それはデータベースそのものの内蔵された複製機能しか使用しないのです。基本的にそのアーカイブログ(かもしくはあなたのデータベースが呼んでいる名で)をリードプールデータベースに運ぶために書き込みマスターを設定するだけでいいのです。
Michaelはリードホストの更新が何のデータベースを使用しているかによって、実時間で起こらないかも知れないことを指摘しているが、これはこれは受け 入れる価値のある代償(source)であるかもしれないことも記載している。MySQLユーザーはMySQL-Proxy(source)でRead/Write Splittingを活用することができるのである。
Michaelは下記のように結論を下している。
スケーリングに対する返答は、”webとアプリケーション層でスケールアウトしてデータ層においてスケールアップする”事であった。これがパフォーマンスとキャパシティを向上させるための他の方法が存在している証明となれば望ましい。
原文はこちらです:http://www.infoq.com/news/2007/11/cfrp