47
クラウドを支える基盤技術の 最新動向と今後の方向性 日本マイクロソフト株式会社 萩原 正義 @masayh

クラウドを支える基盤技術の最新動向と今後の方向性

Embed Size (px)

Citation preview

Page 1: クラウドを支える基盤技術の最新動向と今後の方向性

クラウドを支える基盤技術の

最新動向と今後の方向性日本マイクロソフト株式会社萩原 正義@masayh

Page 2: クラウドを支える基盤技術の最新動向と今後の方向性

目的

• クラウドの分散システムや大規模データベー

ス技術の発展の歴史、現在の動向、将来の方

向性

– CAP 定理の制約をどのように克服しているか

– 可用性技術がどのように保証されているか

– OLTP が分散システムでどう拡張されたか

– 開発手法として考えていくべき課題と対応は何か

– Big Data の次の基盤の重要な要素技術は何か

(C) 2012 Microsoft Corporation 2

Page 3: クラウドを支える基盤技術の最新動向と今後の方向性

Agenda• 分散システムとは

– CAP 定理

• 可用性を支える複製

– P-B

– ROWA

– quorum

– RSM、Paxos

– A/E 分離

• スケーラビリティ OLTP プロトコルの発展

– Group safety

– 2PC に代わる atomic broadcast

– View synchronous

• 設計論

– 次世代アーキテクチャー

– CAP 定理の制約を超える

– 混沌と秩序

– 最適化の方法

– 抽象データ(型)の応用(C) 2012 Microsoft Corporation 3

Page 4: クラウドを支える基盤技術の最新動向と今後の方向性

分散システムとは

Page 5: クラウドを支える基盤技術の最新動向と今後の方向性

分散システム再評価の背景

• Hadoop で分散プログラミングモデルが普及

• クラウドの普及で可用性確保で fault-tolerance が必要

• ZooKeeper のような OSS のサービス部品の再利用可能性

• 1970年代のトランザクションが1980年代のグループコミュニケーションで進化

– さらに、HTTP/XML から WebSockets で分散が再興。双方向と提案型

– 特許有効期間は20年

• Big Data で、データ分析基盤のフロントの更新系サービスで分散システムの利用

– 分析対象の収集のためのサービス化を考える

– フロントでのソーシャルのタイムラインの一貫性など、可用性と応答時間のバランスを考えることが重要視される

• serializability による証明可能化、形式化

(C) 2012 Microsoft Corporation 5

Page 6: クラウドを支える基盤技術の最新動向と今後の方向性

分散システムとは何か• 確実な障害検出ができない

– 単なるネットワークの遅延なのか、相手の障害なのか

• その前提で以下の機能が求められる

– 複製の一貫性のための合意

– リーダー障害時のリーダーの選出(合意)

– 参加メンバーのリストの合意

– 分散排他制御

– それらのリカバリー、再構成を含むアルゴリズム、プロトコル

• 原子的ブロードキャストプロトコル

• ベクタークロック

• 障害検出器

• 分散プロトコルの証明

– 障害モデルの前提(転送の信頼性、非同期性、Fail-stop/Byzantine、認証)

– Safety、liveness の証明

– 障害検出器とクロック

(C) 2012 Microsoft Corporation 6

Page 7: クラウドを支える基盤技術の最新動向と今後の方向性

分散システムの難しさ• elastic なリソース管理、再構成定義

– 負荷に応じて

– 障害に応じて、リカバリー

• 構成変更中も動作を止めない

– 複数のラウンドに分割(ビュー/バロット/エポックの同期)

• 複合障害への対応

– SPOF の許容度

– 障害モデルごとの対応

• 各種要素のバランスでアルゴリズム、プロトコルを選択

– 可用性/信頼性の要求、スループット、応答時間、再構成可能とリカバリーの完了期間、一貫性の調整、リソースの消費量(ネットワーク帯域、ディスク帯域、ディスクI/O 回数など)= コスト

– 多様なアルゴリズム、プロトコルから選択、システム化

– テストなど、エンジニアリング的な解決が難しい

– 形式手法化: correctness criteria(C) 2012 Microsoft Corporation 7

