Skip to main content
QUICK REVIEW

[論文レビュー] Keyspace: A Consistently Replicated, Highly-Available Key-Value Store

Márton Trencséni, Attila Gazsó|arXiv (Cornell University)|Sep 18, 2012
Distributed systems and fault tolerance参考文献 4被引用数 5
ひとこと要約

Keyspaceは、PaxosコンSENSUSアルゴリズムを用いてすべてのノードが同一のデータ状態を維持することを保証する、分散型で強いついじょう性があり、高い可用性を備えたキーバリュー・ストアである。障害耐性と高い可用性を達成するために、多数のノードがオンラインで接続されたままであることを要件としており、コマンドのパッケージ化やコミットチェーン化といった最適化により性能を向上させ、実際には1秒あたり約100,000件の操作を処理できる。

ABSTRACT

This paper describes the design and architecture of Keyspace, a distributed key-value store offering strong consistency, fault-tolerance and high availability. The source code is available under the open-source AGPL license for Linux, Windows and BSD-like platforms. As of 2012, Keyspace is no longer undergoing active development.

研究の動機と目的

  • ネットワーク障害やノードのクラッシュがあっても、すべてのノードで強い一貫性を保証する分散型キーバリュー・ストアを設計すること。
  • 多数のノードが正常に稼働している限りシステムが運用可能であるように、高い可用性を達成すること。
  • メッセージ損失、再送順序の変更、ネットワーク分断といった一般的なネットワーク問題に対しても、障害耐性を実現すること。
  • 一貫性のあるレプリケーションによって分散システムの課題を抽象化することで、クライアント側の複雑さを最小限に抑えること。
  • コマンドのパッケージ化、Multipaxos、コミットチェーン化といった技術を用いてパフォーマンスを最適化し、一貫性を損なわずに実現すること。

提案手法

  • 同じ順序ですべてのノードに書き込みコマンドをレプリケートするために、Paxosコンセンサスアルゴリズムを用いる。これにより、すべてのノードが同一の状態を維持する。
  • マスタースレーブレプリケーションモデルを採用し、読み取りと書き込み操作はすべてマスターノードが処理することで一貫性を保証する。
  • 2種類のキャッチアップメカニズムを実装する:短期的な遅延の場合はログのフェッチ、長期的な遅延の場合はマスターノードからの完全なデータベースコピー。
  • epoll、kqueue、またはコンプリーションポートを用いた非同期I/Oにより、高スループットのネットワーク操作を効率的に処理する。
  • 複数のクライアント操作を1つのPaxosラウンドにバッチ処理することで、ネットワークのラウンドトリップを削減するため、コマンドのパッケージ化を適用する。
  • 次のPaxosラウンドまでディスク同期を延期することで、I/Oのオーバーヘッドを削減しながらも、強い一貫性を維持するため、コミットチェーン化を用いる。

実験結果

リサーチクエスチョン

  • RQ1実際のネットワーク障害、たとえばメッセージ損失やネットワーク分断が発生しても、分散型キーバリュー・ストアがどのようにして強い一貫性を維持できるか。
  • RQ2どのようなシステムサイズと構成が、障害耐性を確保しつつ、ライブネス確率を最大化するか。
  • RQ3強い一貫性を損なわず、ネットワークおよびディスクI/Oのオーバーヘッドを最小限に抑えるにはどうすればよいか。
  • RQ4レプリケートされたキーバリュー・ストアにおいて、一貫性、可用性、パフォーマンスの間にはどのようなトレードオフが存在するか。
  • RQ5ダウンした、または切断されたノードが、最小限のオペレータ介入で、システムの現在の状態に追いつくにはどうすればよいか。

主な発見

  • Keyspaceは、すべての書き込み操作が多数のノードにコミットされた後に成功を返すことで、強い一貫性を保証する。
  • ノードの可用性が95%であると仮定した場合、3ノードクラスタでは99.27%、5ノードクラスタでは99.88%の確率でライブネスを維持する。
  • ディスク同期の遅延により、レプリケートされた書き込みスループットは約12MB/secで飽和し、1000バイトを超える値ではパフォーマンスが低下する。
  • シングルクライアントの読み取りスループットは、シングルサーバー構成とレプリケート構成の間で変化しない。これは、マスターノードが他のノードに問い合わせずにすべてのセーフリードを処理するためである。
  • コマンドのパッケージ化とコミットチェーン化により、ネットワークのラウンドトリップ数とディスクI/Oが顕著に削減され、全体のスループットと効率が向上する。
  • デフォルト設定下で、システムは最大約100,000件/秒の操作を処理できる。パフォーマンスはハードウェア、キャッシュサイズ、データアクセスパターンに依存する。

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

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

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

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