Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
第7章「一貫性と複製」
分散システム本読書会資料
2013年6月28日(金) 服部 健太
この章の内容
 複製(レプリケーション)の有用性
 一貫性モデル
 データ中心一貫性モデル
 クライアント中心一貫性モデル
 一貫性を実現するための手法
 レプリカサーバの配置とコンテンツの配信
 一貫性維持のためのプロトコル
2...
複製の理由
 なぜわざわざデータを複製するのか?
 信頼性(Reliability)
 複製(レプリカ)のうちの1つがクラッシュしても別の複製に
アクセス可能
 3つのうちのどれか1つの書き込みに失敗しても多数決で修正
可能
 性能(...
スケーラビリティ実現のための複製
 レプリケーションやキャッシングによってスケーラ
ビリティ問題を解決する
 データのコピーをクライアントの近くに配置
 ⇒アクセス時間の削減により性能改善
 問題点:
 複製を最新の状態に保つにはネッ...
データ中心一貫性モデル
 データストア(data store)
 データを格納する論理的な場所
 共有メモリ,データベース,ファイルシステムなど
 物理的には複数のマシンに分散しているかもしれない
 分散共有メモリ,分散データベース,...
データ中心一貫性モデル
 一貫性モデル(consistency model)
 本質的にはプロセスとデータストア間の契約である
 プロセスが定められたルールに従ってアクセスすれば,データ
ストアが正しく動作することを約束する
 様々な一...
連続的一貫性(continuous consistency)
 データ複製の最善解は存在しない
 一貫性を緩和することで,効率的な解決策が得られる
 ⇒一貫性を緩和する一般的な方法も存在しない
 不一貫性を定義する3つの独立した軸
 ...
コニットの概念
 コニット(Consistency Unit)
 一貫性が測られるデータ単位を特定する
 不一貫性を定義するためにYuとVahdatが導入
 例:
 ある1つの銘柄の株を表すレコード
 個々の天気予報
2013/6/...
コニットの例
2013/6/289 第7章:「一貫性とレプリケーション」
コニットの例(続き)
 コニット:変数xとyを含む
 各レプリカはベクトルクロックを保持
 BはAにオペレーション[<5,B>: x := x+2]を送信
 Aはこのオペレーションをコミットし,ロールバックで
きない
 Aは3つの保留...
逐次一貫性(sequential consistency)
 定義:
 どのような実行結果も、すべてのプロセスがある順序で
逐次的に実行した結果と等しく、かつ、個々のプロセス
の処理順序がプログラムで指定された通りであること
2013/6/...
逐次一貫性を持つデータストアでのプロセス実
行例
2013/6/28第7章:「一貫性とレプリケーション」12
 P1, P2, P3は分散配置されたプロセス
 P1, P2, P3は並列に実行
 各プロセス内では文の順番どおりに実行
 ...
逐次一貫性を持つデータストアでの可能な実行
結果
2013/6/28第7章:「一貫性とレプリケーション」13
 逐次一貫性を満たす4つの実行系列(全90通りからの抜
粋)
 プリントアウト:端末への実際の出力
 シグネチャ:P1, P2,...
因果一貫性(causal consistency)
 定義:
 因果的に関連している可能性のある書き込みは,すべて
のプロセスによって同じ順序で観測されなければならな
い.異なるマシンでは,並行書き込みは異なる順序で観
測されてもよい. 並...
オペレーションのグループ化
 順序一貫性と因果一貫性は読み取りと書き込み操作
のレベルで定義されている
 ⇒細粒度
 アプリケーションにおいては、共有データにアクセ
スするプログラムは相互排他のための同期メカニズ
ムを利用する
 ENT...
エントリー一貫性
 エントリー一貫性を満たすデータストアの性質:
 あるプロセスに関して、保護された共有データへのすべ
ての更新が完了するまで、同期変数への獲得操作は完了
されない
 あるプロセスによる同期変数への排他モードアクセスを、
...
エントリー一貫性の例
 P2はyのロックを獲得していないので、R(y)はNILと
なるかもしれない
2013/6/2817 第7章:「一貫性とレプリケーション」
クライアント中心一貫性モデル
 データ中心一貫性モデル
 システム全体にわたって一貫性を提供
 クライアント中心一貫性モデル(client-centric
consistency models)
 システム全体の一貫性は失われているが、...
イベンチュアル一貫性
(eventual consistency)
 長期間更新(write)操作が実行されなければ、いつ
かはすべての複製の同期がとれて、システム全体が
一貫した状態になることを保証
 例)DNS, WWWなど
 ほとん...