Page 8: クラウドを支える基盤技術の最新動向と今後の方向性

分散システムの適用

• 複製への適用

– Group safety

• OLTP への適用

– 2PC に代わる atomic broadcast + ローカルトランザクション

– Paxos コミット

– Serializability の拡張

• スケジューリングやリソース管理

– HadoopDB

(C) 2012 Microsoft Corporation 8

Page 9: クラウドを支える基盤技術の最新動向と今後の方向性

CAP 定理 Revisited

• Consistency: すべてのクライアントは変更があっても同一のビューを見る

• Availability: すべてのクライアントは障害が発生しても、データのいくつかの複製を発見することができる

• Partition-tolerance: (分散)システムはネットワークが切断されても、その特性を維持する

• 制約:

– Partition-tolerance に着目しているサービス提供者向け

– Latency の考慮がない

– 障害モードでの補償処理をどう考えるか

– 必要に応じて ACID、合意プロトコルにより一貫性を取る考え方へ

(C) 2012 Microsoft Corporation 9

Page 10: クラウドを支える基盤技術の最新動向と今後の方向性

CAP の2特性を選択

(C) 2012 Microsoft Corporation 10

C A

P

• Consistency + Availability

• 単一サイト / クラスタデータベース

• 通常の RDB など

C A

P

• Consistency + Partition-tolerance

• 分散データベース / 分散ロック

• HBase、Paxos

C A

P

• Availability + Partition-tolerance

• 分散キャッシュ / DNS

• Cassandra, eventual consistency

Page 11: クラウドを支える基盤技術の最新動向と今後の方向性

可用性 vs. 一貫性CAP 定理

(C) 2012 Microsoft Corporation 11

Page 12: クラウドを支える基盤技術の最新動向と今後の方向性

可用性を支える複製

Page 13: クラウドを支える基盤技術の最新動向と今後の方向性

データベースの安全性基準

(C) 2012 Microsoft Corporation 13

安全性の基準 配送されるサーバ数

コミットされたサーバ数

説明

無処理 ゼロ ゼロ0-safety 1 ゼロ トランザクションは1つのサーバに配送され、実行され

たがまだコミットはされない。ストレージにトランザクションの結果が永続化される前にクラッシュすると、トランザクションは失われる

1-safety 1 1 トランザクションは1つのサーバに配送され、コミットされた。そのトランザクションが他のサーバに送信される前にクラッシュするとトランザクションは失われる可能性がある。他のサーバは先のトランザクションの存在を知らないので、そのトランザクションと衝突する新たな別トランザクションを受け付けられる場合にトランザクションは失われる

Group-safety すべて ゼロ トランザクションはすべてのサーバに配送されるがまだコミットはしていない。f(0<f<すべて)個以上のサーバがクラッシュすると、トランザクションは失われる

Group-safetyかつ1-safety(group-1-safety)

すべて 1 トランザクションはすべてのサーバに配送され、1つのサーバでコミットされた。f個のサーバかつトランザクションをコミットした1つのサーバがクラッシュすると、トランザクションは失われる可能性がある。データベースとグループ通信機構を組み合わせたレプリケーションの大部分はここに属する

2-safety すべて すべて トランザクションはすべてのサーバに配送され、コミットされた。トランザクションが失われることはない

Page 14: クラウドを支える基盤技術の最新動向と今後の方向性

現状の複製技術

• Primary-backup

• Update-anywhere

• Master-slave から cohort単位の複製へ

(C) 2012 Microsoft Corporation 14

Node Ekey ranges[800,999][600,799][400,599]

Node Akey ranges

[0,199][800,999][600,799]

Node Bkey ranges[200,399][0,199]

[800,999]

Node Ckey ranges[400,599][200,399][0,199]

Node Dkey ranges[600,799][400,599][200,399]

Zookeeper

Page 15: クラウドを支える基盤技術の最新動向と今後の方向性

Primary-Backup プロトコルAlsberg-Day Protocol

(C) 2012 Microsoft Corporation 15

Page 16: クラウドを支える基盤技術の最新動向と今後の方向性

全順序化• P-B の順序化の例

– viewstamped replication

