2008年始め以降、研究者や技術者らは一様に、ハイパフォーマンスストレージをIMDG(In Memory Data Grids)によりスケールするためにDRAMを利用するという可能性にじらされてきた。2008年6月、Steven Robbins氏はそれを話題として取り上げた。それから議論はどう進んできたのだろうか?
支持者のうち最も著名な研究者はスタンフォード大学のJohn Ousterhout氏であり、彼は"The Case for RAMClouds: Scalable High-Performance Storage Entirely in DRAM" を書いた。支持者らは「ディスクによってストレージをオンライン化するというアプローチには問題がある。うまくスケールしないし、ディスク容量が莫大になるとアクセス遅延とバンド幅に対処できなくなる。」と主張する。
この問題を解決するための基本的な考えが、オンラインデータをディスクからDRAMに移して、ディスクを超える新しいクラスのストレージを作り出すというものだ。現在、スタンフォード大学ではRAMCloudプロジェクトが進められている。そこではOusterhout氏の論文に基づくオープンソース実装を構築しており、現在Linux/Unix上で動作している。
現在提案されているクラスタは40ノードで構成される。これは24-32GBのRAM、CPU、ディスクを持ったコモディティなハードウェア上に構築されており、1ノード当たりのコストは$2000-$2500になる。目的としているのは、以下の目標を実現する永続的で利用可能なソリューションを提供することだ。
- サービス当たり 1Mオペレーション/秒
- 低遅延アクセス: 5-10 マイクロ秒RPC
- データはすべてRAMに格納
- マルチテナント性
- 自動管理
- データセンター向けストレージ
反対意見
これに賛同しない反対者もいる。Jeff Darcy氏は次のように主張してきた。
単純な事実があります。たくさんのリクエストを扱うために信頼できるOSキャッシュを利用したリアルデータストレージシステムの方が、メモリオンリーで後からディスクに書き出すように設計されたシステムよりもおそらくすぐれています。同じようにうまく機能しますし、データ保護に関してもすぐれた振る舞いをします。データセンターが完全に停電しても、単一サーバがダウンしても対応できます。リアルデータ管理戦略の一部となる、あらゆる種類のバックアップやフォレンシック、コンプライアンスに対応可能です。いつでもどこでも、カテゴリXにあるものがカテゴリYにあるものよりもすべてすぐれていることを意味しているわけではありません。しかし、リアルストレージシステムにも、いろいろな手の込んだデータ検索アルゴリズムなどを実装することができますし、そうしているものも多いのです。それらがすべて成長したときに、リアルストレージにならなくてはならないのがIMDGなのです。その逆ではありません。
Murat Demirbas氏は最近The Case for RAMCloudsとして公開した論評においてこう続ける。
その論文の分析ではコストトレンドとサイズトレンドがきちんと考慮されていないと思います。また、遅延とバンド幅のトレンドの利点を得る以前に、解決すべき研究課題がいくつもあります。したがって、私はRAMCloudは今のところ割に合わないし、近いうちに割に合うこともないだろうと考えます。
まとめ
過去30年かけて、ディスク遅延は約20msから10msへと2倍改善したにすぎない。これは非常に解決困難な問題だが、RAMCloudプロジェクトはまさにスケールと超低アクセス遅延を組み合わせるところに着目している。もしそれが成功すれば、開発者はもっと強力にインターネット規模で情報を利用できるようになり、データベースやストレージ研究に大きな進歩をもたらすだろう。