Skip to main content
QUICK REVIEW

[論文レビュー] ForkBase: An Efficient Storage Engine for Blockchain and Forkable Applications

Sheng Wang, Tien Tuan Anh Dinh|arXiv (Cornell University)|Feb 14, 2018
Advanced Data Storage Technologies参考文献 29被引用数 24
ひとこと要約

ForkBaseは、ブロックチェーンや共同アプリケーション向けに、データのバージョニング、フォークのセマンティクス、改ざん検知をネイティブにサポートする新しいストレージエンジンです。バージョン化されたコンテンツベースのインデックス(POS-Tree)と細粒度の重複削除を活用することで、高いパフォーマンスと低いストレージオーバーヘッドを実現し、ブロックチェーン、ウィキ、分析ワークロードのあらゆる分野で、クエリ効率、ストレージ消費、開発の単純さにおいて、最先端のシステムを上回っています。

ABSTRACT

Existing data storage systems offer a wide range of functionalities to accommodate an equally diverse range of applications. However, new classes of applications have emerged, e.g., blockchain and collaborative analytics, featuring data versioning, fork semantics, tamper-evidence or any combination thereof. They present new opportunities for storage systems to efficiently support such applications by embedding the above requirements into the storage. In this paper, we present ForkBase, a storage engine specifically designed to provide efficient support for blockchain and forkable applications. By integrating the core application properties into the storage, ForkBase not only delivers high performance but also reduces development effort. Data in ForkBase is multi-versioned, and each version uniquely identifies the data content and its history. Two variants of fork semantics are supported in ForkBase to facilitate any collaboration workflows. A novel index structure is introduced to efficiently identify and eliminate duplicate content across data objects. Consequently, ForkBase is not only efficient in performance, but also in space requirement. We demonstrate the performance of ForkBase using three applications: a blockchain platform, a wiki engine and a collaborative analytics application. We conduct extensive experimental evaluation of these applications against respective state-of-the-art system. The results show that ForkBase achieves superior performance while significantly lowering the development cost.

研究の動機と目的

  • ブロックチェーンや共同分析アプリケーションのような現代のアプリケーションにおいて、データのバージョニング、フォークのセマンティクス、改ざん検知をネイティブにサポートするストレージシステムの増大するニーズに対応すること。
  • コアとなるブロックチェーンおよびフォーク可能なセマンティクスをストレージ層に移譲することで、アプリケーション開発の複雑さを軽減すること。
  • アプリケーション層やキー値ストアベースの実装と比較して、パフォーマンスとストレージ効率を向上させること。
  • 新しいインデックス構造とコンテンツベースのチャンク分割を活用して、履歴クエリとインクリメンタルな更新を効率的に実現すること。

提案手法

  • ForkBaseは、データの内容とその履歴を一意に特定するためのバージョン番号を用い、高速な整合性検証とバージョンの取得を可能にします。
  • 大容量のオブジェクトはチャンクに分割され、新しいPOS-Treeを用いて整理されます。これは、コンテンツベースのスライシング、Merkleツリーのハッシュ化、B+ツリーインデキシングを組み合わせることで、効率的な重複削除と検索を実現します。
  • POS-Treeはフォーク時のコピーオンライトをサポートし、重複するデータのコピーなしに、暗黙的および明示的なフォークを効率的に実現できます。
  • ForkBaseはシンプルで高レベルのAPIを提供し、行指向および列指向の複数の物理的レイアウトをサポートすることで、クエリパフォーマンスとストレージ効率を最適化します。
  • データチャンクをコンテンツに基づいてハッシュ化およびインデキシングすることで、バージョンおよびフォーク間の細粒度の重複削除を実現し、ストレージオーバーヘッドを顕著に低減します。

実験結果

リサーチクエスチョン

  • RQ1ストレージエンジンがデータのバージョニング、フォークのセマンティクス、改ざん検知をネイティブにサポートすることで、アプリケーション層の複雑さを軽減し、パフォーマンスを向上させることができるか?
  • RQ2コンテンツベースでバージョニングされたインデックス構造(POS-Tree)は、バージョニングおよびフォークされたデータワークロードにおいて、重複削除とクエリ効率をどのように改善するか?
  • RQ3統合されたストレージエンジンは、ブロックチェーンおよび共同分析ワークロードにおいて、アプリケーション固有の実装やキー値ストアベースの実装をどれほど上回ることができるか?
  • RQ4物理的レイアウトの選択(行 vs. 列)は、バージョニングストレージシステムにおける分析クエリパフォーマンスにどのように影響するか?

主な発見

  • ForkBaseは、複数のバージョンにアクセスする際、頻繁にアクセスされるデータチャンクをクライアント側でキャッシュするため、Redisよりも履歴データバージョンの読み取りを効率よく実行します。
  • 二段階パーティショニング(2LP)を採用することで、ForkBaseはノード間でのストレージ配分をバランスよく維持でき、ウィキワークロードにおいて単一段階パーティショニング(1LP)で見られる不均衡を解消しました。
  • データセットの変更ワークロードにおいて、ForkBaseは細粒度のチャンクレベルでの重複削除のおかげで、OrpheusDBと比較してストレージ消費量を最大3倍まで削減しました。
  • 分析クエリにおいて、列指向のForkBaseは、行指向のForkBaseやOrpheusDBと比較して10倍のパフォーマンスを達成し、レイアウトに最適化された最適化の利点を示しました。
  • チェックアウトおよびコミット時の遅延を2桁低減するために、遅延読み込みと最小限のデータコミットを採用したことで、ForkBaseはOrpheusDBと比較して更新遅延を2桁低減しました。
  • ForkBaseにおけるバージョン比較コストは、POS-Treeの走査によって小差の場合は効率的にスケーリングされますが、OrpheusDBは全ベクトル比較による一貫した高コストを発生させます。

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

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

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

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