検索
特集/連載

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

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

Share
Tweet
LINE
Hatena
画像
インメモリデータベースの課題に対処できる適切なバックエンドストレージ技術とは

 インメモリ処理を活用すると、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つある。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る