[論文レビュー] Re-enabling high-speed caching for LSM-trees
本稿では、強力なライトワークロードにおけるキャッシュ無効化を低減するため、オンディスクのコンパクションバッファを用いる修正版LSMツリー、dLSMを提案する。頻繁にコンパクションされるデータに対して安定したディスクアドレスを維持することで、dLSMは永続的キャッシュを実現し、HDDストレージ上でも標準LSMツリーと同一のDRAMキャッシュを用いた場合に比べ、クエリ性能を5–8倍向上する。
LSM-tree has been widely used in cloud computing systems by Google, Facebook, and Amazon, to achieve high performance for write-intensive workloads. However, in LSM-tree, random key-value queries can experience long latency and low throughput due to the interference from the compaction, a basic operation in the algorithm, to caching. LSM-tree relies on frequent compaction operations to merge data into a sorted structure. After a compaction, the original data are reorganized and written to other locations on the disk. As a result, the cached data are invalidated since their referencing addresses are changed, causing serious performance degradations. We propose dLSM in order to re-enable high-speed caching during intensive writes. dLSM is an LSM-tree with a compaction buffer on the disk, working as a cushion to minimize the cache invalidation caused by compactions. The compaction buffer maintains a series of snapshots of the frequently compacted data, which represent a consistent view of the corresponding data in the underlying LSM-tree. Being updated in a much lower rate than that of compactions, data in the compaction buffer are almost stationary. In dLSM, an object is referenced by the disk address of the corresponding block either in the compaction buffer for frequently compacted data, or in the underlying LSM-tree for infrequently compacted data. Thus, hot objects can be effectively kept in the cache without harmful invalidations. With the help of a small on-disk compaction buffer, dLSM achieves a high query performance by enabling effective caching, while retaining all merits of LSM-tree for write-intensive data processing. We have implemented dLSM based on LevelDB. Our evaluations show that with a standard DRAM cache, dLSM can achieve 5--8x performance improvement over LSM with the same cache on HDD storage.
研究の動機と目的
- コンパクション処理中のキャッシュ無効化が引き起こすLSMツリーのパフォーマンス劣化を是正すること。
- コンパクションがデータを再編成し、キャッシュブロックを無効化するという根本的制限を克服すること、これはデータ内容が変わっていなくても同様に発生する。
- SSDや追加のキー値キャッシュに依存せずに、ライト集約的ワークロードにおけるランダムキー値クエリに効果的なキャッシュを可能にすること。
- LSMツリーのライト効率および範囲クエリパフォーマンスを維持しつつ、ランダムリードスルーレートを顕著に向上させること。
- システム全体のアーキテクチャ変更を要しない低オーバーヘッドで汎用的なソリューションを提供すること。
提案手法
- 頻繁にコンパクションされるデータのスナップショットを格納する永続的オンディスクコンパクションバッファを導入し、安定したディスクブロックアドレスを維持する。
- コンパクションバッファをステージング領域として用い、メインLSMツリーと比較してデータの更新頻度がはるかに低い状態に保つことで、アドレス変更を最小限に抑える。
- 頻繁にアクセスされるデータについてはコンパクションバッファの安定したブロックアドレスを参照する一方、アクセス頻度が低いデータはメインLSMツリーに残す。
- キャッシュをデータの物理的位置から分離することで、コンパクションが進んでもコンパクションバッファ内のキャッシュブロックが有効なまま保たれるようにする。
- LSMツリーのコンパクションスケジューリングおよびマージロジック(LevelDBを想定)を活用し、ライト効率を維持するとともにI/O負荷をバランスさせる。
- コンパクションバッファに大きなBloomフィルタを用いることで、最小限のパフォーマンスオーバーヘッドで高速なキー値検索を実現する。
実験結果
リサーチクエスチョン
- RQ1永続的なオンディスクバッファは、強力なコンパクション処理中にLSMツリーにおけるキャッシュ無効化を低減できるか?
- RQ2コンパクションバッファは、ライトスルーレートやメモリ使用量の劣化を招かずにランダムリードパフォーマンスをどの程度向上できるか?
- RQ3バッファ内で安定したブロックアドレスを維持することで、ライト集約的ワークロードにおけるキャッシュ効果が保たれるか?
- RQ4混合読み書きワークロード下で、dLSMは標準LSMツリーと比較してキャッシュヒットレートおよびクエリスルーレートでどの程度優れているか?
- RQ5SSDや追加のキー値キャッシュレイヤーを必要とせず、HDDストレージ上でもdLSMが高いパフォーマンスを達成できるか?
主な発見
- HDD上に標準のDRAMキャッシュを用いた場合、dLSMは同じライトワークロード下で標準LSMツリーに比べてクエリパフォーマンスを5–8倍向上する。
- dLSMではコンパクション中でも平均キャッシュヒットレートが約90%で安定している一方、標準LSMツリーは平均47%に低下する。
- dLSMではランダムリードスルーレートが一定に保たれ(約3,400 QPS)、一方で標準LSMツリーはコンパクション中、50~850 QPSの間で変動する。
- フルコンパクション時でもdLSMは高いパフォーマンスを維持するが、標準LSMツリーはキャッシュの入れ替え(キャッシュ・チューング)により著しいパフォーマンス劣化を受ける。
- コンパクションバッファにより、頻繁にアクセスされるデータの更新頻度とメインコンパクションプロセスを分離することで、キャッシュ無効化の急増を低減する。
- コンパクションフェーズ中、dLSMは標準LSMツリーに比べて平均キャッシュヒットレートが41%高く、平均リードスルーレートが91%高い。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。