10. CAP の2特性を選択
C A ? Consistency + Availability
? 単一サイト / クラスタデータベース
P ? 通常の RDB など
? Consistency + Partition-tolerance
C A ? 分散データベース / 分散ロック
P ? HBase、Paxos
? Availability + Partition-tolerance
C A ? 分散キャッシュ / DNS
P ? Cassandra, eventual consistency
(C) 2012 Microsoft Corporation 10
11. 可用性 vs. 一貫性
CAP 定理
(C) 2012 Microsoft Corporation 11
24. Paxos の過半数
? propose/accept
リーダー A リーダー B
間の調整
propose/accept propose/accept
? 提案番号の全順序 Ballot n-1 Ballot n
化 accept propose
時間推移
Ballot n-1 Ballot n
? Ballot 間の合意の accept accept
引き継ぎ 時間推移
(C) 2012 Microsoft Corporation 24
25. replica の過半数
? Replica 一貫性モデル Replica への Replica への
write read
– Spinnaker の例
Client Leader Followers
Write
Acquire LSN = X
Propose X to Followers
Write log record to WAL & Commit Queue
Write X to WAL & Commit
Ack X Queue Send Ack to Master
Don’t apply to Memtables yet
Time
Update Commit Queue
Apply X to Membtables
Send Ack to Client
X is not in the Memtable yet.
Client can read the latest value at the Leader
Reads at Followers see an older
value now
Asynchronous Commit Message for LSN = Y (Y>=X)
Process everything in the Commit Queue
until Y and apply to Memtables.
Reads now see every update up to LSN = Y
(C) 2012 Microsoft Corporation 25
26. Paxos と ZooKeeper
? P-B と RSM の違い
? Primary order の問題
– メッセージ単位のトランザクションスコープ
メッセージの安定化
出典: Zab: High-performance broadcast for primary-backup systems
(C) 2012 Microsoft Corporation 26
27. A/E 分離
? Byzantine 障害対応の複製数の削減
? privacy
出典: ZZ and the Art of Practical BFT Execution
(C) 2012 Microsoft Corporation 27
36. 障害時の動作 (1) ROWA
? トランザクション送信中のクラッシュ
– トランザクション送信中のビュー変更
Si ① トランザクションデータ操作
③
② commit
④ V{Si} → V’{^Si}
View 変更あり → V’’{Si}
? トランザクション受信中のクラッシュ
①トランザクションデータ操作 Si
②
commit
③ V{Si} → V’{^Si}
? 復旧中のクラッシュ → V’’{Si}
Si ①
②
③
(C) 2012 Microsoft Corporation 36
37. 障害時の動作 (2) P-B
運用中の構成変更 古いビューの操作
の片づけ
出典: Dynamic Reconfiguration of Primary/Backup Clusters
(C) 2012 Microsoft Corporation 37
39. 次世代アーキテクチャー
? Soft State
– Weak Consistency
Model
– Timeline consistency
– Read-your-Writes
consistency
– Eventual consistency
? NoSQL
C,
AP (BASE), 非同期
Stateless,
Elastic
CA
(C) 2012 Microsoft Corporation 39
40. CAP 定理の制約を超える
? レイヤリング
– CP (Quorum) を AP (期限付きキャッシュ) に載せる
? トランザクションの時間分割から一貫性モデルの時間
調整 (CA の 2PC の制約)
– メッセージ安定化のフェイズ
– Weak consistency
多数のプロセスですべてのプロセスが更新結果をみなくてもいい状況
異なるプロセスでまだ同期化が実行され
ていないので観測結果が異なってよい
同期化しているので
P2は最新の x の b
が見えないといけない
許容 許容されない
(C) 2012 Microsoft Corporation 40
41. 混沌と秩序
A C A C A C
BASE ACID BASE ACID BASE ACID
Superstep Sync Superstep Sync Superstep Sync
非同期 同期 非同期 同期 非同期 同期
混沌 秩序 混沌 秩序 混沌 秩序
(C) 2012 Microsoft Corporation 41