Skip to main content
QUICK REVIEW

[論文レビュー] To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem?

Russell Sears, Catharine van Ingen|arXiv (Cornell University)|Jan 26, 2007
Advanced Data Storage Technologies参考文献 10被引用数 74
ひとこと要約

この論文は、長期的な運用パフォーマンスと管理性を考慮して、大容量オブジェクトをデータベース(BLOBとして)に格納するのとファイルシステムに格納するのとの間のトレードオフを調査している。'ストレージ年齢'(オブジェクトの上書き回数で定義される正規化された時間指標)を用いた分析により、256KB未満のオブジェクトはデータベースで最もパフォーマンスが良く、1MBを超えるオブジェクトはファイルシステムで最も効率的であることが判明。256KB〜1MBの間は、読み取り:書き込み比と上書き頻度が決定的要因となるパフォーマンスのクロスオーバー領域である。

ABSTRACT

Application designers often face the question of whether to store large objects in a filesystem or in a database. Often this decision is made for application design simplicity. Sometimes, performance measurements are also used. This paper looks at the question of fragmentation - one of the operational issues that can affect the performance and/or manageability of the system as deployed long term. As expected from the common wisdom, objects smaller than 256KB are best stored in a database while objects larger than 1M are best stored in the filesystem. Between 256KB and 1MB, the read:write ratio and rate of object overwrite or replacement are important factors. We used the notion of "storage age" or number of object overwrites as way of normalizing wall clock time. Storage age allows our results or similar such results to be applied across a number of read:write ratios and object replacement rates.

研究の動機と目的

  • 長期間にわたる運用パフォーマンスと管理性を基準に、大容量オブジェクトをデータベース(BLOB)に格納するか、ファイルシステムに格納するかの最適なストレージ戦略を特定すること。
  • 時間経過に伴うシステムパフォーマンスに深刻な影響を与える要因としての断片化を扱うこと。
  • 異なるワークロードや展開環境間でのパフォーマンス比較を可能にする正規化指標の開発。
  • BLOB格納とファイルシステム格納のどちらがより効率的であるかを決定するサイズの閾値とワークロード特性の特定。
  • 大容量オブジェクトのストレージとしてデータベースとファイルシステムのどちらを選ぶかを、データドリブンなガイダンスとしてアプリケーション設計者に提供すること。

提案手法

  • オブジェクトの上書き回数で定義される正規化された時間指標としての'ストレージ年齢'を導入し、異なるワークロード間でのパフォーマンストレンドの比較を可能にする。
  • さまざまなオブジェクトサイズ(256KBから1MB)とワークロードにおいて、I/Oパフォーマンス、断片化、ストレージ効率を測定する制御された実験を実施。
  • 読み取り:書き込み比とオブジェクト置換レートを変化させた状況で、データベース(SQL Server)とファイルシステム(NTFS)の両方のストレージを評価。
  • オブジェクト上書きの影響をパフォーマンス劣化に分離するために、ストレージ年齢で正規化したウォールクロック時間を用いる。
  • 長期的な管理性とスケーラビリティを評価するため、断片化とストレージ効率のメトリクスを分析。
  • 異なるアクセスパターンとオブジェクトライフサイクル行動をシミュレートすることで、実世界のワークロードへの応用を実施。

実験結果

リサーチクエスチョン

  • RQ1どのオブジェクトサイズで、ファイルシステム格納がデータベースのBLOB格納よりも効率的になるか?
  • RQ2読み取り:書き込み比とオブジェクト上書き頻度は、大容量オブジェクト格納のパフォーマンスと断片化にどのように影響するか?
  • RQ3'ストレージ年齢'のような正規化指標は、多様なワークロードと展開環境間でのストレージパフォーマンス比較に有効に機能するか?
  • RQ4大容量オブジェクトをデータベースとファイルシステムに格納することの長期的運用上の影響、特に断片化と管理性に関しては何か?
  • RQ5256KB〜1MBの間の中途半端なサイズ範囲では、どちらのストレージ方式がより優れているか、パフォーマンス特性はどのように変化するか?

主な発見

  • 256KB未満のオブジェクトは、トランザクション整合性の高さと低いI/Oオーバーヘッドのおかげで、常にBLOBとしてデータベースに格納する方がパフォーマンスが優れている。
  • 1MBを超えるオブジェクトは、データベースのBLOB格納に高いオーバーヘッドと断片化が生じるため、ファイルシステムに格納する方がより効率的である。
  • 256KB〜1MBの間では、最適な選択肢は読み取り:書き込み比とオブジェクト上書き頻度に依存し、高い書き込み頻度の場合はファイルシステムが有利である。
  • オブジェクト上書き回数として定義される'ストレージ年齢'は、異なるワークロード間での一貫性のあるパフォーマンス比較を可能にする強固な正規化指標を提供する。
  • 特に256KB〜1MBの範囲では、高頻度の上書きワークロード下でデータベースBLOB格納の断片化が顕著に増加し、時間経過とともにパフォーマンスが劣化する。
  • ファイルシステム格納は、高頻度の書き込みと上書きワークロード下でも、BLOB格納と比較して長期的な管理性が高く、パフォーマンス劣化が小さい。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。