「NVDIMM」はなぜインメモリデータベースの“相棒”になり切れないのか?インメモリ処理のバックエンドストレージを考える

高速なデータ処理を可能にする「インメモリデータベース」は、電源を切るとデータを保持できないのが一般的だ。そのためバックエンドのストレージシステムが重要になるが、技術選定は容易ではない。

2017年09月25日 05時00分 公開
[Jim O'ReillyTechTarget]
画像 インメモリデータベースの課題に対処できる適切なバックエンドストレージ技術とは

 インメモリ処理を活用すると、HDDやSDD(ソリッドステートドライブ)のストレージ処理で発生するデータ転送のレイテンシ(遅延)を回避できる。ただしバックエンドに、どのようなストレージを使用するかを考える必要がある。

 データベースをメインメモリ内に保持する「インメモリデータベース」は、ストレージに保持する「オンディスクデータベース」の一次キャッシュメモリより、ずっと多くのメリットをもたらす。インメモリデータベースはほとんどの場合、キャッシュメモリやその他のプロセス用の不要なI/O処理を全てなくし、データベースそのものを更新できる。データを正しく記録したかどうかを確認する「リードアフターライト」の検証処理も非常に高速だ。データベース処理を大幅に高速化し、複数のサーバでデータベースを構成する「データベースクラスタ」に必要なサーバの数も削減できる。

NVDIMMの登場

 インメモリデータベースの採用には課題もある。全てをDRAMで処理すればパフォーマンスが向上する半面、サーバの障害発生時にはDRAMの内容が空になってしまい、データを失うことになる。電源が失われてもデータベースの一部または全部を保持する永続性を確保できれば、インメモリデータベースの用途は広がる。その場合は、バックエンドにどのようなストレージを使うべきかを考えなければならない。

 これまでであれば、ストレージ接続規格NVMeに準拠したSSDや、PCI Express(PCIe)カードにフラッシュメモリを搭載した「PCIeフラッシュカード」に保存することを推奨していた。DRAMから永続的にデータを保持可能なストレージ(以下、永続的ストレージ)へデータを移すには、それが最も速かったからだ。

 現在は永続的ストレージの要素技術として、不揮発性メモリ規格「NVDIMM」も選択肢に入ってきた。NVDIMMは、一般的なメモリモジュール規格「DIMM」のフォームファクタ(形状や仕様)に、DRAMやNANDフラッシュメモリをまとめたメモリ規格だ。

 NVDIMMは高速なバスとメモリI/O方式を使用しており、SSDと比べて非常に高速に動作する。これをDRAMと組み合わせて使うと、インメモリデータベースにシームレスかつ大容量のメモリ領域を利用でき、データを複数のサーバに分散する「シャーディング」の問題を避けることができる。

 ただしNVDIMMは、そのサイズの小ささからSSDよりも一般的に容量制限が厳しく、ビッグデータの処理には問題がある。センサーから連続的に取得するストリームデータや、大部分はアクセスすることのない非常に大きなサイズのデータを処理するには、どうしたらよいか。

 代替策は2つある。

ITmedia マーケティング新着記事

news193.jpg

IASがブランドセーフティーの計測を拡張 誤報に関するレポートを追加
IASは、ブランドセーフティーと適合性の計測ソリューションを拡張し、誤報とともに広告が...

news047.png

【Googleが公式見解を発表】中古ドメインを絶対に使ってはいけない理由とは?
Googleが中古ドメインの不正利用を禁止を公式に発表しました。その理由や今後の対応につ...

news115.jpg

「TikTok禁止法案」に米大統領が署名 気になるこれからにまつわる5つの疑問
米連邦上院が、安全保障上の理由からTikTokの米国事業の売却を要求する法案を可決し、バ...