Skip to main content
QUICK REVIEW

[論文レビュー] Bizur: A Key-value Consensus Algorithm for Scalable File-systems

Ezra N. Hoch, Yaniv Ben-Yehuda|arXiv (Cornell University)|Feb 14, 2017
Distributed systems and fault tolerance参考文献 29被引用数 5
ひとこと要約

Bizur は、分散ファイルシステムのスケーラビリティを向上させるために設計されたキー値コンセンサスアルゴリズムであり、分散ログの依存関係を排除することで、高スループット(IOPS)と低レイテンシーを実現する。Paxos や Zab や Raft とは異なり、Bizur は各キーごとに独立してコンセンサスを達成するため、誤った依存関係や実際の依存関係を回避でき、障害発生時においても優れたパフォーマンスと耐障害性を発揮する。

ABSTRACT

Bizur is a consensus algorithm exposing a key-value interface. It is used by a distributed file-system that scales to 100s of servers, delivering millions of IOPS, both data and metadata, with consistent low-latency. Bizur is aimed for services that require strongly consistent state, but do not require a distributed log; for example, a distributed lock manager or a distributed service locator. By avoiding a distributed log scheme, Bizur outperforms distributed log based consensus algorithms, producing more IOPS and guaranteeing lower latencies during normal operation and especially during failures. Paxos-like algorithms (e.g., Zab and Raft) which are used by existing distributed file-systems, can have artificial contention points due to their dependence on a distributed log. The distributed log is needed when replicating a general service, but when the desired service is key-value based, the contention points created by the distributed log can be avoided. Bizur does exactly that, by reaching consensus independently on independent keys. This independence allows Bizur to handle failures more efficiently and to scale much better than other consensus algorithms, allowing the file-system that utilizes Bizur to scale with it.

研究の動機と目的

  • 大規模な分散ファイルシステムにおける Paxos に類するコンセンサスアルゴリズムのスケーラビリティとレイテンシーの制限を解消すること。
  • 強い一貫性を要するシステムにおける分散ログの依存関係が引き起こすパフォーマンスのボトル neck を克服すること。
  • 数百台のサーバーにまたがる動的で細粒度のメタデータ所有権を持つファイルシステムにおいて、高並列なメタデータ操作を可能にすること。
  • メモリ内および永続的ストレージサービスの両方をサポートし、強い一貫性と低レイテンシーのリカバリを実現すること。
  • 一般用途の分散ログのオーバーヘッドを回避する、キー値ワークロードに特化したコンセンサスメカニズムを設計すること。

提案手法

  • 各キーが独立してコンセンサス保護されるキー値 API を公開することで、キー間の依存関係を排除する。
  • グローバルログからコンセンサスを分離し、個々のキー値ペアに対して独立して合意に達する仕組みを提供する。
  • リーダー基盤のプロトコルを採用し、クorum 基盤の投票によって各キーごとに強い一貫性を確保する。
  • 条件付き書き込みとキーごとのアトミック更新をサポートすることで、分散サービスの安全な調整を可能にする。
  • メモリ内および永続ストレージレイヤーと統合し、高速なメモリ内操作と耐久性のあるログによるクラッシュリカバリを可能にする。
  • モノリシックなログの再再生を必要としないようにすることで、障害後にサーバーが再参加し、状態を再構築できる耐障害性の高いリカバリを設計する。

実験結果

リサーチクエスチョン

  • RQ1分散ログのパフォーマンスボトル neck を回避できるような、キー値ワークロードに特化したコンセンサスアルゴリズムを設計できるか?
  • RQ2キーごとの独立したコンセンサスが、通常運用時および障害発生時におけるスケーラビリティとレイテンシーに与える影響は何か?
  • RQ3メタデータ集約型のファイルシステムにおいて、キー値コンセンサスモデルがログベースのコンセンサスをどの程度上回れるか?
  • RQ4グローバルログが存在しない状況でも、強い一貫性を維持しながら高並列処理と低レイテンシー処理を実現できるか?
  • RQ5ネットワークパーティション、パケット損失、サーバー障害の条件下で、ZooKeeper や etcd といった既存システムと比較して、このアルゴリズムのパフォーマンスはどの程度か?

主な発見

  • 通常運用時において、Bizur は ZooKeeper や etcd よりもスループット、平均レイテンシー、99パーセンタイルレイテンシーで優れている。
  • ネットワークパケットロス発生時、依存関係のチェーンが短いため、ログベースのシステムよりも Bizur は顕著に低いレイテンシーを維持する。
  • サーバー障害時、モノリシックな分散ログの再再生を回避しているため、Bizur はより速いリカバリと低いレイテンシー低下を達成する。
  • アルゴリズムはキー数に比例して線形にスケーリングされ、大規模なファイルシステムにおける高並列メタデータ操作をサポートする。
  • Bizur のメモリ内バージョン(ORC サービスで使用)は、ミリ秒未塔のレイテンシーを達成しており、ディスクバックドの代替手段に比べて顕著なパフォーマンス優位性を示している。
  • Bizur の設計により、操作間の誤った依存関係が排除され、1つの遅延する操作がその後続の操作をブロッキングするのを防ぐ。

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

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

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

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