Skip to main content
QUICK REVIEW

[論文レビュー] Performance Tuning and Scaling Enterprise Blockchain Applications

Grant Chung, Luc Desrosiers|arXiv (Cornell University)|Dec 24, 2019
Software System Performance and Reliability参考文献 21被引用数 13
ひとこと要約

この論文では、Hyperledger Fabric上で構築されたエンタープライズブロックチェーンアプリケーションのパフォーマンスチューニングおよび水平スケーリング/垂直スケーリングの体系的アプローチを提示している。Fabricのソースコードを変更せずに、オンプレミスで1,900 TPS、クラウド環境で3,000 TPSを達成した。このアプローチは、ワークロードに配慮したチューニング、インフラストラクチャ最適化、およびコンponentレベルの分析を組み合わせ、ラボでの結果と生産環境でのパフォーマンスのギャップを埋めることを目的としている。

ABSTRACT

Blockchain scalability can be complicated and costly. As enterprises begin to adopt blockchain technology to solve business problems, there are valid concerns if blockchain applications can support the transactional demands of production systems. In fact, the multiple distributed components and protocols that underlie blockchain applications makes performance optimization a non-trivial task. Blockchain performance optimization and scalability require a methodology to reduce complexity and cost. Furthermore, existing performance results often lack the requirements, load, and infrastructure of a production application. In this paper, we first develop a methodical approach to performance tuning enterprise blockchain applications to increase performance and transaction capacity. The methodology is applied to an enterprise blockchain-based application (leveraging Hyperledger Fabric) for performance tuning and optimization with the goal of bridging the gap between laboratory and production deployed system performance. We then present extensive results and analysis of our performance testing for on-premise and cloud deployments, in which we were able to scale the application from 30 to 3000 TPS without forking the Hyperledger Fabric source code and maintaining a reasonable infrastructure footprint. We also provide blockchain application and platform recommendations for performance improvement.

研究の動機と目的

  • ラボでのブロックチェーンパフォーマンス結果と実際の生産環境システムの能力との間の重要なギャップを埋める。
  • 相互に依存するプロトコルとコンponentを備えたマルチコンponentで分散化されたブロックチェーンシステムを最適化する複雑さに対処する。
  • エンタープライズデプロイメントにおけるスループットを最大化し、レイテンシを最小限に抑える、繰り返し可能な体系的アプローチを開発する。
  • 本番環境に準拠した環境で、実アプリケーションワークロード、完全なログ、本番品質の設定を用いてスケーラブルなパフォーマンスを実証する。
  • stateDB、コンセンサス、ピアロールなどのブロックチェーンコンponentにおける主要なパフォーマンスボトルネックを特定・解決する。

提案手法

  • トランザクションの3段階トレーシング手法(エンドースメント、オーダリング、コミット)を適用し、ブロックチェーンコンponent全体のパフォーマンスボトルネックを特定する。
  • 異なるインフラストラクチャ構成を用いて、オンプレミス(Zシステム)およびクラウド(IBM Cloud)環境での広範なパフォーマンステストを実施する。
  • ブロックサイズ、コミット戦略、ピアロール(例:エンドースメントとコミットのピアを分離)など、重要なパrameterを体系的にチューニングする。
  • ログ、トレーシング、メトリクスを用いて、すべてのトランザクションフェーズおよびシステムコンponent全体のパフォーマンスデータを収集・分析する。
  • CPUコア数(最大16)およびメモリ(最大16 GB)を増加させることで垂直スケーリングを評価し、仮想CPUから物理CPUへのマッピングの影響を分析する。
  • CouchDB stateDBのアクセスパターンや、バッファードチャネルを用いたブロック検証の最適化を含む、重要なコンponentの分析と最適化を行う。

実験結果

リサーチクエスチョン

  • RQ1最大のパフォーマンスとスケーラビリティを実現するため、どのように体系的アプローチを適用できるか?
  • RQ2本番環境向けHyperledger Fabricデプロイメントにおける主なパフォーマンスボトルネックは何か。それらはどのように緩和できるか?
  • RQ3基盤となるブロックチェーンプラットフォームのソースコードを変更せずに、水平スケーリングおよび垂直スケーリングによってスループットをどの程度向上できるか?
  • RQ4異なるデプロイメント環境(オンプレミス対クラウド)およびインフラストラクチャ構成が、トランザクション処理パフォーマンスにどのように影響するか?
  • RQ5仮想CPUから物理CPUへのマッピング比がパフォーマンス劣化に与える影響は何か。最適化にはどのように対処すべきか?

主な発見

  • このアプローチにより、スループットが63倍に向上し、オンプレミスで30 TPSから1,900 TPSにまで向上した。これは設定チューニングとインフラストラクチャスケーリングによるものである。
  • クラウドデプロイメントでは24 vCPUを活用し、最適化されたインfraを用いることで、3,000 TPSを達成した。これはオンプレミス環境に比べ、より優れたパフォーマンススケーリングを示している。
  • CouchDB stateDBのアクセスが、特に高負荷下で非効率なロックとI/Oパターンのため、主要なボトルネックであることが判明した。
  • ピアロールを専用のエンドースメントピアとコミットピアに分離することで、リソース競合が軽減され、トランザクション処理の効率が向上した。
  • ブロック検証にバッファードチャネルを使用することで、ブロッキングされたゴルーチンの数が減少し、検証フェーズにおけるスループットが向上した。
  • 高い仮想CPU対物理CPUマッピング比(例:6:1)はCPU利用率を制限し、パフォーマンスを劣化させる要因となった。これは、最適なパフォーマンスを得るには、低いオーバーコミット比を採用する必要があることを示している。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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