モバイルユーザーにとっての一貫性
 分散データベースに、ノートPC経由でアクセスする
例:
 A地点で、ノートPCをデータベースに接続し、読み込み
と更新操作を実行
A地点
B地点
2013/6/2820 第7章:「一貫性とレプリケーション」
モバイルユーザーにとっての一貫性
 B地点に移動して、別のサーバにアクセスして作業
継続⇒以下のような、不一貫性に気付くかもしれな
い
 A地点での更新がまだ反映されていない可能性
 A地点で読み込んだものより新しいエントリを読み込む
可...
クライアント中心一貫性モデルの必要性
2013/6/28第7章:「一貫性とレプリケーション」22
 ある1つのクライアントからは、一貫性があるよう
に見えるようにした
 ⇒クライアント中心一貫性モデルを導入
 モバイルコンピューティングの...
モノトニック読み取り
2013/6/28第7章:「一貫性とレプリケーション」23
 モノトニック読み取り一貫性(monotonic-read
consistency)
 プロセスがデータxの値を読み込むと、同じプロセスによる移
行のxに対す...
モノトニック読み取りの例
2013/6/28第7章:「一貫性とレプリケーション」24
 モノトニック読み取り一貫性のあるデータストア
 モノトニック読み取り一貫性のないデータストア
モノトニック読み取りの応用例
2013/6/28第7章:「一貫性とレプリケーション」25
 分散メールボックス
 いつどこのメールサーバに接続しても、前回までにサー
バにアクセスした際に読めたメールは全て、移動先でも
読めることを保証する。
モノトニック書き込み
2013/6/28第7章:「一貫性とレプリケーション」26
 モノトニック書き込み一貫性(monotonic-write
consistency)
 プロセスのデータxへのwrite操作は、同じプロセスによる
xへの後...
モノトニック書き込みの例
2013/6/28第7章:「一貫性とレプリケーション」27
 モノトニック書き込み一貫性のあるデータストア
 モノトニック書き込み一貫性のないデータストア
書き込み後読み取り
2013/6/28第7章:「一貫性とレプリケーション」28
 書き込み後読み取り一貫性(read-your-write
consistency)
 プロセスがデータxへのwrite操作の結果は、同じプロセス
による後続の...
書き込み後読み取りの例
2013/6/28第7章:「一貫性とレプリケーション」29
 書き込み後読み取り一貫性のあるデータストア
 書き込み後読み取り一貫性のないデータストア
読み取り後書き込み
2013/6/28第7章:「一貫性とレプリケーション」30
 読み取り後書き込み(write-follow-read
consistency)
 前回のデータxに対するread操作に後続するxへのwrite操
作は、常に...
読み取り後書き込みの例
2013/6/28第7章:「一貫性とレプリケーション」31
 読み取り後書き込み一貫性のあるデータストア
 読み取り後書き込み一貫性のないデータストア
Prochain SlideShare
Chargement dans…5
×

分散システム第7章(前半)

2 387 vues

Publié le

Publié dans : Technologie
  • Soyez le premier à commenter