• 順序化しないと合意が必要な例

– 楽観的レプリケーション

(C) 2012 Microsoft Corporation 16

出典: Optimistic Replication (Shapiro, Saito)

Page 17: クラウドを支える基盤技術の最新動向と今後の方向性

ROWA (Read One Write All)

(C) 2012 Microsoft Corporation 17

W=N R=1 読み取りに最適化した強い一貫性

W=1 R=N 書き込みに最適化した強い一貫性

W+R<=N eventual consistency 古いデータの読み取りがありえる

W+R>N quorum assembly による強い一貫性。読み取りには少なくとも1つの最新データの複製を含む

Client

ReplicaManger

ReplicaManger

FrontEnd

Client

ReplicaManger

FrontEnd

ReplicaManger

ReplicaManger

ReplicaManger

ReplicaManger

ReplicaManger

Read quorum

Write quorum

Page 18: クラウドを支える基盤技術の最新動向と今後の方向性

Quorum (定足数)

• Quorum consensus

• CC とは独立、回復プロトコル不要

• ROWA との比較

• P-B と ROWA の中間の特徴

• これからの位置づけ

– Byzantine 障害

– 負荷分散

– 契約の一種

(C) 2012 Microsoft Corporation 18

• Read quorum(RQ) と Write quorum(WQ) の規則• |RQ|+|WQ|>N (Read と Write set は重なる)• |WQ|>N/2 (2つの Write set は重なる)

Page 19: クラウドを支える基盤技術の最新動向と今後の方向性

データ配置

• Rack aware

– HDFS, MapR

• Geo replication

– DHT

• いろいろな一貫性モデルがありえる

– ビジネスにどれが適切か?

(C) 2012 Microsoft Corporation 19

出典: Geo-Replication in Large-Scale Cloud Computing Applications

Page 20: クラウドを支える基盤技術の最新動向と今後の方向性

Replicated State Machine

• 状態マシン

– 状態マシンを壊す要因

• Paxos

– Leader と primary の違い

– Learner は合意結果を知らない

– 複数の leader の実行と競合

– 1 leader による複数要求の同時実行

– Batching と Pipeline

(C) 2012 Microsoft Corporation 20

Page 21: クラウドを支える基盤技術の最新動向と今後の方向性

Basic Paxos (1)

(C) 2012 Microsoft Corporation 21

複製(状態マシン)

ReadフェーズWriteフェーズ

複製への反映

提案番号(バロット ID)

過半数

Page 22: クラウドを支える基盤技術の最新動向と今後の方向性

Basic Paxos (2)

(C) 2012 Microsoft Corporation 22

複製は合意結果を知らない

障害が疑われると複数の Leader を立てられる(弱い障害検知)

提案番号を大きくする

Page 23: クラウドを支える基盤技術の最新動向と今後の方向性

Basic Paxos (3)

(C) 2012 Microsoft Corporation 23

複数 Leader間の競合

Page 24: クラウドを支える基盤技術の最新動向と今後の方向性

Paxos の過半数

• propose/accept間の調整

• 提案番号の全順序化

• Ballot 間の合意の引き継ぎ

(C) 2012 Microsoft Corporation 24

リーダー Apropose/accept

リーダー Bpropose/accept

Ballot n-1accept

Ballot npropose

Ballot n-1accept

Ballot naccept

時間推移

時間推移

Page 25: クラウドを支える基盤技術の最新動向と今後の方向性

replica の過半数

• Replica 一貫性モデル

– Spinnaker の例

(C) 2012 Microsoft Corporation 25

Replica へのwrite

Replica へのread

Leader FollowersClient

Write

Ack XWrite X to WAL & Commit Queue Send Ack to Master Don’t apply to Memtables yet

Update Commit QueueApply X to MembtablesSend Ack to Client

Acquire LSN = XPropose X to FollowersWrite log record to WAL & Commit Queue

Asynchronous Commit Message for LSN = Y (Y>=X)

Process everything in the Commit Queue until Y and apply to Memtables.

Client can read the latest value at the LeaderX is not in the Memtable yet.Reads at Followers see an older value now

Tim

e

