フラッシュメモリ1Mバイト=1円からわいてくる期待
2009年ごろにはフラッシュメモリカードの価格は1Mバイト1円になると フラッシュメモリ大手メーカーの社長がそう予想しているらしい。 CPUの性能向上に関する予想で有名なムーアの法則のように技術的な予想ではなく価格というマーケティング的な予想なので 的中するかどうかはわからないが、あながち的外れではないだろう。
この予想は、iPodの中身がハードディスクじゃなくフラッシュメモリに入れ替わるという話だけでは終わらない、 大きな可能性を秘めている。
現在、大量の情報の保存先として利用されているハードディスクをフラッシュメモリに置き換えるだけで、 さまざまなアプリケーションの飛躍的な性能向上が見込めるのだ。 特に筆者が注目したいのはデータベース分野である。
話を進める前に先に、ハードディスクの基本構造とその欠点について説明しておこう。
どんなパソコンにもサーバーにもハードディスクというものが内臓されている。 ちょっと分厚い文庫本か新書くらいの大きさで、中には音楽用のシングルCDくらいのキラキラ光る円盤が数枚と、 その円盤上のデータを読み書きするためのヘッド(昔のレコードプレーヤーのウデと針を想像していただきたい)が内蔵されている。
円盤は毎分数千回というかなりのスピードで回転し、 ヘッドはその円盤の上に触れるか触れないかくらいの微細な距離で浮遊するような形でデータの読み書きを行っている。 ヘッドと円盤の距離はタバコの煙の一粒より小さい!
この基本構造からすぐに察しがつくハードディスクの欠点は二つ。
- 壊れやすい。あたりまえだ。 そんな物理的に精密な動きをする高速回転物体の寿命が長いわけがない。 24時間稼動するサーバー内部のハードディスクであるか、 2,3日に一度しか起動しない家庭用パソコンであるかにもよるが、 運がよければ3,4年は持つかもしれないが、半年や一年も持たないこともままある。 「ハードディスクご臨終で・・・」「ディスク故障により・・・」という話や広報発表が珍しくなくて当然である。
- 遅い。画面の動きはのろいのに、 ハードディスクはカリカリと忙しそうな音をたてているという場面では、 CPUや画像描画処理部分は余裕なのにハードディスクの読み書き処理速度がそれについていっていないことを示す。 CPUなどの半導体の内部での情報が光の速度で移動できるのに比べれば、 ディスクの回転速度やヘッドの移動速度は遅くて当然だ。
ハードディスクでなければ収容しきれないほどの大量の情報を取り扱うタイプのアプリケーション=たとえばデータベース=であれば、 そのボトルネックは必ずといっていいほどディスクI/O(Input/Output, データの読み書き処理)だ。 (それに気づかずにやたらCPUを増やそうとしたりサーバーごと買い換えようとするケースはままあるけど) たとえばMySQLの公式マニュアルには、ディスクI/Oの速度がボトルネックになることが明確に記されている。
... 一般にディスクの回転速度は最高でも 1 秒間に 167 回転(10000rpmの規格の物の場合)であるため、 ディスクがオペレーティングシステムを欺かない限り、 コミットの回数も同じく 1 秒間に 167 回に制限される。もちろんMySQLに限らず、ディスクI/Oがデータベースの性能に大きな影響を与えることは データベースソフトウェア一般に言える。
MySQLリファレンスマニュアルより
ここで、メモリの低価格化時代の到来である。 「パソコンに128メガの増設メモリ買ったら3万もかかっちゃったよ」という会話をしていたころから 実はまだ5年もたっていないのに、あと数年で1メガ1円の時代が来るというのだ。 (パソコン用のDRAMとフラッシュメモリはちょっと違うよという話はまぁおいといて)
データベースのボトルネックがディスクI/Oであるならば、 そのストレージをハードディスクではなく半導体ディスクに変えるだけで大幅な処理スピードアップが見込まれる。 日々「重い検索処理をどうするか」という課題に向かって四苦八苦している大勢の開発者たちの苦労が バカバカしく思えてくるほどに。 RAM部品の低価格化により半導体ディスクの値段(現状では数GBでも数百万をくだらない)が下落すれば、 このアイデアはものすごく現実味を帯びてくる。
別にフラッシュメモリでなくてもいいのだが、とにかくメモリをハードディスク代わりに使うという アイデアは昔からなかったわけではない。 半導体ディスク、あるいはシリコンディスクと呼ばれる製品はけっこう前から存在するし、 そんな専用ハードウェアでなくてもたとえば「RAMディスク」のように パソコン上のメモリをディスク代わりにする機能はPCの世界でもMS-DOS時代からある。
実例で言うと、はてなではMySQLデータベースの 格納ストレージとしてPCサーバのメモリ上に展開しているようだ。 はてなの中の人が雑誌に書いている。筆者も買って読んでみたが、なるほど興味深い。 Linux上でtmpfsをつかっているのか。
RAM部品の低価格化はこうした動きをますます加速させてくれるだろう。

コメント
確かにメモリがディスクの代わりになれば、大きな性能向上が見込めます。
でも、ことフラッシュメモリに関していえば信頼性が低いのと、読み書きの耐用回数が少ないのが怖いですね。
現状ではおっしゃるような業務データが載った DB は回せないと思います。
http://edevice.fujitsu.com/jp/concept/quality/AD00-00017/
でも RAM ディスクに画像データを全部載せた Photoshop の速さ、静かさを見たことがありますが驚異的でした。
それに感化された貧乏人の私は、ブラウザのキャッシュを数メガの RAM ディスクに置くようにしました(笑)。
数年前、まだ iMac が出ていなかったころの話です。
その当時既に、PCI ボードにギガ単位の半導体ディスクを挿せる製品があったと記憶しています。
さて、記憶装置の低価格化の流れから、補助記憶装置の役割は磁気円盤から半導体にというのは必ずや来るでしょうね。
ストレージサーバで仮想化された先ならば、何かトリック1つで信頼性の問題をかなりカバーできそうな気がします。
Posted by 市井賢児 at 2005年3月 4日
http://www.yano-el.co.jp/products/yr/
これの事でしょうか。WindowsNT止まりなのが残念です。
今なら512MBを8枚挿しで\54800とかで出そうですね。
1枚でPCIバスを2枚分喰ってしまいそうなのが痛いですけれども。
Posted by rg at 2005年5月24日
こんなのも出たらしい。
http://www.itmedia.co.jp/news/articles/0506/02/news033.html
Posted by watanabe at 2005年6月 4日
コメントする
(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)