BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース RAMが新たなるディスクとなる...

RAMが新たなるディスクとなる...

過去40年間においてテクノロジーに多大に貢献した男、Jim Gray氏(リンク・英語)が、メモリは新たなるディスクであり、またディスクは新たなるテープであると名言したことにより賞賛を受けている。膨大なスケーラビリティを要する“リアルタイム”のアプリケーションとシステムの拡散に伴ってハードウェアとソフトウェアはこのミームにどのように関係してくるのだろうか。

グリッドコンピューティングが話題の的になる以前(リンク・英語)、Tim Bray氏は(リンク・英語)ディスカッションの中でRAMとネットワーク周辺の発展がディスククラスタよりも速かったRAMクラスタの創造にどのように貢献したかを指摘した。
メモリはデータへのランダムなアクセス用のディスクよりも数桁以上速い。(一番ハイエンドなディスクストレッジのサブシステムでさえも1000シーク/秒に達するのには難しい)
二つ目にデータセンターのネットワークが速くなるのと共にディスクよりもメモリにアクセスする事だけでなく、ネットワークを通してもう一つのコンピューターのメモリにアクセスする方が安上がりなのだ。Sun社のInfiniband製品ラインはそれぞれ30GBit/秒で動作する9つの相互接続された非ブロック性のポートを伴ったスイッチを備えている。すごい!上記に掲載されているVolaire製品は更にたくさんのポートを備えている。ぎょっとしてしまう。(もしあなたがこの種の超高パフォーマンスネットワークに関して極めつけの一言が聞きたかったらAndreas Bechtolsheim氏のStanfordレクチャーを見る事を勧める。)
またTim氏はGray氏のステートメントの二つ目に関する真実を指摘した。 “ランダムなアクセスにはディスクはいらいらするほど遅いのです;でももしあなたがディスクはテープドライブであると仮定すればものすごい率でシーケンシャルのデータを取り入れる事ができるのです。元来RAMに入っているアプリケーションをログ、ジャーナルするのには打ってつけなのです。”


今その二年間先に行ってみるとRAMとネットワークのためにハードウェアは発展し続け、一方ディスクに対しては停滞していた。Bill McColl氏は膨大なメモリシステムが(リンク・英語)パラレルコンピューティングに有効になると話している。
メモリが新たなるディスクだ!ディスクスピードの成長が遅く、メモリチップの容量の成長が飛躍的であるとインメモリのソフトウェアアーキテクチャは全ての種類のデータインテンシブアプリケーションのパフォーマンスに桁違いの向上をもたらす可能性がある。テラバイトかそれ以上の小さな(IU、2U)ラックマウントのサーバがまもなく入手可能になり、サーバアーキテクチャ内のディスクとメモリのバランスに対する私たちの考え方を変える事だろう。またディスクは新たなるテープとなりランダムアクセス用のツール(とても遅い)としてというよりもむしろシーケンシャルストレッジのツールとして同様に使用されるだろう。(ディスクからのストリームは適度に速い)既存の製品に比べて10から100倍向上した新たな製品を作る機会はそこらじゅうに転がっているのだ。

Dare Obsanjo氏はTwitterの課題をおろそかにする事がどのようにネガティブな影響を及ぼすか(リンク・英語)を指摘している。Twittersのコンテンツマネジメント風実装に関してコメントをしているObsanjo氏は“問題はもし単純にその問題文を反映したデザインを実装するのであれば私たちはディスクに入ってしまう、言い換えると地獄に行ってしまうというところなのです。Ruby on Rails、Cobol on Cogs、C++かもしくはマニュアルでコードされたアッセンブリ、何を使おうが関係なく、読み込み、書き込みロードが全てを台無しにしてしまうのです。言い換えるとランダムアクセスの動作をRAMに押し込んでディスクをシーケンシャル動作の為だけに使用するということです。”と述べている。

Hadoop Coreの(リンク・英語)委員であり、またHadoop プロジェクト運営委員のTom White氏は(リンク・英語)Gray氏の“ディスクが新たなテープとなる”という発言に関してより深く掘り下げた。MapReduceプログラミングモデルに関して議論する際にWhite氏はディスクがなぜまだHadoopのようなツールのためのアプリケーションデータストレージツールとして使用可能なのかを(リンク・英語)指摘した。

実質的にMapRedceはディスクのトランスファー率でディスクから流れ出て、またディスクへ流されるデータを反復的にソート、マージすることによって動作しているのだ。これをシーク率で動作する関連性データベースからデータにアクセスするのと比較してみて欲しい。(シークとはデータの読み込み、書き込みのためにディスクの先頭をディスクのある特定の場所に配置するというプロセスである)それではなぜこれが面白いのでしょう。なぜならシークタイムとトランスファー率の傾向に目を向けてみよう。シーク時間は年間で5%成長し、一方トランスファー率は20%成長している。という事はシーク時間の成長率はトランスファー率よりも遅いのだ。だからトランスファーで動作するモデルを使う事には価値があるのだ。そしてMapReduceがこの役割を果たしているのである。
しかしながらSolid State Drives(SSD)がシーク、トランスファー率を変化させるかどうかはまだ分からずWrite氏の議論に対して沢山のコメンテーター達は(リンク・英語)それらがRAM、ハードドライブに関するディベートの平準係数であるかもしれないと(リンク・英語)感じている。


Nati Shalom氏はメモリがどのようにデータベースのデプロイメントとMySQLの使用において有利に働くかという事に関して筋の通った議論を行った(リンク・英語)。Shalom氏はパフォーマンス性とスケールを提供するツールとしてのデータベースクラスタリングとデータベースパーティショニングの制限を強調し、“データベース複製とデータベースパーティショニングにおける基本的な問題はデータベースクラスタを設定する際の複雑性とファイルシステムとディスクのパフォーマンスにおける依存性なのです。”と述べている。
彼が提案したソリューションはアプリケーション用のサービスとして持続性を提供するためハイバーネートセカンドレベルキャッシュかもしくはGigaSpaces Spring DAOのようなテクノロジーにバックアップされたインメモリデータグリッド(IMDG)に釣り合うようになっている。Shalom氏はIMDGに関してメモリ内でオブジェクトベースのデータベース能力を提供し、またアドバンスインデックスとクエリ、トランザクショナルセマンティック、ロッキングのようなコアなデータベース機能をサポートすると説明している。またIMDGはアプリケーションコードからデータトポロジーを抽象化する。このやり方で、データベースは完全に排除される事無く“適切な”場所に置かれる。
ディレクトRDBMSインタラクションにおけるIMDGの主要な利点は下記の通りである。
  • ファイルシステムよりも断然速くまたより並列のメモリに依存している
  •  リファレンスがデータにアクセス可能
  • データ操作がインメモリのオブジェクト上で直接的に行われる
  • 削減されたデータ要素用の競合
  • 並列に集合したクエリ
  • インプロセスローカルキャッシュ
  • オブジェクト関連マップを防ぐ (ORM)

あなたが最終的にアプリケーションとハードウェアに関する考え方を変える必要があるかどうかはあなたがそれらを使用して何をするかに関わってくる。世論調査は今日パフォーマンスとスケーラビリティに対するデベロッパ達のソリューションが変わって来ている事を示している。

原文はこちらです:     http://www.infoq.com/news/2008/06/ram-is-disk

この記事に星をつける

おすすめ度
スタイル

BT