SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
クラウドを支える基盤技術の
  最新動向と今後の方向性
日本マイクロソフト株式会社
萩原 正義
@masayh
目的
• クラウドの分散システムや大規模データベー
  ス技術の発展の歴史、現在の動向、将来の方
  向性
 – CAP 定理の制約をどのように克服しているか
 – 可用性技術がどのように保証されているか
 – OLTP が分散システムでどう拡張されたか
 – 開発手法として考えていくべき課題と対応は何か
 – Big Data の次の基盤の重要な要素技術は何か
          (C) 2012 Microsoft Corporation   2
Agenda
•   分散システムとは
    – CAP 定理
•   可用性を支える複製
    –   P-B
    –   ROWA
    –   quorum
    –   RSM、Paxos
    –   A/E 分離
•   スケーラビリティ OLTP プロトコルの発展
    – Group safety
    – 2PC に代わる atomic broadcast
    – View synchronous
•   設計論
    –   次世代アーキテクチャー
    –   CAP 定理の制約を超える
    –   混沌と秩序
    –   最適化の方法
    –   抽象データ(型)の応用
                          (C) 2012 Microsoft Corporation   3
分散システムとは
分散システム再評価の背景
•   Hadoop で分散プログラミングモデルが普及
•   クラウドの普及で可用性確保で fault-tolerance が必要
•   ZooKeeper のような OSS のサービス部品の再利用可能性
•   1970年代のトランザクションが1980年代のグループコミュニケー
    ションで進化
    – さらに、HTTP/XML から WebSockets で分散が再興。双方向と提案型
    – 特許有効期間は20年
• Big Data で、データ分析基盤のフロントの更新系サービスで分散シ
  ステムの利用
    – 分析対象の収集のためのサービス化を考える
    – フロントでのソーシャルのタイムラインの一貫性など、可用性と応答時
      間のバランスを考えることが重要視される
• serializability による証明可能化、形式化


                 (C) 2012 Microsoft Corporation   5
分散システムとは何か
• 確実な障害検出ができない
 – 単なるネットワークの遅延なのか、相手の障害なのか
• その前提で以下の機能が求められる
 –   複製の一貫性のための合意
 –   リーダー障害時のリーダーの選出(合意)
 –   参加メンバーのリストの合意
 –   分散排他制御
 –   それらのリカバリー、再構成を含むアルゴリズム、プロトコル
     • 原子的ブロードキャストプロトコル
     • ベクタークロック
     • 障害検出器
• 分散プロトコルの証明
 – 障害モデルの前提(転送の信頼性、非同期性、Fail-stop/Byzantine、
   認証)
 – Safety、liveness の証明
 – 障害検出器とクロック
               (C) 2012 Microsoft Corporation   6
分散システムの難しさ
• elastic なリソース管理、再構成定義
  – 負荷に応じて
  – 障害に応じて、リカバリー
• 構成変更中も動作を止めない
  – 複数のラウンドに分割(ビュー/バロット/エポックの同期)
• 複合障害への対応
  – SPOF の許容度
  – 障害モデルごとの対応
• 各種要素のバランスでアルゴリズム、プロトコルを選択
  – 可用性/信頼性の要求、スループット、応答時間、再構成可能とリカバ
    リーの完了期間、一貫性の調整、リソースの消費量(ネットワーク帯
    域、ディスク帯域、ディスクI/O 回数など)= コスト
  – 多様なアルゴリズム、プロトコルから選択、システム化
  – テストなど、エンジニアリング的な解決が難しい
  – 形式手法化: correctness criteria
              (C) 2012 Microsoft Corporation   7
分散システムの適用
• 複製への適用
 – Group safety
• OLTP への適用
 – 2PC に代わる atomic broadcast + ローカルト
   ランザクション
 – Paxos コミット
 – Serializability の拡張
• スケジューリングやリソース管理
 – HadoopDB

                  (C) 2012 Microsoft Corporation   8
CAP 定理 Revisited
• Consistency: すべてのクライアントは変更があっても同一の
  ビューを見る
• Availability: すべてのクライアントは障害が発生しても、データ
  のいくつかの複製を発見することができる
