「NVDIMM」はなぜインメモリデータベースの“相棒”になり切れないのか?:インメモリ処理のバックエンドストレージを考える
高速なデータ処理を可能にする「インメモリデータベース」は、電源を切るとデータを保持できないのが一般的だ。そのためバックエンドのストレージシステムが重要になるが、技術選定は容易ではない。
インメモリ処理を活用すると、HDDやSDD(ソリッドステートドライブ)のストレージ処理で発生するデータ転送のレイテンシ(遅延)を回避できる。ただしバックエンドに、どのようなストレージを使用するかを考える必要がある。
データベースをメインメモリ内に保持する「インメモリデータベース」は、ストレージに保持する「オンディスクデータベース」の一次キャッシュメモリより、ずっと多くのメリットをもたらす。インメモリデータベースはほとんどの場合、キャッシュメモリやその他のプロセス用の不要なI/O処理を全てなくし、データベースそのものを更新できる。データを正しく記録したかどうかを確認する「リードアフターライト」の検証処理も非常に高速だ。データベース処理を大幅に高速化し、複数のサーバでデータベースを構成する「データベースクラスタ」に必要なサーバの数も削減できる。
併せて読みたいお薦め記事
いまさら聞けない「NVMe」の基礎と動向
- 「NVMe over Fabrics」でストレージ環境が一変する――注目の技術革新を解説
- 「NVMe」など新技術で加速、「ストレージネットワーク高速化技術」のこれまでと今後
- 徹底解説:SSD向け次世代接続規格「NVMe」、存在感を増す新規格の全貌
「SSD」の誤解を解く
NVDIMMの登場
インメモリデータベースの採用には課題もある。全てをDRAMで処理すればパフォーマンスが向上する半面、サーバの障害発生時にはDRAMの内容が空になってしまい、データを失うことになる。電源が失われてもデータベースの一部または全部を保持する永続性を確保できれば、インメモリデータベースの用途は広がる。その場合は、バックエンドにどのようなストレージを使うべきかを考えなければならない。
これまでであれば、ストレージ接続規格NVMeに準拠したSSDや、PCI Express(PCIe)カードにフラッシュメモリを搭載した「PCIeフラッシュカード」に保存することを推奨していた。DRAMから永続的にデータを保持可能なストレージ(以下、永続的ストレージ)へデータを移すには、それが最も速かったからだ。
現在は永続的ストレージの要素技術として、不揮発性メモリ規格「NVDIMM」も選択肢に入ってきた。NVDIMMは、一般的なメモリモジュール規格「DIMM」のフォームファクタ(形状や仕様)に、DRAMやNANDフラッシュメモリをまとめたメモリ規格だ。
NVDIMMは高速なバスとメモリI/O方式を使用しており、SSDと比べて非常に高速に動作する。これをDRAMと組み合わせて使うと、インメモリデータベースにシームレスかつ大容量のメモリ領域を利用でき、データを複数のサーバに分散する「シャーディング」の問題を避けることができる。
ただしNVDIMMは、そのサイズの小ささからSSDよりも一般的に容量制限が厳しく、ビッグデータの処理には問題がある。センサーから連続的に取得するストリームデータや、大部分はアクセスすることのない非常に大きなサイズのデータを処理するには、どうしたらよいか。
代替策は2つある。
Copyright © ITmedia, Inc. All Rights Reserved.