分散システム第7章(前半)

  1. 1. 第7章「一貫性と複製」 分散システム本読書会資料 2013年6月28日(金) 服部 健太
  2. 2. この章の内容  複製(レプリケーション)の有用性  一貫性モデル  データ中心一貫性モデル  クライアント中心一貫性モデル  一貫性を実現するための手法  レプリカサーバの配置とコンテンツの配信  一貫性維持のためのプロトコル 2013/6/282 第7章:「一貫性とレプリケーション」
  3. 3. 複製の理由  なぜわざわざデータを複製するのか?  信頼性(Reliability)  複製(レプリカ)のうちの1つがクラッシュしても別の複製に アクセス可能  3つのうちのどれか1つの書き込みに失敗しても多数決で修正 可能  性能(Performance)  クライアント数が増大したら,サーバを複製し処理を分割する  地理的にエリアが拡大したら,クライアントの近くにサーバの 複製を配置する  複製の代償  複数のレプリカで一貫性(Consistency)を保証する必要 あり  1つのコピーに対する変更がすべてのコピーに対して行われる 2013/6/283 第7章:「一貫性とレプリケーション」
  4. 4. スケーラビリティ実現のための複製  レプリケーションやキャッシングによってスケーラ ビリティ問題を解決する  データのコピーをクライアントの近くに配置  ⇒アクセス時間の削減により性能改善  問題点:  複製を最新の状態に保つにはネットワーク帯域幅が必要  読み込み頻度 N回/秒,更新頻度 M回/秒として,N≪Mなら ば更新のコストが割に合わない  複製の一貫性を維持すること自体がスケーラビリティ問題とな りうる  コピーを常に同じ状態にしておく⇒1つの更新はすべてのコピーに, 単一のアトミック操作として処理しなくてはならないため,大規模 ネットワークでは困難  ⇒一貫性制約をあきらめる(要求を緩和する) 2013/6/284 第7章:「一貫性とレプリケーション」
  5. 5. データ中心一貫性モデル  データストア(data store)  データを格納する論理的な場所  共有メモリ,データベース,ファイルシステムなど  物理的には複数のマシンに分散しているかもしれない  分散共有メモリ,分散データベース,分散ファイルシステムな ど  プロセスはデータストア全体のうち,自分に近いローカ ルコピーにアクセス 2013/6/285 第7章:「一貫性とレプリケーション」
  6. 6. データ中心一貫性モデル  一貫性モデル(consistency model)  本質的にはプロセスとデータストア間の契約である  プロセスが定められたルールに従ってアクセスすれば,データ ストアが正しく動作することを約束する  様々な一貫性モデル  通常はあるデータを読み取るプロセスは,そのデータへ 最後に書き込まれた値が返ってくることを期待  ⇒グローバルクロックがない状況では,どの書き込みが 最後のものかを正確に定義するのは難しい  ⇒他の定義を用意する必要がある  トレードオフ  制限の少ないモデルは使いやすいが,制限の多いモデル に比べて性能が出しにくい 2013/6/286 第7章:「一貫性とレプリケーション」
  7. 7. 連続的一貫性(continuous consistency)  データ複製の最善解は存在しない  一貫性を緩和することで,効率的な解決策が得られる  ⇒一貫性を緩和する一般的な方法も存在しない  不一貫性を定義する3つの独立した軸  数値的相違(numerical deviation)  レプリカ間でどこまで値の数値的なズレを許すか  株式市場価格のようにデータが数値的意味を持つアプリで使用  陳腐化相違(staleness deviaion)  どこまで古いデータを許すか  天気予報は数時間程度なら古いデータでも問題ない  順番的相違(ordering deviation)  更新の順番がある範囲に収まっている限り,レプリカ間で異 なっていてもよいようなアプリ 2013/6/287 第7章:「一貫性とレプリケーション」
  8. 8. コニットの概念  コニット(Consistency Unit)  一貫性が測られるデータ単位を特定する  不一貫性を定義するためにYuとVahdatが導入  例:  ある1つの銘柄の株を表すレコード  個々の天気予報 2013/6/288 第7章:「一貫性とレプリケーション」
  9. 9. コニットの例 2013/6/289 第7章:「一貫性とレプリケーション」
  10. 10. コニットの例(続き)  コニット:変数xとyを含む  各レプリカはベクトルクロックを保持  BはAにオペレーション[<5,B>: x := x+2]を送信  Aはこのオペレーションをコミットし,ロールバックで きない  Aは3つの保留状態のオペレーションを持つ  ⇒順番的相違=3  AはBからのオペレーション<10,B>をまだ感知していな い  ⇒数値的相違=(1, 5)  回数相違=1  値相違=5(このオペレーションを受け取ると,y+=5で現在の 値より5大きくなるので) 2013/6/2810 第7章:「一貫性とレプリケーション」
  11. 11. 逐次一貫性(sequential consistency)  定義:  どのような実行結果も、すべてのプロセスがある順序で 逐次的に実行した結果と等しく、かつ、個々のプロセス の処理順序がプログラムで指定された通りであること 2013/6/2811 第7章:「一貫性とレプリケーション」
  12. 12. 逐次一貫性を持つデータストアでのプロセス実 行例 2013/6/28第7章:「一貫性とレプリケーション」12  P1, P2, P3は分散配置されたプロセス  P1, P2, P3は並列に実行  各プロセス内では文の順番どおりに実行  x, y, zは分散共有メモリ上の変数  書いた値が即座に他のプロセスから読み出せるとは限ら ない  ただし、逐次一貫性を満たすと仮定  最初は0に初期化
  13. 13. 逐次一貫性を持つデータストアでの可能な実行 結果 2013/6/28第7章:「一貫性とレプリケーション」13  逐次一貫性を満たす4つの実行系列(全90通りからの抜 粋)  プリントアウト:端末への実際の出力  シグネチャ:P1, P2, P3の出力をこの順で連結したもの
  14. 14. 因果一貫性(causal consistency)  定義:  因果的に関連している可能性のある書き込みは,すべて のプロセスによって同じ順序で観測されなければならな い.異なるマシンでは,並行書き込みは異なる順序で観 測されてもよい. 並行因果 2013/6/2814 第7章:「一貫性とレプリケーション」
  15. 15. オペレーションのグループ化  順序一貫性と因果一貫性は読み取りと書き込み操作 のレベルで定義されている  ⇒細粒度  アプリケーションにおいては、共有データにアクセ スするプログラムは相互排他のための同期メカニズ ムを利用する  ENTER_CS: クリティカルセクションへの進入  LEAVE_CS: クリティカルセクションからの離脱  ⇒粒度が上がる 2013/6/2815 第7章:「一貫性とレプリケーション」
  16. 16. エントリー一貫性  エントリー一貫性を満たすデータストアの性質:  あるプロセスに関して、保護された共有データへのすべ ての更新が完了するまで、同期変数への獲得操作は完了 されない  あるプロセスによる同期変数への排他モードアクセスを、 そのプロセスに関して行う前に、他のプロセスは(たと え非排他モードでも)ロックを獲得していてはならない  同期変数への排他モードアクセスが行われた後は、その 変数の所有者が排他モードアクセスを完了するまで、他 のプロセスによる、その同期変数への次の非排他モード アクセスを行うことは許されない 2013/6/2816 第7章:「一貫性とレプリケーション」
  17. 17. エントリー一貫性の例  P2はyのロックを獲得していないので、R(y)はNILと なるかもしれない 2013/6/2817 第7章:「一貫性とレプリケーション」
  18. 18. クライアント中心一貫性モデル  データ中心一貫性モデル  システム全体にわたって一貫性を提供  クライアント中心一貫性モデル(client-centric consistency models)  システム全体の一貫性は失われているが、1つのクライ アントから見た場合、そのことは隠ぺいされている  1つのクライアントがいろいろな場所の複製にアクセスする場 合に有用 2013/6/2818 第7章:「一貫性とレプリケーション」
  19. 19. イベンチュアル一貫性 (eventual consistency)  長期間更新(write)操作が実行されなければ、いつ かはすべての複製の同期がとれて、システム全体が 一貫した状態になることを保証  例)DNS, WWWなど  ほとんどの操作はread  更新(write)操作ができるのは1つのプロセスのみ  実装が容易  更新がくつかはすべての複製に伝播することのみ保証すればよ い  更新を行うのは限られたプロセスのみ⇒write-write競合の解決は 容易  クライアントが常に同じ複製にアクセスするならば問題 はない  異なる複製にアクセスする場合(モバイルユーザーな ど)、問題が生じる 2013/6/2819 第7章:「一貫性とレプリケーション」
  20. 20. モバイルユーザーにとっての一貫性  分散データベースに、ノートPC経由でアクセスする 例:  A地点で、ノートPCをデータベースに接続し、読み込み と更新操作を実行 A地点 B地点 2013/6/2820 第7章:「一貫性とレプリケーション」
  21. 21. モバイルユーザーにとっての一貫性  B地点に移動して、別のサーバにアクセスして作業 継続⇒以下のような、不一貫性に気付くかもしれな い  A地点での更新がまだ反映されていない可能性  A地点で読み込んだものより新しいエントリを読み込む 可能性  B地点での更新作業がA地点での作業と衝突する可能性 2013/6/2821 第7章:「一貫性とレプリケーション」
  22. 22. クライアント中心一貫性モデルの必要性 2013/6/28第7章:「一貫性とレプリケーション」22  ある1つのクライアントからは、一貫性があるよう に見えるようにした  ⇒クライアント中心一貫性モデルを導入  モバイルコンピューティングのためのデータベースシス テムBayouの研究から派生  4つの異なる一貫性モデルを区別
  23. 23. モノトニック読み取り 2013/6/28第7章:「一貫性とレプリケーション」23  モノトニック読み取り一貫性(monotonic-read consistency)  プロセスがデータxの値を読み込むと、同じプロセスによる移 行のxに対するread操作では、常に同じ値か、より新しい値が 読み込まれる  記法の導入:  xi[t]:時刻tにおけるローカルコピーLiのデータ項目xのバージョ ン  WS(xi[t]):ローカルコピーLiにおいて、xの値を初期値からxi[t] にするまでのwrite操作の集合  WS(xi[t1];xj[t2]): ローカルコピーLjにおいて、xの値を初期値から xj[t2]にするまでのwrite操作の集合であり、WS(xi[t1])を部分集合 として含むもの  文脈から明らかな場合は、時刻tの添え字は省略する
  24. 24. モノトニック読み取りの例 2013/6/28第7章:「一貫性とレプリケーション」24  モノトニック読み取り一貫性のあるデータストア  モノトニック読み取り一貫性のないデータストア
  25. 25. モノトニック読み取りの応用例 2013/6/28第7章:「一貫性とレプリケーション」25  分散メールボックス  いつどこのメールサーバに接続しても、前回までにサー バにアクセスした際に読めたメールは全て、移動先でも 読めることを保証する。
  26. 26. モノトニック書き込み 2013/6/28第7章:「一貫性とレプリケーション」26  モノトニック書き込み一貫性(monotonic-write consistency)  プロセスのデータxへのwrite操作は、同じプロセスによる xへの後続のwrite操作よりも前に完了している  ⇒同じプロセスから行われるwrite操作は、起動された順 序で行われる  より弱い形の一貫性として、すべての先行するwrite操作は同様 に実行されるが、その順序は本来の起動された順序どおりに なっていなくても許容するものもある。(write操作が可換で順 序が重要でない場合には適用可能)
  27. 27. モノトニック書き込みの例 2013/6/28第7章:「一貫性とレプリケーション」27  モノトニック書き込み一貫性のあるデータストア  モノトニック書き込み一貫性のないデータストア
  28. 28. 書き込み後読み取り 2013/6/28第7章:「一貫性とレプリケーション」28  書き込み後読み取り一貫性(read-your-write consistency)  プロセスがデータxへのwrite操作の結果は、同じプロセス による後続のread操作で必ず観測される  例:  ウェブページを更新すると、以降、自分のブラウザでは (キャッシュの内容ではなく)常に新しいページ内容が表示さ れる  HTMLエディタとブラウザを統合することで実現可能  NISのパスワードを更新したとき、移動先で更新後のパスワー ドが利用できることを保証
  29. 29. 書き込み後読み取りの例 2013/6/28第7章:「一貫性とレプリケーション」29  書き込み後読み取り一貫性のあるデータストア  書き込み後読み取り一貫性のないデータストア
  30. 30. 読み取り後書き込み 2013/6/28第7章:「一貫性とレプリケーション」30  読み取り後書き込み(write-follow-read consistency)  前回のデータxに対するread操作に後続するxへのwrite操 作は、常に前回のread時と同じか、より新しい値に対し て行われることが保証されている  例:  掲示板(ネットニュース)への書き込みで、前回読み込んだ記 事Aへのレスポンス記事Bを書き込む場合  移動先でAが読める場合にのみBが書き込まれていることを保証
  31. 31. 読み取り後書き込みの例 2013/6/28第7章:「一貫性とレプリケーション」31  読み取り後書き込み一貫性のあるデータストア  読み取り後書き込み一貫性のないデータストア

×