• Partition-tolerance: (分散)システムはネットワークが切断さ
  れても、その特性を維持する

• 制約:
  –   Partition-tolerance に着目しているサービス提供者向け
  –   Latency の考慮がない
  –   障害モードでの補償処理をどう考えるか
  –   必要に応じて ACID、合意プロトコルにより一貫性を取る考え方へ



                  (C) 2012 Microsoft Corporation   9
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
可用性 vs. 一貫性
  CAP 定理




  (C) 2012 Microsoft Corporation   11
可用性を支える複製
データベースの安全性基準
安全性の基準         配送される   コミットされ            説明
               サーバ数    たサーバ数
無処理            ゼロ      ゼロ
0-safety       1       ゼロ                トランザクションは1つのサーバに配送され、実行され
                                         たがまだコミットはされない。ストレージにトランザク
                                         ションの結果が永続化される前にクラッシュすると、ト
                                         ランザクションは失われる
1-safety       1       1                 トランザクションは1つのサーバに配送され、コミット
                                         された。そのトランザクションが他のサーバに送信され
                                         る前にクラッシュするとトランザクションは失われる可
                                         能性がある。他のサーバは先のトランザクションの存在
                                         を知らないので、そのトランザクションと衝突する新た
                                         な別トランザクションを受け付けられる場合にトランザ
                                         クションは失われる
Group-safety   すべて     ゼロ                トランザクションはすべてのサーバに配送されるがまだ
                                         コミットはしていない。f(0<f<すべて)個以上のサー
                                         バがクラッシュすると、トランザクションは失われる
Group-safetyか すべて      1                 トランザクションはすべてのサーバに配送され、1つの
つ1-safety                                サーバでコミットされた。f個のサーバかつトランザク
(group-1-                                ションをコミットした1つのサーバがクラッシュすると、
safety)                                  トランザクションは失われる可能性がある。データベー
                                         スとグループ通信機構を組み合わせたレプリケーション
                                         の大部分はここに属する
2-safety       すべて     すべて               トランザクションはすべてのサーバに配送され、コミッ
                                         トされた。トランザクションが失われることはない
                            (C) 2012 Microsoft Corporation      13
現状の複製技術
• Primary-backup
• Update-anywhere

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

                                  Zookeeper




  Node A      Node B               Node C                   Node D        Node E
 key ranges   key ranges          key ranges                key ranges   key ranges
  [0,199]     [200,399]           [400,599]                 [600,799]    [800,999]
 [800,999]     [0,199]            [200,399]                 [400,599]    [600,799]
 [600,799]    [800,999]            [0,199]                  [200,399]    [400,599]


                           (C) 2012 Microsoft Corporation                          14
Primary-Backup プロトコル
    Alsberg-Day Protocol




        (C) 2012 Microsoft Corporation   15
全順序化
• P-B の順序化の例
 – viewstamped replication
• 順序化しないと合意が必要な例
 – 楽観的レプリケーション




出典: Optimistic Replication (Shapiro, Saito)
                      (C) 2012 Microsoft Corporation   16
ROWA (Read One Write All)
 W=N R=1    読み取りに最適化した強い一貫性

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

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

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

                                     Read quorum

                                 Replica        Replica   Replica
                                 Manger         Manger    Manger
           Client   Front
                     End


                                Replica         Replica    Replica
                                Manger          Manger     Manger

                    Front
           Client
                     End
                                                Replica    Replica
                                                Manger     Manger

                                                     Write quorum
                    (C) 2012 Microsoft Corporation                   17
Quorum (定足数)
            • Read quorum(RQ) と Write quorum(WQ) の規則
               • |RQ|+|WQ|>N (Read と Write set は重なる)
               • |WQ|>N/2 (2つの Write set は重なる)


•   Quorum consensus
•   CC とは独立、回復プロトコル不要
•   ROWA との比較
•   P-B と ROWA の中間の特徴
•   これからの位置づけ
    – Byzantine 障害
    – 負荷分散
    – 契約の一種
                     (C) 2012 Microsoft Corporation   18
データ配置
• Rack aware
   – HDFS, MapR
• Geo replication
   – DHT
