オープンソースストレージエンジンであるHSE、SSD用に最適化されたSSE

DRAMおよびフラッシュメモリの製造を専門とするマイクロン・テクノロジー社は、NANDフラッシュ(X100、TLC、QLC 3D NAND)または読み出し専用メモリ(NVDIMM)をベースとしたSSDユニットでの使用特性を考慮して開発された「HSE」 (Heterogeneous-memory Storage Engine)と呼ばれる新しいエンジンを発表しました。

このエンジンは、他のアプリケーションに組み込むためのライブラリとして設計されており、キーバリューデータ処理をサポートしています。HSEコードはC言語で記述されており、Apache 2.0ライセンスの下で配布されています。

このエンジンの応用例としては、NoSQL DBMSにおける低レベルデータストレージ、CephやScality RINGなどのソフトウェア定義ストレージ(SDS)、大量データ(ビッグデータ)処理プラットフォーム、高性能コンピューティング(HPC)システム、モノのインターネット(IoT)デバイス、機械学習システム向けソリューションなどが挙げられる。

HSEは、最高のパフォーマンスを実現するだけでなく、様々なSSDクラスの耐久性を確保するよう最適化されています。高速性はハイブリッドストレージモデルによって実現されており、最も重要なデータはキャッシュに保存されるため、ディスクアクセス回数が削減されます。

新しいエンジンをサードパーティプロジェクトに統合する例として、HSEを使用するように翻訳されたドキュメント指向バージョンのMongoDBDBMSが用意されました。

技術的には、HSEは追加のコアモジュールであるmpoolをベースとしており、これはソリッドステートドライブ(SSD)の機能と特性を考慮した、SSD用オブジェクト保存のための専用インターフェースを実装することで、根本的に異なる速度と耐久性を実現しています。mpoolもまた、Micron Technologyによるオープンソース開発であり、HSEと同時にリリースされましたが、独立したインフラストラクチャプロジェクトとして位置づけられています。mpoolは永続メモリとゾーンストレージの使用を前提としていますが、現時点では従来のSSDのみがサポートされています。

YCSB(Yahoo Cloud Serving Benchmark)パッケージを用いた性能テストでは、2TBのストレージを使用し、1KBのデータブロック処理を行った場合に、大幅な性能向上が見られました。特に、読み書き操作が均等に分散されたテストでは、顕著な性能向上が確認されました。

例えば、HSEエンジンを搭載したMongoDBは、標準のWiredTigerエンジンを搭載したバージョンよりも約8倍高速であることが証明され、RocksDB DBMSエンジンはHSEを6倍以上上回るパフォーマンスを発揮しました。テストでは、読み取り操作が95%、変更または追加がわずか5%という構成でしたが、優れたパフォーマンス指標が明確に示されました。

実行された別のテストは読み取り操作のみを含み、約40%の利益を示しています。 RocksDBベースのソリューションと比較した書き込み操作中のSSDの存続可能性の増加は7倍と推定されています。

HSEの主な機能:

  • 標準および高度なオペレーターのサポート キー/値形式でデータを処理する。
  • 完全なトランザクションサポートと、スナップショットを作成することでストレージセグメントを分離する機能(スナップショットを使用して、ストア内の個別のコレクションを維持することもできます)。
  • カーソルを使用して、スナップショットベースの表現でデータをトラバースする機能。
  • 単一のリポジトリ内の混合負荷タイプ用に最適化されたデータモデル。
  • 柔軟なメカニズム ストレージの信頼性を管理します。
  • カスタマイズ可能なデータオーケストレーションスキーム(リポジトリに存在するさまざまなタイプのメモリを介した配布)。
  • CAPIを備えたライブラリ これは、任意のアプリケーションに動的にリンクできます。
    テラバイトのデータと数千億のキーをストレージに拡張する機能。
  • 何千もの並列操作の効果的な処理。
  • 通常の回避策と比較して、さまざまなタイプのワークロードの帯域幅が大幅に増加し、待ち時間が短縮され、読み取り/書き込みが増加します。
  • 同じストレージで異なるクラスのSSDを使用して、パフォーマンスと耐久性を最適化する機能。

エンジンコードは以下のリンクからアクセスできます。


Googleで優先ソースとして追加する