Reads now see every update up to LSN = Y

Page 26: クラウドを支える基盤技術の最新動向と今後の方向性

Paxos と ZooKeeper

• P-B と RSM の違い

• Primary order の問題

– メッセージ単位のトランザクションスコープ

(C) 2012 Microsoft Corporation 26

メッセージの安定化

出典: Zab: High-performance broadcast for primary-backup systems

Page 27: クラウドを支える基盤技術の最新動向と今後の方向性

A/E 分離

• Byzantine 障害対応の複製数の削減

• privacy

(C) 2012 Microsoft Corporation 27

出典: ZZ and the Art of Practical BFT Execution

Page 28: クラウドを支える基盤技術の最新動向と今後の方向性

Paxos コミット• TM が Paxos を使い RM の合意を取る

• 2F+1 個のアクセプター (~2F+1 個の TMs)

• 各 RM は prepare 要求に応答

• If F+1 個のアクセプターがすべての RMs が prepared 状態になったと確認するとトランザクションをコミット

• 2F(N+1) + 3N + 1 回のメッセージ

• 5 回のメッセージ遅延(1回余計の遅延)

2回の永続化

• F=0 なら 2PC と同じ

(C) 2012 Microsoft Corporation 28

RM0CommitLeader RM0…N

Acceptors0…2F

Page 29: クラウドを支える基盤技術の最新動向と今後の方向性

Vertical Paxos

(C) 2012 Microsoft Corporation 29

耐障害性、可用性、スケーラビリティ遅延、運用コストなどを基準に選択

分散システムプロセスメンバー

Paxos グループ Paxos グループ

構成要素2構成要素1

Page 30: クラウドを支える基盤技術の最新動向と今後の方向性

スケーラビリティOLTP プロトコルの発展

Page 31: クラウドを支える基盤技術の最新動向と今後の方向性

動的プロセスグループ

(C) 2012 Microsoft Corporation 31

Page 32: クラウドを支える基盤技術の最新動向と今後の方向性

ビューの同期(1)

(C) 2012 Microsoft Corporation 32

Page 33: クラウドを支える基盤技術の最新動向と今後の方向性

ビューの同期(2)

(C) 2012 Microsoft Corporation 33

Page 34: クラウドを支える基盤技術の最新動向と今後の方向性

ビューの同期(3)

(C) 2012 Microsoft Corporation 34

Page 35: クラウドを支える基盤技術の最新動向と今後の方向性

2PC に代わる atomic broadcast

(C) 2012 Microsoft Corporation 35

read/write 毎

トランザクション毎

2PC に代わり分散システムのメッセージング受信と配送の分離ACID の一貫性と永続化が同時に実行される

トランザクションクライアント

リソースマネージャ(ROWA)

トランザクションデータ操作

commit/abort

ローカルトランザクションの serializability

Read-onlyトランザクションのアボート

Page 36: クラウドを支える基盤技術の最新動向と今後の方向性

• トランザクション送信中のクラッシュ– トランザクション送信中のビュー変更

• トランザクション受信中のクラッシュ

• 復旧中のクラッシュ

トランザクションデータ操作

障害時の動作 (1) ROWA

(C) 2012 Microsoft Corporation 36

commitV{Si} → V’{^Si}→ V’’{Si}

Si

トランザクションデータ操作

commitV{Si} → V’{^Si}→ V’’{Si}

Si

View 変更あり

Si

②④

②③

Page 37: クラウドを支える基盤技術の最新動向と今後の方向性

障害時の動作 (2) P-B

(C) 2012 Microsoft Corporation 37

出典: Dynamic Reconfiguration of Primary/Backup Clusters

運用中の構成変更 古いビューの操作の片づけ

Page 38: クラウドを支える基盤技術の最新動向と今後の方向性

設計論

Page 39: クラウドを支える基盤技術の最新動向と今後の方向性

(C) 2012 Microsoft Corporation 39

次世代アーキテクチャー

AP (BASE), Stateless,

Elastic

C,非同期

CA

• Soft State

– Weak Consistency Model

– Timeline consistency

– Read-your-Writesconsistency

– Eventual consistency

• NoSQL