• いろいろな一貫性モデルがありえる
   – ビジネスにどれが適切か?




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


                           (C) 2012 Microsoft Corporation              19
Replicated State Machine
• 状態マシン
  – 状態マシンを壊す要因
• Paxos
  – Leader と primary の違い
  – Learner は合意結果を知らない
  – 複数の leader の実行と競合
  – 1 leader による複数要求の同時実行
  – Batching と Pipeline

           (C) 2012 Microsoft Corporation   20
Basic Paxos (1)
        複製(状態マシン)

                             Read フェーズ
                               Write フェーズ
                                     提案番号(バロット ID)



                                 複製への反映



                             過半数




    (C) 2012 Microsoft Corporation                   21
Basic Paxos (2)

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




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




                                     提案番号を大きくする




    (C) 2012 Microsoft Corporation                  22
Basic Paxos (3)
               複数 Leader 間の競合




    (C) 2012 Microsoft Corporation   23
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
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
Paxos と ZooKeeper
• P-B と RSM の違い
• Primary order の問題
  – メッセージ単位のトランザクションスコープ
                                                  メッセージの安定化




      出典: Zab: High-performance broadcast for primary-backup systems
                      (C) 2012 Microsoft Corporation                   26
A/E 分離
• Byzantine 障害対応の複製数の削減
• privacy




    出典: ZZ and the Art of Practical BFT Execution
                (C) 2012 Microsoft Corporation      27
Paxos コミット
• TM が Paxos を使い RM の合意を取る
• 2F+1 個のアクセプター (~2F+1 個の TMs)
• 各 RM は prepare 要求に応答
• If F+1 個のアクセプターがすべての RMs が prepared 状態
  になったと確認するとトランザクションをコミット
• 2F(N+1) + 3N + 1 回のメッセージ
• 5 回のメッセージ遅延           Commit   Acceptors
    (1回余計の遅延)        RM0            Leader       RM0…N   0…2F
  2回の永続化
• F=0 なら 2PC と同じ




                (C) 2012 Microsoft Corporation                  28
Vertical Paxos

        Paxos グループ                             Paxos グループ




構成要素1                                                 構成要素2

                                         耐障害性、可用性、スケーラビリティ
                                         遅延、運用コストなどを基準に選択
        分散システム
        プロセスメンバー

                     (C) 2012 Microsoft Corporation           29
スケーラビリティ
OLTP プロトコルの発展
動的プロセスグループ




  (C) 2012 Microsoft Corporation   31
ビューの同期(1)




  (C) 2012 Microsoft Corporation   32
ビューの同期(2)




  (C) 2012 Microsoft Corporation   33
ビューの同期(3)




  (C) 2012 Microsoft Corporation   34
2PC に代わる atomic broadcast
       2PC に代わり分散システムのメッセージング
       受信と配送の分離
       ACID の一貫性と永続化が同時に実行される
トランザクション                                       リソース
クライアント                                         マネージャ
               read/write 毎
                                               (ROWA)



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

           トランザクションデータ操作                       Read-only
                                               トランザクション
           commit/abort                        のアボート
              (C) 2012 Microsoft Corporation             35
