データベース管理システムへの影響のメインメモリとしてNVM

ホスティングデータベース管理システムなどのNVMの影響
プライマリとしての不揮発性メモリの影響をデータベース管理システムのためのストレージ
の概要
ディスクストレージ、リレーショナル・データを使用して、従来のデータベース管理システム。ハードドライブの機能:低コスト、耐久性、大容量。しかし、コストがディスクから非常に高い読み取りデータです。この遅延を解消するために、我々は、仲介者としてのDRAMする必要があります。ディスクの速度よりも速いが、容量が低い、と持続性:DRAMの機能。NVMメモリは、新しい技術であり、大容量、バイトアドレス指定可能、DRAM、不揮発性興に匹敵するストレージ・スピードを持っています。
、NVMは、我々は、リレーショナルデータベース管理システムとしてメインメモリを確認し、この論文に影響を与えます。これは、NVMの特性を最大限に活用するために、従来のリレーショナル・データベース管理システムを変更する方法の研究です。PostgreSQLのストレージエンジンは、それはNVMに合うように修正し、詳細に課題を修正し、修正する方法について説明します。最後に、総合的なシミュレーションプラットフォームによって評価テストすること。結果は、データ記憶ディスクを示している:PGはPGネイティブよりも40%小さいクエリ時間を変更し、NVMに格納されたデータは、14.4%減少してもよいです。平均20.5%と4.5%減少しました。
はじめに
一般的なデータベース管理システムは、データ・セットは、最終的にディスクに保存されます、メモリプラスディスク・アーキテクチャです。低コスト、不揮発性の特性を持つディスク、大規模データストレージに適し。しかし、ディスク、長い時間からデータを読み込むとき。データ・アクセス待ち時間を低減するために、DRAMでCPUとディスクが直接中間記憶媒体として加えます。DRAMへのアクセスは、より高速なディスクよりも桁違いに高速化します。また、DRAMメモリチップ密度と低価格の上昇と、それは大規模なメモリシステムは、より一般的になっています。
これらの理由から、従来のメモリベースのリレーショナルデータベースは、ますます人気になってきて。等インデックス構造、回収機構、リレーショナルデータベースの重要な部分は、記憶媒体とカスタマイズとしてメインメモリのためのプロセスに供されます。しかし、非クリティカルなデータや冗長データを扱うリレーショナルデータベースは、まだ、このような多数のディスクとして、永続的な記憶媒体に必要。
DRAMは、データベースサービスの効率に影響を与える重要な要因です。クエリを実行するとき、データベースは、消費電力の59%は、メインメモリで消費します。加えて、そこに内蔵された物質のドレイン電圧に関連し、さらに膨張DRAMが制限されます。そのため、DRAMは、メインメモリ媒体として、現在及び将来のデータ・セットについていくことはできません。
NVMは、ディスクおよびDRAMの特徴のいくつかと一緒に、新しいハードウェアの記憶媒体です。PC-RAM、STT-RAMとR-RAM:NVM技術製品を投影します。デバイスレベルでの持続的なNVMので、同じデータ状態を維持するために、DRAMのリフレッシュサイクルの必要はありません。従ってNVM及びDRAMは、ビット当たりより少ないエネルギーを消費するために比較しました。また、ハードディスクよりもNVMは小さな遅延があり、DRAMにもかなりの待ち時間を読んで、バイトのアドレス指定可能、DRAMよりも高い密度を。
私たちは、完全にその配当を解放するためにNVM DBMSのハードウェア設計の特性を考慮する必要があります。最も簡単な方法は、パフォーマンス向上のための低遅延を使用して、代替NVMディスクを設計することです。しかし、その低遅延特性よりもはるかに多くのDBMSアダプタNVMの特性、。
本論文では、DBMS NVMのデザインで展開する方法を研究しました。まず、現在のシステムのNVMメモリ構造を含める方法を議論する、と配当金を最大化するために、PostgreSQLのNVMストレージエンジンを変更することもできます。私たちは、DBMSの堅牢性を確保しながら、ゆっくりとディスクインタフェースをバイパスすることを目指しています。
私たちは、シミュレーションプラットフォームおよびTPC-Hベンチマークテストを使用して2つの修飾PGストレージエンジンの後に評価しました。同時に、SSDとNVMに変更されていないPGシーンをテストします。平均値を2.6%から10%に:結果は、修飾ストレージエンジンカーネル実行時間は、(ファイルの位置は、IOを発生)を低減することができることを示しました。PGは4.5%のNVMを向上させることができ、20.5%を増加させることができ、ハードディスク上のプロパティを変更しました。、データへの直接アクセスを取得することにより、NVMクエリがデータを必要とする場合、データが変更され、近くにCPUれていない。さらに、パフォーマンスのボトルネック修正PGを実証しました。ユーザー・レベルのキャッシュは長い遅延が生じ、データでない場合は、新しいハードウェアによってもたらされる利益を反映していません。