Page 40: クラウドを支える基盤技術の最新動向と今後の方向性

CAP 定理の制約を超える

(C) 2012 Microsoft Corporation 40

許容されない許容

異なるプロセスでまだ同期化が実行されていないので観測結果が異なってよい

同期化しているのでP2は最新の x の bが見えないといけない

多数のプロセスですべてのプロセスが更新結果をみなくてもいい状況

• レイヤリング

– CP (Quorum) を AP (期限付きキャッシュ) に載せる

• トランザクションの時間分割から一貫性モデルの時間調整 (CA の 2PC の制約)

– メッセージ安定化のフェイズ

– Weak consistency

Page 41: クラウドを支える基盤技術の最新動向と今後の方向性

混沌と秩序

(C) 2012 Microsoft Corporation 41

A A AC C C

BASE BASE BASEACID ACID ACID

Superstep Superstep SuperstepSync Sync Sync

非同期 非同期 非同期同期 同期 同期

混沌 混沌 混沌秩序 秩序 秩序

Page 42: クラウドを支える基盤技術の最新動向と今後の方向性

最適化の方法

• スケーラブルアーキテクチャーの原則

• MapReduce の最適化

– Data Intensive Scalable Computing アーキテクチャースタイルの一例

(C) 2012 Microsoft Corporation 42

Page 43: クラウドを支える基盤技術の最新動向と今後の方向性

スケーラブルアーキテクチャーの原則

(C) 2012 Microsoft Corporation 43

データ分割による競合防止分類→分割→配置→集約ホットスポットの回避データ偏在の解決

メモリ上の効率利用index データ構造アクセス遅延永続化

転送効率化Co-location、転送プロトコル簡易検査、圧縮などデータ量の削減

並列可能箇所の並列実行時間順序保証の上

負荷分散非同期による時間差

Page 44: クラウドを支える基盤技術の最新動向と今後の方向性

MapReduce の物理最適化

• ジョブ段数を減らし shuffle 数を削減

• 前段に寄せることでデータ転送量を減らす

– push-down: join-select-projection を select-join-projection とする

• sum(2,3,1) = sum(sum(2,3),1)

• avg(2,3,1) != avg(avg(2,3),1)

• インクリメンタルな計算に置き換え

– semi-join(⋉) , bloom filter で転送量を減らす

– Combiner

• データ偏在の解決、分割法

• データ構造の最適化(カラム指向 DB など)

• コード/データの共有、キャッシュ

• 動的最適化

(C) 2012 Microsoft Corporation 44

Page 45: クラウドを支える基盤技術の最新動向と今後の方向性

Row Group 1

c1 c2 c3 c4

11 12 13 14

21 22 23 24

31 32 33 34

並列の比較

• 分散並列 MapReduce vs. ローカル並列 カラム指向

– Tuple のキー特性

(C) 2012 Microsoft Corporation 45

c1 c2 c3 c4

11 12 13 14

21 22 23 24

31 32 33 34

41 42 43 44

51 52 53 54 Row Group 2

c1 c2 c3 c4

41 42 43 44

51 52 53 54

Page 46: クラウドを支える基盤技術の最新動向と今後の方向性

抽象データ(型)の応用

• ZooKeeper の znode による分散合意

• Hive によるデータ分析

– RCFile(カラム指向)と SQL 類似のプログラミングモデル

• Apache Spark による各種並列計算(データフロー、BSP など)

– RDD (Resilient Distributed Dataset) と Scala のプログラミングモデル

• CRDT (Commutative Replicated Data Type)による共有データのスケーラビリティ、分散データの eventual consistency、グループウェア

– CRDT と各種プログラム言語

(C) 2012 Microsoft Corporation 46

Page 47: クラウドを支える基盤技術の最新動向と今後の方向性

まとめ

• Big Data の次の基盤の重要な要素技術は何か?– CAP 定理

– 分散システム

– トランザクション、DB

– プログラミング言語やツール(抽象化、最適化、設計ガイド)

– H/W (SSD、ネットワーク)

– 特許、IP

– 皆さんの挑戦、知恵と協力

(C) 2012 Microsoft Corporation 47