障害時の動作 (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
障害時の動作 (2) P-B




                                運用中の構成変更         古いビューの操作
                                                 の片づけ
出典: Dynamic Reconfiguration of Primary/Backup Clusters

              (C) 2012 Microsoft Corporation             37
設計論
次世代アーキテクチャー
                                                •   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
CAP 定理の制約を超える
• レイヤリング
 – CP (Quorum) を AP (期限付きキャッシュ) に載せる
• トランザクションの時間分割から一貫性モデルの時間
  調整 (CA の 2PC の制約)
 – メッセージ安定化のフェイズ
 – Weak consistency
     多数のプロセスですべてのプロセスが更新結果をみなくてもいい状況
     異なるプロセスでまだ同期化が実行され
     ていないので観測結果が異なってよい



                          同期化しているので
                          P2は最新の x の b
                          が見えないといけない
       許容                                     許容されない
             (C) 2012 Microsoft Corporation            40
混沌と秩序

A         C            A              C           A         C

BASE     ACID         BASE           ACID         BASE     ACID


Superstep Sync        Superstep Sync              Superstep Sync



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


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




                 (C) 2012 Microsoft Corporation                    41
最適化の方法
• スケーラブルアーキテクチャーの原則
• MapReduce の最適化
 – Data Intensive Scalable Computing アーキ
   テクチャースタイルの一例




              (C) 2012 Microsoft Corporation   42
スケーラブルアーキテクチャーの
      原則
データ分割による競合防止                       メモリ上の効率利用
 分類→分割→配置→集約                             index データ構造アクセス
 ホットスポットの回避                              遅延永続化
 データ偏在の解決




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




負荷分散
 非同期による時間差
                                     並列可能箇所の並列実行
                                           時間順序保証の上



               (C) 2012 Microsoft Corporation              43
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
並列の比較
• 分散並列 MapReduce vs. ローカル並列 カラム指向
 – Tuple のキー特性
                                        Row Group 1
  c1   c2   c3   c4
                                        c1       c2    c3   c4
  11   12   13   14
                                        11       12    13   14
  21   22   23   24
                                        21       22    23   24
  31   32   33   34
                                        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

                      (C) 2012 Microsoft Corporation             45
抽象データ(型)の応用
• 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
まとめ
• Big Data の次の基盤の重要な要素技術は何
  か?
 – CAP 定理
 – 分散システム
 – トランザクション、DB
 – プログラミング言語やツール(抽象化、最適化、
   設計ガイド)
 – H/W (SSD、ネットワーク)
 – 特許、IP
 – 皆さんの挑戦、知恵と協力

          (C) 2012 Microsoft Corporation   47

Mais conteúdo relacionado

Mais procurados

ceph acceleration and storage architecture
ceph acceleration and storage architectureceph acceleration and storage architecture
ceph acceleration and storage architectureYuki Kitajima
 
ネットワーク仮想化ソフトウェアMidoNet ユースケースとユーザメリット
ネットワーク仮想化ソフトウェアMidoNet ユースケースとユーザメリットネットワーク仮想化ソフトウェアMidoNet ユースケースとユーザメリット
ネットワーク仮想化ソフトウェアMidoNet ユースケースとユーザメリットMidokura
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーMasaya Ishikawa
 
20171207 VxRailチャンピオンクラブ_meetup_ネットワールド石塚
20171207 VxRailチャンピオンクラブ_meetup_ネットワールド石塚20171207 VxRailチャンピオンクラブ_meetup_ネットワールド石塚
20171207 VxRailチャンピオンクラブ_meetup_ネットワールド石塚VxRail ChampionClub
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月VirtualTech Japan Inc.
 
[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...
[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...
[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...Insight Technology, Inc.
 
20171207 VxRailチャンピオンクラブ meetup_dell emc 小野様
20171207 VxRailチャンピオンクラブ meetup_dell emc 小野様20171207 VxRailチャンピオンクラブ meetup_dell emc 小野様
20171207 VxRailチャンピオンクラブ meetup_dell emc 小野様VxRail ChampionClub
 
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...Insight Technology, Inc.
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Takehiro Kudou
 
Try andstudy cloud_20111108_tokyo
Try andstudy cloud_20111108_tokyoTry andstudy cloud_20111108_tokyo
Try andstudy cloud_20111108_tokyoEtsuji Nakai
 
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向についてYasunori Goto
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Yukio Kumazawa
 
NUCで始めるVMware Tanzu
NUCで始めるVMware TanzuNUCで始めるVMware Tanzu
NUCで始めるVMware TanzuHirotaka Sato
 
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoyaインフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 NagoyaSatoshi Shimazaki
 
Azure vm usacase and value.1.0.20.0618
Azure vm usacase and value.1.0.20.0618 Azure vm usacase and value.1.0.20.0618
Azure vm usacase and value.1.0.20.0618 Ayumu Inaba
 
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウドOsc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウドSeiichiro Ishida
 
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月VirtualTech Japan Inc.
 

Mais procurados (20)

ceph acceleration and storage architecture
ceph acceleration and storage architectureceph acceleration and storage architecture
ceph acceleration and storage architecture
 
ネットワーク仮想化ソフトウェアMidoNet ユースケースとユーザメリット
ネットワーク仮想化ソフトウェアMidoNet ユースケースとユーザメリットネットワーク仮想化ソフトウェアMidoNet ユースケースとユーザメリット
ネットワーク仮想化ソフトウェアMidoNet ユースケースとユーザメリット
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
 
20171207 VxRailチャンピオンクラブ_meetup_ネットワールド石塚
20171207 VxRailチャンピオンクラブ_meetup_ネットワールド石塚20171207 VxRailチャンピオンクラブ_meetup_ネットワールド石塚
20171207 VxRailチャンピオンクラブ_meetup_ネットワールド石塚
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
 
[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...
[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...
[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...
 
20171207 VxRailチャンピオンクラブ meetup_dell emc 小野様
20171207 VxRailチャンピオンクラブ meetup_dell emc 小野様20171207 VxRailチャンピオンクラブ meetup_dell emc 小野様
20171207 VxRailチャンピオンクラブ meetup_dell emc 小野様
 
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
 
AppFormix勉強会資料
AppFormix勉強会資料AppFormix勉強会資料
AppFormix勉強会資料
 
Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302Openstack neutron vtjseminar_20160302
Openstack neutron vtjseminar_20160302
 
Try andstudy cloud_20111108_tokyo
Try andstudy cloud_20111108_tokyoTry andstudy cloud_20111108_tokyo
Try andstudy cloud_20111108_tokyo
 
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
 
NUCで始めるVMware Tanzu
NUCで始めるVMware TanzuNUCで始めるVMware Tanzu
NUCで始めるVMware Tanzu
 
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoyaインフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
インフラエンジニアなら知っておきたいストレージのはなし@OSC 2012 Nagoya
 
Azure vm usacase and value.1.0.20.0618
Azure vm usacase and value.1.0.20.0618 Azure vm usacase and value.1.0.20.0618
Azure vm usacase and value.1.0.20.0618
 
5分で分かるBig Switch Networks
5分で分かるBig Switch Networks5分で分かるBig Switch Networks
5分で分かるBig Switch Networks
 
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウドOsc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
 
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
 

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

2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)Takahiro Shinagawa
 
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]David Buck
 
ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発Junji Imaoka
 
CDPを搭載し、最小RPOの複製まで進化したNetBackupのプライマリレプリケーション、その実力を見極めよう
CDPを搭載し、最小RPOの複製まで進化したNetBackupのプライマリレプリケーション、その実力を見極めようCDPを搭載し、最小RPOの複製まで進化したNetBackupのプライマリレプリケーション、その実力を見極めよう
CDPを搭載し、最小RPOの複製まで進化したNetBackupのプライマリレプリケーション、その実力を見極めようvxsejapan
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)Akihiro Kuwano
 
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~Iwasaki Noboru
 
【クラウド連携セミナー GCP編】クラウドへの「移行」+「データ保護」ソリューション紹介
【クラウド連携セミナー GCP編】クラウドへの「移行」+「データ保護」ソリューション紹介【クラウド連携セミナー GCP編】クラウドへの「移行」+「データ保護」ソリューション紹介
【クラウド連携セミナー GCP編】クラウドへの「移行」+「データ保護」ソリューション紹介株式会社クライム
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesTaiki
 
xDB Replication ブローシャー
xDB Replication ブローシャーxDB Replication ブローシャー
xDB Replication ブローシャーYuji Fujita
 
CometPub20070223
CometPub20070223CometPub20070223
CometPub20070223Hiroshi Ono
 
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 SpringIntroduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 SpringGo Chiba
 
Hadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたHadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたRecruit Technologies
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Wataru Fukatsu
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~じゅん なかざ
 
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較griddb
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理junichi anno
 
WebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample updateWebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample updatemganeko
 

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

Hadoop
HadoopHadoop
Hadoop
 
2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)
 
NATS on VCAP
NATS on VCAPNATS on VCAP
NATS on VCAP
 
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
 
Perl Ocean
Perl OceanPerl Ocean
Perl Ocean
 
ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発
 
CDPを搭載し、最小RPOの複製まで進化したNetBackupのプライマリレプリケーション、その実力を見極めよう
CDPを搭載し、最小RPOの複製まで進化したNetBackupのプライマリレプリケーション、その実力を見極めようCDPを搭載し、最小RPOの複製まで進化したNetBackupのプライマリレプリケーション、その実力を見極めよう
CDPを搭載し、最小RPOの複製まで進化したNetBackupのプライマリレプリケーション、その実力を見極めよう
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
 
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
 
【クラウド連携セミナー GCP編】クラウドへの「移行」+「データ保護」ソリューション紹介
【クラウド連携セミナー GCP編】クラウドへの「移行」+「データ保護」ソリューション紹介【クラウド連携セミナー GCP編】クラウドへの「移行」+「データ保護」ソリューション紹介
【クラウド連携セミナー GCP編】クラウドへの「移行」+「データ保護」ソリューション紹介
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
 
xDB Replication ブローシャー
xDB Replication ブローシャーxDB Replication ブローシャー
xDB Replication ブローシャー
 
CometPub20070223
CometPub20070223CometPub20070223
CometPub20070223
 
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 SpringIntroduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 Spring
 
Hadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたHadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみた
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
 
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理
 
WebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample updateWebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample update
 

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

  • 2. 目的 • クラウドの分散システムや大規模データベー ス技術の発展の歴史、現在の動向、将来の方 向性 – CAP 定理の制約をどのように克服しているか – 可用性技術がどのように保証されているか – OLTP が分散システムでどう拡張されたか – 開発手法として考えていくべき課題と対応は何か – Big Data の次の基盤の重要な要素技術は何か (C) 2012 Microsoft Corporation 2
  • 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
  • 5. 分散システム再評価の背景 • Hadoop で分散プログラミングモデルが普及 • クラウドの普及で可用性確保で fault-tolerance が必要 • ZooKeeper のような OSS のサービス部品の再利用可能性 • 1970年代のトランザクションが1980年代のグループコミュニケー ションで進化 – さらに、HTTP/XML から WebSockets で分散が再興。双方向と提案型 – 特許有効期間は20年 • Big Data で、データ分析基盤のフロントの更新系サービスで分散シ ステムの利用 – 分析対象の収集のためのサービス化を考える – フロントでのソーシャルのタイムラインの一貫性など、可用性と応答時 間のバランスを考えることが重要視される • serializability による証明可能化、形式化 (C) 2012 Microsoft Corporation 5
  • 6. 分散システムとは何か • 確実な障害検出ができない – 単なるネットワークの遅延なのか、相手の障害なのか • その前提で以下の機能が求められる – 複製の一貫性のための合意 – リーダー障害時のリーダーの選出(合意) – 参加メンバーのリストの合意 – 分散排他制御 – それらのリカバリー、再構成を含むアルゴリズム、プロトコル • 原子的ブロードキャストプロトコル • ベクタークロック • 障害検出器 • 分散プロトコルの証明 – 障害モデルの前提(転送の信頼性、非同期性、Fail-stop/Byzantine、 認証) – Safety、liveness の証明 – 障害検出器とクロック (C) 2012 Microsoft Corporation 6
  • 7. 分散システムの難しさ • elastic なリソース管理、再構成定義 – 負荷に応じて – 障害に応じて、リカバリー • 構成変更中も動作を止めない – 複数のラウンドに分割(ビュー/バロット/エポックの同期) • 複合障害への対応 – SPOF の許容度 – 障害モデルごとの対応 • 各種要素のバランスでアルゴリズム、プロトコルを選択 – 可用性/信頼性の要求、スループット、応答時間、再構成可能とリカバ リーの完了期間、一貫性の調整、リソースの消費量(ネットワーク帯 域、ディスク帯域、ディスクI/O 回数など)= コスト – 多様なアルゴリズム、プロトコルから選択、システム化 – テストなど、エンジニアリング的な解決が難しい – 形式手法化: correctness criteria (C) 2012 Microsoft Corporation 7
  • 8. 分散システムの適用 • 複製への適用 – Group safety • OLTP への適用 – 2PC に代わる atomic broadcast + ローカルト ランザクション – Paxos コミット – Serializability の拡張 • スケジューリングやリソース管理 – HadoopDB (C) 2012 Microsoft Corporation 8
  • 9. CAP 定理 Revisited • Consistency: すべてのクライアントは変更があっても同一の ビューを見る • Availability: すべてのクライアントは障害が発生しても、データ のいくつかの複製を発見することができる • Partition-tolerance: (分散)システムはネットワークが切断さ れても、その特性を維持する • 制約: – Partition-tolerance に着目しているサービス提供者向け – Latency の考慮がない – 障害モードでの補償処理をどう考えるか – 必要に応じて ACID、合意プロトコルにより一貫性を取る考え方へ (C) 2012 Microsoft Corporation 9
  • 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
  • 13. データベースの安全性基準 安全性の基準 配送される コミットされ 説明 サーバ数 たサーバ数 無処理 ゼロ ゼロ 0-safety 1 ゼロ トランザクションは1つのサーバに配送され、実行され たがまだコミットはされない。ストレージにトランザク ションの結果が永続化される前にクラッシュすると、ト ランザクションは失われる 1-safety 1 1 トランザクションは1つのサーバに配送され、コミット された。そのトランザクションが他のサーバに送信され る前にクラッシュするとトランザクションは失われる可 能性がある。他のサーバは先のトランザクションの存在 を知らないので、そのトランザクションと衝突する新た な別トランザクションを受け付けられる場合にトランザ クションは失われる Group-safety すべて ゼロ トランザクションはすべてのサーバに配送されるがまだ コミットはしていない。f(0<f<すべて)個以上のサー バがクラッシュすると、トランザクションは失われる Group-safetyか すべて 1 トランザクションはすべてのサーバに配送され、1つの つ1-safety サーバでコミットされた。f個のサーバかつトランザク (group-1- ションをコミットした1つのサーバがクラッシュすると、 safety) トランザクションは失われる可能性がある。データベー スとグループ通信機構を組み合わせたレプリケーション の大部分はここに属する 2-safety すべて すべて トランザクションはすべてのサーバに配送され、コミッ トされた。トランザクションが失われることはない (C) 2012 Microsoft Corporation 13
  • 14. 現状の複製技術 • Primary-backup • Update-anywhere • Master-slave から cohort単位の複製へ Zookeeper Node A Node B Node C Node D Node E key ranges key ranges key ranges key ranges key ranges [0,199] [200,399] [400,599] [600,799] [800,999] [800,999] [0,199] [200,399] [400,599] [600,799] [600,799] [800,999] [0,199] [200,399] [400,599] (C) 2012 Microsoft Corporation 14
  • 15. Primary-Backup プロトコル Alsberg-Day Protocol (C) 2012 Microsoft Corporation 15
  • 16. 全順序化 • P-B の順序化の例 – viewstamped replication • 順序化しないと合意が必要な例 – 楽観的レプリケーション 出典: Optimistic Replication (Shapiro, Saito) (C) 2012 Microsoft Corporation 16
  • 17. ROWA (Read One Write All) W=N R=1 読み取りに最適化した強い一貫性 W=1 R=N 書き込みに最適化した強い一貫性 W+R<=N eventual consistency 古いデータの読み取りがありえる W+R>N quorum assembly による強い一貫性。読み取りには少なく とも1つの最新データの複製を含む Read quorum Replica Replica Replica Manger Manger Manger Client Front End Replica Replica Replica Manger Manger Manger Front Client End Replica Replica Manger Manger Write quorum (C) 2012 Microsoft Corporation 17
  • 18. Quorum (定足数) • Read quorum(RQ) と Write quorum(WQ) の規則 • |RQ|+|WQ|>N (Read と Write set は重なる) • |WQ|>N/2 (2つの Write set は重なる) • Quorum consensus • CC とは独立、回復プロトコル不要 • ROWA との比較 • P-B と ROWA の中間の特徴 • これからの位置づけ – Byzantine 障害 – 負荷分散 – 契約の一種 (C) 2012 Microsoft Corporation 18
  • 19. データ配置 • Rack aware – HDFS, MapR • Geo replication – DHT • いろいろな一貫性モデルがありえる – ビジネスにどれが適切か? 出典: Geo-Replication in Large-Scale Cloud Computing Applications (C) 2012 Microsoft Corporation 19
  • 20. Replicated State Machine • 状態マシン – 状態マシンを壊す要因 • Paxos – Leader と primary の違い – Learner は合意結果を知らない – 複数の leader の実行と競合 – 1 leader による複数要求の同時実行 – Batching と Pipeline (C) 2012 Microsoft Corporation 20
  • 21. Basic Paxos (1) 複製(状態マシン) Read フェーズ Write フェーズ 提案番号(バロット ID) 複製への反映 過半数 (C) 2012 Microsoft Corporation 21
  • 22. Basic Paxos (2) 複製は合意結果を知らない 障害が疑われると複数の Leader を立てられる(弱い障害検知) 提案番号を大きくする (C) 2012 Microsoft Corporation 22
  • 23. Basic Paxos (3) 複数 Leader 間の競合 (C) 2012 Microsoft Corporation 23
  • 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
  • 28. Paxos コミット • TM が Paxos を使い RM の合意を取る • 2F+1 個のアクセプター (~2F+1 個の TMs) • 各 RM は prepare 要求に応答 • If F+1 個のアクセプターがすべての RMs が prepared 状態 になったと確認するとトランザクションをコミット • 2F(N+1) + 3N + 1 回のメッセージ • 5 回のメッセージ遅延 Commit Acceptors (1回余計の遅延) RM0 Leader RM0…N 0…2F 2回の永続化 • F=0 なら 2PC と同じ (C) 2012 Microsoft Corporation 28
  • 29. Vertical Paxos Paxos グループ Paxos グループ 構成要素1 構成要素2 耐障害性、可用性、スケーラビリティ 遅延、運用コストなどを基準に選択 分散システム プロセスメンバー (C) 2012 Microsoft Corporation 29
  • 31. 動的プロセスグループ (C) 2012 Microsoft Corporation 31
  • 32. ビューの同期(1) (C) 2012 Microsoft Corporation 32
  • 33. ビューの同期(2) (C) 2012 Microsoft Corporation 33
  • 34. ビューの同期(3) (C) 2012 Microsoft Corporation 34
  • 35. 2PC に代わる atomic broadcast 2PC に代わり分散システムのメッセージング 受信と配送の分離 ACID の一貫性と永続化が同時に実行される トランザクション リソース クライアント マネージャ read/write 毎 (ROWA) トランザクション毎 ローカル トランザクション の serializability トランザクションデータ操作 Read-only トランザクション commit/abort のアボート (C) 2012 Microsoft Corporation 35
  • 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
  • 42. 最適化の方法 • スケーラブルアーキテクチャーの原則 • MapReduce の最適化 – Data Intensive Scalable Computing アーキ テクチャースタイルの一例 (C) 2012 Microsoft Corporation 42
  • 43. スケーラブルアーキテクチャーの 原則 データ分割による競合防止 メモリ上の効率利用 分類→分割→配置→集約 index データ構造アクセス ホットスポットの回避 遅延永続化 データ偏在の解決 転送効率化 Co-location、転送プロトコル 簡易検査、圧縮などデータ量の削減 負荷分散 非同期による時間差 並列可能箇所の並列実行 時間順序保証の上 (C) 2012 Microsoft Corporation 43
  • 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
  • 45. 並列の比較 • 分散並列 MapReduce vs. ローカル並列 カラム指向 – Tuple のキー特性 Row Group 1 c1 c2 c3 c4 c1 c2 c3 c4 11 12 13 14 11 12 13 14 21 22 23 24 21 22 23 24 31 32 33 34 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 (C) 2012 Microsoft Corporation 45
  • 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
  • 47. まとめ • Big Data の次の基盤の重要な要素技術は何 か? – CAP 定理 – 分散システム – トランザクション、DB – プログラミング言語やツール(抽象化、最適化、 設計ガイド) – H/W (SSD、ネットワーク) – 特許、IP – 皆さんの挑戦、知恵と協力 (C) 2012 Microsoft Corporation 47