本稿はデータベースソフトウェア「SQL Anywhere」およびデータベース全般に関する英語ドキュメントを翻訳する形で提供しています。図など、部分的に英語のままになっていますが、製品のSQL Anywhere自体は完全に日本語化されていますのでご安心ください。
その中で個人的に最も重要な体験となったのは、木曜日の午前中に受講した「フラッシュメモリー上でのデータ管理」というタイトルのチュートリアル(※注1)でした。
Data management over flash memory.:Ioannis Koltsidas and Stratis D. Viglas (2011). In Proceedings of the 2011 International Conference on Management of Data (SIGMOD '11). ACM, New York, NY, USA, pp. 1209-1212. DOI=10.1145/1989323.1989455
発表者は、IBMチューリッヒ研究所のIoannis Koltsidasとエジンバラ大学のStratis Viglasでした。その要旨は以下のとおりです。
フラッシュソリッドステートドライブ(Flash SSD)は、急速に主流になりつつあり、磁気ディスクに代わるものとして注目を浴びています。したがって、それらをシームレスにエンタープライズに取り入れることは必要不可欠です。私たちの発表では、この領域における目覚しい研究結果の例を、データ管理スタックのすべての側面に触れながら紹介します。具体的には、フラッシュ技術の基本から、データベースシステム用としてのストレージ、SSDに記録されたデータの操作、さらにクエリー処理までを取り上げます。
このチュートリアルの要約は、既にACMデジタルライブラリーで公開されています。この資料には、インデックス操作から、キャッシング、さらにフラッシュメモリーストレージの利点を活かすクエリーの実行方法に至るまで、データベースシステムにおけるSSD技術の使用に関する参考文献一覧が含まれています。
次に、IoannisとStratisの説明の中で重要だと思われた点を簡単にまとめて紹介します。これらは、チュートリアルの間に筆者が書き留めたメモに基づいています。
uFLIP: Understanding Flash IO Patterns(PDF):Luc Bouganim, Bjorn Tor Jonsson and Philippe Bonnet (2009). . In Proceedings of the Fourth Biennial Conference on Innovative Data Systems Research (CIDR), Asilomar, CA, USA, January 4-7, 2009.
- SSDの場合、デバイス上の論理バッファーと物理的なフラッシュブロックの間で、どのようなマッピングを使用するかを決定することが重要である。ページレベルマッピングは、パフォーマンスは高いものの、大量のRAMを必要とする。一方、(軽量な)セットアソシアティブ方式は、RAMの使用量ははるかに少なくなりますが、書き込み操作において多数のブロック移動を必要とするため、書き込みパフォーマンスが大幅に低下する。
- 読み取りと書き込みの両方が含まれる混合ワークロードでは、書き込み操作の割合が増加した場合に、I/Oの読み取りパフォーマンスが大幅に低下する可能性があることが実証テストで明らかになっている。書き込みの影響の大きさはデバイスの種類と書き込み操作の割合に応じて異なるが、読み込み操作の待ち時間が2倍(またはそれ以上)になる場合も多い。
-
2009年のuFlipの研究(※注2)からの結論。スライドを参照するにはここをクリック。
- SSDでは読み取りとシーケンシャル書き込みを非常に効率的に実行できる。
- フラッシュページにアラインされたI/O要求や要求サイズは非常に重要。
- 小さなLBAアドレスウィンドウ内でのランダム書き込みは、シーケンシャル書き込みとほぼ同じ待ち時間を発生させる。
- 異なるパーティションへの同時並行のシーケンシャル書き込みは制限しなければならない。
- 各要求の間に中断を挟んでも、全体的なパフォーマンスは改善されない。
-
以下、まとめ。
- フラッシュストレージは、データベースシステムのパフォーマンスにとって大きな可能性を持っている。特に、デバイスへの書き込みの必要性を減少させるためにコピーオンライトまたは外部(ディスク)ログ機能をサポートするストレージアーキテクチャーで使用された場合には大きな効果が期待できる。
- SSDデバイスには複数のクラスがあり、それぞれのパフォーマンスには相当な差異が存在する。
- ランダム読み取りの待ち時間は総じて短いが、書き込みの待ち時間には劇的なほどの違いがある。
- SSDデバイスでは読み取り時のキャッシングが行われない。デバイス上のRAMはマッピングに使用され、ときには書き込みキャッシュに使用されることもある。
- 各SSDデバイスの間には、電力消費、スループット、信頼性、ウェアレベリングなどにおいて多くの違いが存在する。
- PCIベースのデバイスは最も高いパフォーマンスを発揮するが、コスト的にも最も高価である(1GBあたりおよそ20ドル)。
uFLIP: Understanding Flash IO Patterns(PDF):Luc Bouganim, Bjorn Tor Jonsson and Philippe Bonnet (2009). . In Proceedings of the Fourth Biennial Conference on Innovative Data Systems Research (CIDR), Asilomar, CA, USA, January 4-7, 2009.