Solid Stateには近づくな
単純な読み書き性能のベンチマークはよく目にする一方で、(学術論文は別にして)あまり目にすることがなかったデータベース運用におけるHDDとSSDの違いについての解説記事が、2本立て続けに出ました。
斉藤太郎. SSD投入で何が変わるのか? WEB+DB PRESS. vol.52. pp 89–108, 2009.
- 松信嘉範. SSDによるRDBMS高速化を徹底検証! DB Magazine. Oct., pp 154–162, 2009.
SSDにはSingle-line Cell (SLC)とMulti-line Cell (MLC)の2種類があり、一般的にSLCは高速・小容量・長寿命、MLCは低速・大容量・短寿命です。定評のあるインテルの製品はどちらもAmazonにありますが、SLCであるX25-Mでは、価格がずいぶん違います。ノートPCに搭載されているものの大部分はMLCでしょう。
閑話休題
斉藤さんの記事では、データベースシステムの仕組みをまず解説し、それを踏まえてB+tree(挿入と大量SELECT)についてのベンチマーク、External Merge Sortについての学術論文紹介、トランザクション管理についての考察がなされています。アカデミックな雰囲気のある解説です。
松信さんの記事では、(HDDが苦手とする)インデックススキャン、(HDDが得意な)フルテーブルスキャン、(SSDが苦手だと予想される)更新系処理(DBT-2)の性能が調べられています。MySQLで利用する際に、SSDにデータを、HDDにREDOログとシステムテーブルスペースを置くと性能が50%以上向上するといった実践的な知識が得られます。
性能が上がれば単純にうれしいわけですが、HDDで使うことを(暗黙の)前提として作られていることが多いRDBMSのアーキテクチャが、SSDの普及とともに変わっていくのかどうかに私の興味はあります。
この点について、2本の記事の印象はずいぶん違います。
斉藤さんの記事を信じるなら、RDBMSのアーキテクチャは変わらないということになります。
従来使っていたHDDをSSDに取り替えるだけでDBMS自体はそのまま使える、という雰囲気になっています。(p.108)
既存のアーキテクチャのままで、HDDとSSDという性能特性のまったく違った記憶装置に対応できるなら、それはすばらしいことです。
松信さんの記事を信じるなら、RDBMSのアーキテクチャもアプリケーションもに大きく変わるということになります。
単なる著者の考察にすぎないので異論を持つ方もいるだろうが、活発な議論をして業界を盛り上げていけたらと思う。(p. 160)
データベースのアーキテクチャが劇的に変わる現場に遭遇できたら、それはすばらしいことです。
要注目です。