背景には、
このセクションでは、NVM技術の特性と関連するDBMSへの影響を詳しく説明します。そして、NVM管理システムソフトウェアを導入しています。
1、NVM特性
データアクセスのレイテンシ:NVMは、リードレイテンシは、ディスクよりもはるかに小さいです。NVMは、開発段階、異なる遅延の異なるソースのままですので。STT-RAMの遅延1-20ns。それでも、彼の遅延はまた、DRAMに非常に近いです。
DRAMよりPC_RAMとR-RAM書き込みレイテンシ。それはバッファによって軽減することができますので、しかし、書き込みレイテンシは、非常に重要ではありません。
密度:NVM DRAMよりも高い密度、メインメモリは、特に組み込みシステムにおいて、代替物として使用することができます。例えば、2〜4倍でDRAM、PC-RAM、簡単に拡張のための容量を提供します。
耐久性:各メモリセルは、書き込み回数の上限を設定。最も競争力は、DRAMの耐久性へのアクセスを提供し、PC-RAMおよびSTT-RAMです。より正確には、NVMの耐久性は1015年と1016年はDRAMです。また、フラッシュメモリ技術よりもNVM大きい耐久性。
エネルギー消費量:NVMは、DRAMのようではないが、定期的に少ないエネルギーを消費し、メモリ内のデータを維持するよう光りました。PC-RAM、他の近いDRAMよりも大幅に少ないエネルギー消費、。
また、バイトは、永続化に取り組みます。Interlは、永続的なメモリ使用量をサポートするための新しい命令を開発しながらInterlとマイクロン・テクノロジーは、3D XPointを立ち上げました。
2、NVMシステムソフトウェア
のみのアプリケーションソフトウェアを変更する必要がなく、NVMの利点を十分に発揮するためには、システムソフトウェアを変更しないように、メインメモリNVMとして使用します。従来のファイルシステムにアクセス可能記憶媒体のブロック層。あなただけのディスクNVMを交換した場合、何も変更せず、その後、NVMストレージは、ブロック層を介してデータを読み書きする必要があります。このような特性に対処NVMバイトは、その利点を十分に発揮することができません。
そのため、ファイルシステムのサポートは、永続的なメモリ上のいくつかの進歩となっています。PMFをはInterlで、オープンソースのPOSIXファイルシステムによって開発されました。これは、使用NVMを容易にするために二つの重要な機能を提供します。
まず、PMFをはNVMは、独立したアドレス空間を維持していません。言い換えれば、NVMとユニファイドメモリアドレッシング。これは、データがDRAMにアクセスするためのNVMアプリケーションからコピーされないことを意味します。NVMプロセスは、直接バイト粒度のデータにアクセスすることができます。
第二に、二つのブロックの伝統的なデータベースアクセス:ファイルIO、メモリはIOをマッピングされました。従来のFSファイルIOを達成するために、同様の方法でのPMF。しかし、異なるメモリはIOの実装をマッピングされました。従来のファイルシステムメモリは、DRAMにコピーされたIO最初のページをマッピングされました。PMFをその後、それが直接、プロセスのアドレス空間に直接ページにマッピングされ、このステップを実行します。図1は、従来のファイルシステムのPMFとの比較です。
データベース管理システムへの影響のメインメモリとしてNVM
デザインの選択
このセクションでは、階層的なメモリ・システムの設計が時点で存在し、どのように変更するには、ディスク指向DBMSをNVM NVMを最大限に活用するために含まれているについて説明します。
基づいて1、DBMS NVMメモリ階層設計
データベース管理システムへの影響のメインメモリとしてNVM
現在のDBMSにおけるNVMメモリ階層の種々の方法。図2は、NVMを使用するには、3つの一般的な方法を示しています。前記従来の方法描かれ、中間状態は、現在使用中のログ、データ・キャッシュ、DRAMに格納されている部分クエリステータス、メインディスクに格納されたデータを含みます。
NVMの特性に基づいて、DRAMやディスクを交換することができます。図に示すように、B。しかし、そのような変更は、現在のオペレーティングシステムとアプリケーションソフトウェアを再設計する必要があります。さらに、DRAMの代替として、NVM技術は、耐久性の面で成熟していないです。したがって、我々はプラットフォームがまだNVMに置き換えられDRAMメモリ、ディスク全体が含まれているか、一部で提唱します。図のC(NVM-Disk)を図。
この実施形態では、電流は依然としてそれによってDRAMの使用は、高速一時的なデータ構造とアプリケーションコードを読み書き、システムDRAM層中に残存します。さらに、アプリケーションは、データのPMFのデータベース・システムにアクセスするためのファイルシステムは、NVMのAPIの性質は、この従来のファイルシステムを扱うオーバーヘッドバイトを回避できます。この方法は、一時的にために、少量のデータのDRAMの多数の展開を、必要としません。一時的なデータ構造を保存したり、従来のコールドストレージディスクのデータを使用するDRAMの隣に配置NVM:私たちは、このシナリオでは、統合されたNVM合理的な利用を展開することであると信じています。
図2は、従来のDBMSポイント変更
完全にNVM新しいハードウェアがもたらすボーナスを再生することはできません、NVMに直接展開されている従来のディスク指向データベースシステムの時間を。一次記憶媒体NVM重要DBMS部材として使用する場合に変更または削除される必要があります。
主記憶媒体としてディスクを使用して、伝統的なDBMS:ブロックレベルのアクセスを避けます。より高速なディスクシーケンシャルアクセス以来、ディスクアクセスの遅延のバランスをとるために、データ・ブロックを読み取るようになっています。
残念ながら、データ移動のチャンクでアクセスデータは、追加費用が発生します。トランザクションは、レコードのバイトを更新した場合たとえば、あなたはまだ全体のブロックがディスクに書き込まれるブラシする必要があります。換言すれば、ブロックレベルのアクセスは、より良いデータのプリフェッチを提供します。NVMはバイトアドレス指定可能であるので、あなたはバイト単位でデータにアクセスすることができます。しかし、これは、データ・バイト・レベルに、粒子サイズが小さくなり、データのない予熱はありません。両方の利点のバランスをとるためのより良い方法。
DBMS内部バッファキャッシュを削除します。DBMSは、典型的には、内部バッファキャッシュを保持します。レコードにアクセスするとき、彼は最初のディスクアドレスを計算します。データブロックは、対応するバッファキャッシュにない場合、ディスクバッファキャッシュから読み出す必要があります。
NVMベースのデータベースには、このような方法を必要としません。NVMアドレス空間は他のプロセスによって見ることができる場合は、限り、あなたはブロックアクションをコピーする必要はありません。NVMへのレコードの直接のアクセスがより効率的になります。しかし、このようなのPMF、NVMとしてサポートされるオペレーティング・システムNVMは、直接プロセスのアドレス空間に露出することができる必要があります。
REDOログを削除します。データベースのACID特性を確保するために、DBMSは、2件のログが必要です:元に戻すとやり直し。コミットされていないトランザクションをロールバックするログ元に戻す、再生のためのやり直しが提出したが、データがディスクに書き込まれています。DBMS NVMベースのバッファキャッシュ内に配置されていない場合、すべてのNVMを書くために直接書き込まれ、あなたはREDOログする必要があるが、それでもログを元に戻す必要はありません。
ケース:POSTGRESQL
PostgreSQLはACIDの完了をサポートするオープンソースのリレーショナルデータベースであり、およびLinux環境を含むすべての主要なオペレーティングシステム上で動作します。この節では、PostgreSQLのストレージエンジンを研究し、それはNVMを適合させるためにいくつかの変更を行います。まず読み書きアーキテクチャPGを導入し、その後、修正するために行われていたものを説明しました。
1のPG書き込みアーキテクチャ
データベース管理システムへの影響のメインメモリとしてNVM
図3aは、原稿のアーキテクチャは動作PGを読み取る示します。図操作がPGソフトウェア層を実行示し、右の列は、対応するデータ移動を示す列を残しました。オペレーティングシステムがのPMFを使用することに注意してください。データを格納するために、交換ディスクを使用して、図3aのNVM。
PGのパフォーマンスは、読み取りに大きく依存し、データファイルIOを書きます。PMFをのため、同じファイルIOのAPIと従来のファイルシステムなので、任意の変更を加えていないPGのための特定のファイルシステムを使用しています。
PGサーバーは、バッファ・キャッシュ内のメンテナンスのためにサービスのバッファ層を呼び出します。バッファ・キャッシュは、PGのページがアクセスされようとしていると主張しました。ディスクには空きスロットバッファキャッシュがない場合はページを読み込んでいます、それは、交換用のポリシーを実行し、バッファ・キャッシュを使用するための管理リストから除名されたデータ・ページを選択し、データ・ページが汚いのページであれば、あなたは最初にする必要があります。それがディスクにフラッシュ。
PGは、ディスクからのデータ・ページを読み込むための要求を受信すると、バッファ層は、バッファ・キャッシュ内の空きスロットを見つけて、彼の手を取得します。図3A PGバッファPgBufPtrは、空きバッファのスロットと対応するポインタです。バッファ層は、このポインタは、レイヤをファイルに送信されます。PGのファイルレイヤ最終ウェイクアップファイルは読み取りと書き込み、読み込み、書き込みが完了するまでに、ファイルシステムに依存します。
読み出し動作のためのカーネル・バッファからのPMF NMVデータブロックのコピー、及びアイドルカーネルバッファキャッシュスロットPgBufPtrポイントにコピー。単語を書く二つのコピーであるが、反対方向に移動します。
このように、ミスバッファキャッシュ、ネイティブPGストレージエンジンの操作は2つのコピーを引き起こします。データセットが非常に大きい場合、それは多くのオーバーヘッドになります。可能のPMFは、直接メモリNVMにアドレスをマッピングするため、コピーのオーバーヘッドを回避するために、エンジンを変更することによって保存することができます。ここで変更する方法を説明します。
2、SE1:IOメモリマップモードを使用する
最初のステップNVMの特性を利用した:PGがMemMappedレイヤーという名前のファイルのレイヤーを、置き換えられます。図3bは、この層は依然として空きバッファ・スロットが送信されるポインタバッファ層を受けます。しかし、メモリマップのPMF入出力インタフェースを使用して、もはやファイルIOを生成しません。このようなストレージはSE1と呼ばれています。
読む:ファイルへのアクセスを読んだとき、あなたは最初のopen()がファイルを開く呼び出す必要があり、その後、メモリにファイルをマップするためにmmap()を使用する必要があります。PMF、MMAP(の使用)は、ファイルマッピングNVMへのポインタを返します。これは、NVMに直接アクセスファイルを適用することができます。
このように、カーネルバッファに要求されたページデータの無いコピー。図3bには、バッファPGに要求されたページデータを直接のmemcpy()のコピーを呼び出すことができます。リクエストが完了すると、もはやファイルにアクセスする必要がない、ファイルを閉じることができます。その後、あなたはマッピングをキャンセルすると、munmap()関数を呼び出すことができます。
書き込み:読み取りと似ています。まず、マッピングをのmmap、その後、変更しようとしているファイルを開く必要があります。PGバッファNVMからコピーするダーティデータに直接のmemcpy()を使用。
SE1は、カーネルバッファ、データの縮小コピーにデータをコピーする必要はありません。
3、SE2:ダイレクト・ファイル・アクセスマッピングする
第2の変形例MemMappedレイヤSE1は、図のPtrRedirection層3cで置き換えることです。そしてMemMappedは異なるレイヤは、彼がPgBufPtr(P2PgBufPtr)を指し示すポインタを受け取りました。
)の読み取り用のファイルにアクセスする場合、(オープン呼び出してファイルを開くには、その後のmmap()を使用してメモリにマップされます。読みます。内部バッファキャッシュPgBufPtrアイドルスロットに対する元のポインタ。mmapのプロセスは、このアドレスを見ることができNVMメモリにマッピングすることができますので、PtrRedirectionレイヤPgBufPtrはNVM内のファイル上のアドレスを指します。図3cに示すポインタが「読み取り」タブをリダイレクト読みます。
データの読み出し動作をコピーする必要がなくなります。大規模なデータクエリでは、この方法では、性能を大幅に強化しました。
書き込み:PMFをはNVM上のファイルにアクセスする直接適用することができます。PGは、マルチプロセスシステムであるので、それは非常に危険であり、矛盾した状態でデータベースを残すことができるNVMファイルに直接変更します。この問題を回避するために、SE2は、ページ内のデータを変更し、ステップ2の前に必要な汚れのページをマーク:NVM内のページ場合は、そのデータは、内部ページバッファキャッシュ、すなわち、PG-バッファにコピーされ、その後、PgBufPtrポインタのリダイレクトを解放し、再ポイントバッファキャッシュ空きスロット。図3c「書き込み」のプロセス。このように、SE2は、すべてのプロセスは、データ・ページのローカルコピーのみを変更することを確保することができるようになります。
関連研究
作業の前に、主に2つのカテゴリに分類される:NVMは、データベース全体の記憶媒体を交換します。NVMストレージ展開ログが。「トランザクション・システムにおけるNVRAM対応の伐採 」 「ストレージ・クラス用いた高パフォーマンスのデータベース・ロギングおよびメモリ」 ディスクIOスループットの影響だけでなく、ログを減らすために、物事のは、応答時間を短縮するために、ディスクではなく、ブラシに直接NVMに書き込まれます。ロギングを分散型マルチコアマルチソケットハードウェアNVMライトの使用、システムの負荷が増加競争集中ロギングを削減:「スケーラブルロギング新興の不揮発性メモリを介して 」。二つのDRAMとNVMストレージは、さまざまな回収方法を検討します。
結論は
、展開NVMに、DBMSの設計に与える影響を検討しました。私たちは、DBMSのNVMメモリ階層が参加するいくつかの状況について話しました。NVMは、完全にまたは部分的にディスクを交換し、一般的なアプリケーションのシナリオです。この方法の下では、システムの原理を変更することなく、そしてNVMに設定されたデータに直接アクセスすることができます。SE1とSE2:PGストレージエンジンの二つの変種を導入しました。
結果は、ネイティブPGのために、16%の最高増加し、40%の平均増加よりも、ディスクパフォーマンス上のNVMデータベースに展開されることを示しています。ほぼ20.5%の実行時間を短縮するために、ディスクへSE1とSE2相対。しかし、現在の設計では、データベース・システムへの最大の障害は、パフォーマンスを最大化することです。私たちのベンチマークを比較し、SE2は、14.4%の最高の読み取り性能を、4.5%の平均を高めることができます。
要因を制限することは非常に遠く、これはNVM上のデータへの直接アクセスのマイナスの影響であるCPUからのデータです。これは、給付NVMを弱めます。したがって、適応NVMライブラリの開発が必要です。

おすすめ

転載: blog.51cto.com/yanzongshuai/2447211
おすすめ