分散メモリー技術とは,数十~数千台のサーバーに搭載される物理メモリーを連携させて,巨大な論理メモリーとして使用する技術である。作り出したメモリーを,データベースのキャッシュ・メモリーとして使用することで,アプリケーションのパフォーマンスが向上する(図1)。

図1●分散メモリー技術の仕組み<br>データベースのキャッシュをネットワーク上のサーバーに複数保存するため,データベースへのアクセスが分散し,高速化できる。
図1●分散メモリー技術の仕組み
データベースのキャッシュをネットワーク上のサーバーに複数保存するため,データベースへのアクセスが分散し,高速化できる。
[画像のクリックで拡大表示]

 Webアプリケーション分野で広く使われている分散メモリー技術が「memcached」だ。元々はブログ・サービス「LiveJournal」用に開発されたソフトウエアだが,オープンソース化され,ソーシャル・ブックマーク・サービスの「digg」や,ソーシャル・ネットワーク・サービス(SNS)の「mixi」でも使われるようになった。

 米GoogleのPaaS(Platform as a Service)である「Google App Engine」にも,memcachedに相当するメモリー・キャッシュ機能が搭載されている。開発者はGoogle App Engineが備えるAPI(Application Programming Interface)から呼び出すだけで,memcachedの機能を利用できる。

 メモリーの値段が下がり続けている現在,分散メモリー技術はデータベースへのアクセスを高速化する手法として費用対効果が高い。クラウド・コンピューティングのインフラを担う企業にとって,分散メモリー技術は欠かせない技術になっている。

 米Amazon.comは2007年12月に,独自の分散メモリー技術「Amazon Dynamo」を公開。自社のeコマース・サイトや「Amazon S3(Simple Storage Service)」のようなPaaSの基盤として利用している。米Microsoftも,データベース・サービスで,2009年前半に開始する「SQL Server Data Services」の基盤技術として,分散メモリー技術の「Velocity(開発コード)」を開発中だ。Velocityは,Windows Server 2008用の追加コンポーネントとしても提供される予定だ。

 Microsoftによれば,同社のVelocityはキャッシュしたメモリーを複数サーバーに複製して冗長化する機能を備えている。1台が故障したとしても,処理を継続できる。冗長化は,既存のmemcachedに欠けている機能だ。楽天が開発中の分散ストレージ/メモリー技術「Roma(開発コード)」も,「memcachedに欠ける冗長化機能や永続化機能を備えさせる」(楽天技術研究所の森正弥所長)としている。