SSD時代のデータベース管理システム

Solid Stateには近づくな

単純な読み書き性能のベンチマークはよく目にする一方で、(学術論文は別にして)あまり目にすることがなかったデータベース運用におけるHDDとSSDの違いについての解説記事が、2本立て続けに出ました。

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)

データベースのアーキテクチャが劇的に変わる現場に遭遇できたら、それはすばらしいことです。

要注目です。

関連:HDD単体とRAID 0、SSDの比較

関連:容量の大きいSSD1台の性能、容量の小さいSSD2台によるRAIDの性能