写真1●Velocityのキャッシュは,アプリケーション・サーバーとデータベース・サーバーの中間で機能する
写真1●Velocityのキャッシュは,アプリケーション・サーバーとデータベース・サーバーの中間で機能する
[画像のクリックで拡大表示]
写真2●キャッシュ・データが複数のサーバーに分散配置される「パーティション・キャッシュ」
写真2●キャッシュ・データが複数のサーバーに分散配置される「パーティション・キャッシュ」
[画像のクリックで拡大表示]
写真3●他のノードのキャッシュ・データをバックアップすることも可能
写真3●他のノードのキャッシュ・データをバックアップすることも可能
[画像のクリックで拡大表示]
写真4●キャッシュ・データが全て複製される「レプリケーション・キャッシュ」
写真4●キャッシュ・データが全て複製される「レプリケーション・キャッシュ」
[画像のクリックで拡大表示]
写真5●アプリケーション・サーバーにもキャッシュする「ローカル・キャッシュ」
写真5●アプリケーション・サーバーにもキャッシュする「ローカル・キャッシュ」
[画像のクリックで拡大表示]

 米Microsoftは2009年上期にも,分散メモリー・キャッシュ技術「Velocity(開発コード名)」をリリースする予定だ。6月6日まで米国オーランドで開催した「TechEd Developers 2008」で明らかにした。同社のDistinguished EngineerであるAnil Nori氏は「Velocityは同時期にリリースされる『SQL Server Data Services』でも基盤となる技術だ」と語る(関連記事:いわばMS版「memcached」,分散メモリー・キャッシュ技術「Velocity」を公開)。

 Velocityは,数十~数千台からなるサーバー(ノード)群にまたがるアプリケーション用のキャッシュ・メモリーを構成する技術。アプリケーション・サーバー(MicrosoftのIISはWebサーバー兼アプリケーション・サーバーである)とデータベース・サーバーの間にキャッシュを作りだし,アプリケーションによるデータベース・サーバーへのアクセスを高速化する(写真1)。

 MicrosoftのNori氏は,「ハードディスクよりも圧倒的にアクセスが速いメモリーが,最近は非常に安価に手に入るようになり,分散メモリー・キャッシュが費用対効果の高いソリューションになった。Velocityの作るキャッシュには,SQL Serverと同じクエリ・ベースのアクセスが可能なので,アプリケーション開発者はSQL Serverを使うのと同じ手法で,アプリケーションを開発できる。トランザクション処理にも対応している」と語る。

 またNori氏は,「企業が使用する数十台~数百台というサーバー環境でも,Velocityは機能する。Velocityは,数千台というサーバーを使う大規模Webアプリケーションだけでなく,企業ユーザーにとっても効果的なソリューションだ」と,VelocityをWindows Server 2008用の基本的な機能として様々なユーザーに提供する予定であることも明らかにしている。

 Velocityが構成するキャッシュには,3つのモードがある。1つ目は「パーティション・キャッシュ(Partitioned Cache)」で,複数台のサーバーにまたがる巨大なキャッシュ・メモリーを構成できる(写真2)。キャッシュ・データは複数のサーバーに分散配置される。パーティション・キャッシュの利点の利点についてNori氏は,「マシンの台数が増えるほどキャッシュ・メモリーの容量が増える。またマシンの台数が増えればクライアントからのアクセスも分散されるので,パフォーマンスも向上する」と語る。

 写真3のように,キャッシュを「Primary」と「Secondary」の2階層に分け,他のノードがキャッシュしているデータをバックアップすることも可能である。ノードがダウンした場合は,Secondaryにバックアップされているキャッシュ・データが使用できるため,高可用性が実現できる。

 2つ目のモードは「レプリケーション・キャッシュ(Replicated Cache)」(写真4),キャッス・データは全てのノードに複製(レプリケーション)される。読み出しの多いデータに向いたモードであり,マシンの台数を増やせば増やした分だけパフォーマンスが向上するという利点がある。

 3つ目のモードは「ローカル・キャッシュ(Local Cache)」で,Velocityのクライアントであるアプリケーション・サーバーに,一部のキャッシュを持たせる(写真5)。Velocityはクライアント・モジュールが必要なソリューションであり,そのクライアント・モジュール自身にキャッシュ機能を持たせているのだ。当然ながらアクセス速度は,ローカル・キャッシュが最も高速だ。

 MicrosoftはVelocity(関連情報:MSDNにあるVelocityの情報サイト)の評価版(Community Technology Preview 1,CTP1)を6月3日に公開した。CTP1には,パーティション・キャッシュ・モードとローカル・キャッシュ・モードだけが搭載されている。2008年10月に開催する「PDC 2008」に合わせて公開するCTP2には,レプリケーション・キャッシュや管理ツールが搭載される。

 同社では2009年上期に,正式版を公開する予定。現時点では,無償ダウンロードとして公開される可能性が高い。「分散アプリケーション技術は,Microsoftにとって非常に重要になっている。2009年上期に提供を開始する『SQL Server Data Services』(SaaS版のSQL Server)でも,Velocityを使用する」(Nori氏)予定だ。