SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
平成23年度生命情報科学科

生物データベース論
スケーラビリティと可用性
    (9/13)
        笠原 雅弘
   mkasa@cb.k.u-tokyo.ac.jp
東京大学 大学院新領域創成科学研究科
     情報生命科学専攻
公開版作成にあたって
• 以下の事項は仕様です。
 – 音声はありません。
 – 授業中に判明した typo 等は修正しました。
   多少加筆しています。
 – 字が細かいのは、この資料単独で自習できるように
   授業中はスライドに書かず喋った部分などを追加し
   ているからです。
 – アニメーションを解除するために、パラパラ漫画的な
   冗長なスライドが増えています。
• 間違い・提案・コメントなどがありましたらメール
  やコメント欄で連絡を下さい。歓迎です。
Table of Contents
• スケールアップとスケールアウト
• スケールアウトに向けたいくつかの技術
 – レプリケーション
 – シャーディング
• CAP定理
Table of Contents
• スケールアップとスケールアウト
• スケールアウトに向けたいくつかの技術
 – レプリケーション
 – シャーディング
• CAP定理
スケールアップとスケールアウト
   強力なサーバーに置き換える                 データベース
   (スケールアップ;費用対効果イマイチ;
    わりとどんな問題でも対応可)                サーバー

                   クライアント                               クライアント
   データベース                               クライアント
    サーバー             クライアント                            クライアント


クライアント                   台数を増やして頑張る(スケールアウト;
                         比較的安いが対処できない問題も。)
         クライアント
                      データベース         データベース       データベース
                       サーバー           サーバー         サーバー


                   クライアント            クライアント        クライアント
                                                            クライアント
                            クライアント            クライアント
スケールアップ 個々のサーバーを
        高く能力の高いものに置き
        換える
スケールアウト サーバーの台数を増やして
        全体として能力を高める
スケールアップとスケールアウト
   強力なサーバーに置き換える                 データベース
   (スケールアップ;費用対効果イマイチ;
    わりとどんな問題でも対応可)                サーバー

                   クライアント                               クライアント
   データベース               スケールアップは「高いサーバー買い
                               クライアント
    サーバー                 ましょう」で終わってしまって3時間も
                     クライアント            クライアント
                        話せないのでスケールアウトの話を。

クライアント                   台数を増やして頑張る(スケールアウト;
                         比較的安いが対処できない問題も。)
         クライアント
                      データベース         データベース       データベース
                       サーバー           サーバー         サーバー


                   クライアント            クライアント        クライアント
                                                            クライアント
                            クライアント            クライアント
Table of Contents
• スケールアップとスケールアウト
• スケールアウトに向けたいくつかの技術
 – レプリケーション
 – シャーディング
• CAP定理
レプリケーション
• 同じデータを複数のサーバーにあらかじめ
  複製しておき、ユーザーリクエストを捌く。
  – スケールアウトの基本テクニック。
  – n台のサーバーがあれば、おおむねn倍の数の
    クライアントからの問い合わせに返事ができるだろう。
             レプリケーション               実際にはモノによる



    データA                データA         データA


クライアント            クライアント        クライアント

         クライアント            クライアント        クライアント
レプリケーションの例1
• アクセス数が非常に多いWebサーバー。
                                                   数日後、キャッシュサーバで
                          原発事故直後                   大規模レプリケーションを実施
    平常時
                                TEPCO
                              ホームページ
      TEPCO
    ホームページ

                  人                     人   人
                          人       人
人             人                             人
                      人       人       人
アクセスまばら

                  人       人       人         人
                  アクセス殺到でなかなか
                  繋がらない
                                      ※本当はAkamaiでもっと複雑なことをやっていたが説明のために超簡略化
ラウンドロビンDNSとロードバランサー
• 不特定の閲覧者を複数のWebサーバーに
  割り振る仕組み。(Webでなくともよい。)
 ラウンドロビンDNS                             ロードバランサー
                 www.example.com:        Web    Web     Web
   DNSサーバー
                 1.2.3.45               サーバ    サーバ     サーバ
                 1.2.3.46   1クエリ
                 1.2.3.47
                            毎に
                 1.2.3.48
                 1.2.3.49   回転
                 1.2.3.50
                                          ロードバランサー
   人



             人                      人     人    人   人   人
レプリケーションで耐故障性もアップ
       TEPCO                   TEPCO                      TEPCO
     ホームページ                  ホームページ                     ホームページ




人               人   人   人               人     人   人                人   人
    人       人               人       人                  人       人
                    人                        人                         人
人       人       人       人       人       人          人       人       人


                                                  あ、サーバー壊れた
       TEPCO                            ハードディスク
     ホームページ                               壊れた




人               人   人           人                   人
                                                 人DNS/ロードバランサーを
    人       人                           人     人   操作して他のサーバー
                    人                              人
人       人       人                   人       人   人   に行ってもらおう!
レプリケーションの例2
• アクセス数が非常に多いWebサーバー。
                                                     中身を返すだけでなくて
      Google
       検索
                                        Google
                                         検索
                                                     検索演算も行うので、
                       Google                        単純なウェブサーバーより
                        検索
  人            人                    人            人   負荷は高い。
       人                                 人
                                                      www.google.co.jp の IP 引き結果
                   人            人
                        人


アクセス元IPから地域を割り出し近い地域
のサーバーのIPを返す。ラウンドロビンDNS
を駆使して何台ものロードバランサーに振り
分けている。多分ロードバランサーの裏側に
何百台ものウェブサーバーが居る。
Google が人によって違う答えを
「シュミレーション」で
            返す理由
検索したら7,240,000                                                        Google
  件もあった!                                                              検索DB
                                         コピーが終わった                     マスター

A           えー、ぼくが検索する
            と 6,800,000件しか無              Google
                                          検索
              いんだけど・・・。
                              B                              まだ最新データは
     細かいことは                          人              人        コピー中
    気にするなって!
    誤差だよ誤差。                       シュミレーション       7,240,000
                                                             Google
                                             A                検索
A              コンピューターで
               誤差ってなんだよ
                誤差って!                                    人            人
                              B
Google 検索は、一貫性(Consistency)は保証していないので、            シュミレーション         6,800,000
 検索しにいったサーバーが違えば違う数字が出ることもある
                                                               B
    外野
Eventual Consistency
                                                                        Google
                                                                        検索DB
          レプリケーションした                         コピーが終わった                   マスター

          サーバー間でちょっと
          ぐらいは違うデータを                         Google
                                              検索
          返すのは仕方ない。
          どうせコピーが終わる
                                                               まだ最新データは
          まで待てばいつかは                      人             人       コピー中
          結果も同じになるし。
                                    シュミレーション       7,240,000
                                                               Google
                                               人                検索
このような「待てばいつかは誰から見て
も同じデータになるよ。」というタイプの
一貫性のことを“Eventual Consistency”                              人            人
(結果整合性)と呼ぶ。
                                                      シュミレーション       6,800,000
例には出したが Google が本当に Eventual Consistency を
満たしているかどうかは知らない。あくまで例である。                                        人
レプリケーションの例3
• ヒトゲノムから疾患関連遺伝子を見つける。
遺伝病Xに
罹っている人                 Shotgun
                        reads
                DNAを抽出して
遺伝病Xに            ショットガン          参照ゲノムに
罹っていない人         シークエンシング         アラインメント




            遺伝病Xの原因
            となった遺伝子
            変異を見つける。
計算の一例
ヒトゲノムの resequencing 解析。Illumina GA で読んだ paired-end のデータから SNV を call。

            Illumina GA                            Illumina GA
              PE read 1                              PE read 2

             splitreads                            splitreads


 rd1 1/3      rd1 2/3     rd1 3/3       rd2 1/3     rd2 2/3       rd2 3/3   Human Ref.
                                                                             Genome
  bwa           bwa        bwa           bwa          bwa          bwa


 sai1 1/3     sai1 2/3    sai1 3/3      sai2 1/3    sai2 2/3     sai2 3/3


            bwa pe                  bwa pe              bwa pe

            sam 1/3              sam 2/3                sam 3/3

           この先に本当はもっと長い計算パイプラインがあるが省略。
• リードをいくつかに分割してそれぞれ独立に
  並列アラインメントしたい
 – このような(何の工夫も要らない単純な)並列を
   Embarrassingly Parallel (EP) と言う。

             1G-Ethernet の速度ではヒトゲノム配列のコピーに30秒。
  ファイルサーバー   リードを100分割して100台のマシンでアラインメントすると
  リード配列全体    1時間近くがヒトゲノムのコピーに消費される。
   ヒトゲノム配列
                          遅い          遅い

              計算ノード1      計算ノード2      計算ノード3
              ヒトゲノム配列     ヒトゲノム配列     ヒトゲノム配列

              リードの一部#1    リードの一部#2    リードの一部#3


              アラインメント#1   アラインメント#2   アラインメント#3


                   ※実際には圧縮してコピーするとか、もう少しマシな手がある。
ファイルサーバー
         リード配列全体
                     n台で計算するとヒトゲノムのコピーがn回発生。
                     n が大きくネットワークが遅いときには致命的に。
          ヒトゲノム配列
                                 遅い          遅い

                     計算ノード1      計算ノード2      計算ノード3
                     ヒトゲノム配列     ヒトゲノム配列     ヒトゲノム配列

                    リードの一部#1    リードの一部#2    リードの一部#3


                    アラインメント#1   アラインメント#2   アラインメント#3
 レプリケーション無し
 レプリケーション有り         ファイルサーバー1   ファイルサーバー2   ファイルサーバー3
                    リード配列全体     リード配列全体     リード配列全体
       ヒトゲノム配列が
ショットガンリードを分割して
                     ヒトゲノム配列     ヒトゲノム配列     ヒトゲノム配列
       レプリカから読め
並列にアラインメントしたい。
      るので高速に。
                     計算ノード1      計算ノード2      計算ノード3
                     ヒトゲノム配列     ヒトゲノム配列     ヒトゲノム配列

                    リードの一部#1    リードの一部#2    リードの一部#3


                    アラインメント#1   アラインメント#2   アラインメント#3
レプリケーションの例4
  • Google File System, Gfarm, GlusterFS, Amazon S3 のような
    ファイルシステムでは、ファイルをレプリケーションすること
    でスループットの向上や耐故障性向上を狙っている。
                                       レプリカは
                                      2~4個が普通
 ファイルサーバー1   ファイルサーバー2   ファイルサーバー3   ファイルサーバー4     ファイルサーバー5
   ファイルA                               ファイルA         ファイルA

   ファイルB                   ファイルB       ファイルB

               ファイルC       ファイルC                     ファイルC

   ファイルD       ファイルD                   ファイルD



  故障
ファイルサーバー1       計算ノード1
が壊れてるけど、使                                 計算ノード2
わなければいいだけ。
レプリケーションの例4
 • Google File System, Gfarm, GlusterFS, Amazon S3 のような
   ファイルシステムでは、ファイルをレプリケーションすること
   でスループットの向上や耐故障性向上を狙っている。

ファイルサーバー1   ファイルサーバー2   ファイルサーバー3    ファイルサーバー4   ファイルサーバー5
  ファイルA                   ファイルA        ファイルA       ファイルA

  ファイルB                   ファイルB        ファイルB       ファイルB

              ファイルC       ファイルC                    ファイルC

  ファイルD       ファイルD       ファイルD        ファイルD



 故障
                                  レプリカの数が足りなくなったら
                                  ファイルを複製してファイルの数を
                                  一定に保つように努力する。
Table of Contents
• スケールアップとスケールアウト
• スケールアウトに向けたいくつかの技術
 – レプリケーション
 – シャーディング
• CAP定理
シャーディング
• データを複数の範囲に分割して各々を別々の
  サーバーで処理する。
  – 「範囲」の決め方は様々
      • ユーザーIDの範囲、日付の範囲、金額の範囲、
        居住地域の範囲、組織の範囲、・・・ etc.

                     部門別にメールサーバーを     X部門向け
                                      メールサーバー
                     分割してシャーディング
         メール
        サーバー                    社員A               社員C
                                          社員B

社員A                  社員E
                                      Y部門向け
  社員B          社員D                    メールサーバー

        社員C
                                    社員D         社員E
シャーディングと
            リレーショナルモデル
   • シャーディングは水平パーティーションとも
     呼ばれ、関係モデルを水平に分割する。

          日付           部門ID   購入ID      商品ID        数量   合計価格

2007年担当   2007/1/18      181 01326141   26F-00132    2     15,800
サーバー
          2007/2/28      181 01326188   27W-00101    5      8,000
2008年担当   2008/1/10      181 01341201   23C-00089    1     23,800
サーバー      2008/9/8       181 01349254   25F-00141    3      4,800
2009年担当   2009/5/4       181 01392164   23C-00089    1     20,800
サーバー      2009/11/19     181 01412004   27W-00101    3      4,800
シャーディングの例1
• DeNA社のモバゲータウン
  (1日23億ページ・ビュー)

                                               [もはや “タダ” が常識に?携帯電話ゲームに押し寄せる
                                               無料化の波;日経 BP Net]




                                              ユーザーIDのハッシュ値から
                                              600台のMySQLサーバーから1台を
                                              選んでアバター画像を問い合わせ。

                                              ハッシュ値を使うことで600台のどの
                                              Webサーバーからも同じMySQL
                                              サーバーに問い合わせに行ける。
  [600億PVもMySQLで! モバゲーのインフラ底力; @IT Special]
シャーディングの例2
• Gmail (Google社のe-メールサービス)
   – シャーディングの単位はユーザーアカウント
          • ユーザーIDが決まると使用するメールサーバー(群)が決まる
   – レプリケーションと併用して耐故障性をアップ
          • 図では3レプリカだが実際は4つだったかも?

メールサーバー1     メールサーバー2         メールサーバー3            メールサーバー4           メールサーバー5
  ユーザーA                                              ユーザーA              ユーザーA

  ユーザーB                          ユーザーB               ユーザーB

               ユーザーC             ユーザーC                                  ユーザーC

  ユーザーD        ユーザーD                                 ユーザーD



           ※分散ファイルシステムの例と非常に似ているが、分散ファイルシステムは
            ファイル単位のシャーディングとも見なせる。

                こういうシステムを深く勉強したい人は [Baker et al., Megastore: Providing Scalable,
                Highly Available Storage for Interactive Services, CIDR 2011] を読むべし。
Table of Contents
• スケールアップとスケールアウト
• スケールアウトに向けたいくつかの技術
 – レプリケーション
 – シャーディング
• CAP定理
Table of Contents
• スケールアップとスケールアウト
• スケールアウトに向けたいくつかの技術
 – レプリケーション
 – シャーディング
• CAP定理
CAP theorem
• 分散システムでは以下の3つを同時に満たす
  ことはできないという定理(Brewerの定理)。
                         証明したのは Seth Gilbert & Nancy Lynch だけどね・・・。
 – Consistency
    • データの更新があっても全てのクライアントが同じ
      データを見ることができること。
 – Availability
    • 障害の無いノードにデータ読出/書込要求が来たら
      有限の時間内に操作を完了して返事をすることができ
      ること。
 – Partition tolerance
    • ネットワークがどのように(部分的に)故障して任意の
      ノード間の通信が壊れても動作が続けられること。
CAP theorem
• 分散システムでは以下の3つを同時に満たす
  ことはできないという定理(Brewerの定理)。
                         証明したのは Seth Gilbert & Nancy Lynch だけどね・・・。
 – Consistency
    • データの更新があっても全てのクライアントが同じ
      データを見ることができること。
 – Availability
    • 障害の無いノードにデータ読出/書込要求が来たら
      有限の時間内に操作を完了して返事をすることができ
      ること。
 – Partition tolerance
    • ネットワークがどのように(部分的に)故障して任意の
      ノード間の通信が壊れても動作が続けられること。
Consistency
     全てのクライアントから同じものが見えること。
                                      レプリケーション

                               データA            データA



 データAを                   クライアント            クライアント
 データBに                Aを貰った                 Aを貰った
                                  クライアント            クライアント
 更新                                                          Aを貰った
                                   Aを貰った


                               データB            データB


Consistency              クライアント            クライアント
       データの更新があっても全                         Bを貰った
       てのクライアントが同じ     Bを貰った
       データを見ることができる
                                  クライアント            クライアント
       こと。                                               Bを貰った
                                  Bを貰った
Google が人によって違う答えを
                  返す理由
                                                                            Google
       「シュミレーション」で                                                          検索DB
                                               コピーが終わった                     マスター
       検索したら7,240,000
         件もあった!
                                               Google
   Consistent                                   検索

    でない               えー、ぼくが検索する                                   まだ最新データは
                      と 6,800,000件しか無      人              人        コピー中
                        いんだけど・・・。
                                        シュミレーション       7,240,000
                                                                   Google
       細かいことは気にす                                   人                検索

       るなって!誤差だよ
          誤差。
                                                               人            人
                       コンピューターで
Consistency
       データの更新があっても全
                       誤差ってなんだよ                         シュミレーション        6,800,000
       てのクライアントが同じ      誤差って!
       データを見ることができる                                                 人
       こと。
CAP theorem
• 分散システムでは以下の3つを同時に満たす
  ことはできないという定理(Brewerの定理)。
                         証明したのは Seth Gilbert & Nancy Lynch だけどね・・・。
 – Consistency
    • データの更新があっても全てのクライアントが同じ
      データを見ることができること。
 – Availability
    • 障害の無いノードにデータ読出/書込要求が来たら
      有限の時間内に操作を完了して返事をすることができ
      ること。
 – Partition tolerance
    • ネットワークがどのように(部分的に)故障して任意の
      ノード間の通信が壊れても動作が続けられること。
レプリケーションの例1(再)
    • アクセス数が非常に多いWebサーバー。
                                                       数日後、キャッシュサーバで
                              原発事故直後
                                                       大規模レプリケーションを実施
       平常時
                                    TEPCO
                                  ホームページ
         TEPCO
       ホームページ

                      人                     人   人
                              人       人
   人             人                              人
                          人       人       人
    アクセスまばら

                      人       人       人         人
Availability
       障害の無いノードにデータ
       読出/書込要求が来たら
                      アクセス殺到でなかなか
       有限の時間内に操作を完    繋がらない
       了して返事をすることがで
       きること。                              ※本当はAkamaiでもっと複雑なことをやっていたが説明のために超簡略化
レプリケーションの例1 (再)
    • アクセス数が非常に多いWebサーバー。
                                                         数日後、キャッシュサーバで
                              原発事故直後
                                                         大規模レプリケーションを実施
       平常時
                                    TEPCO
                                  ホームページ
         TEPCO
       ホームページ

                      人                     人   人
                              人       人
   人             人
                          人       人       人
                                                人
                                                                         故障
    アクセスまばら
                                                      1台故障しても
                      人       人       人         人
Availability                                         ウェブページは
       障害の無いノードにデータ
                      アクセス殺到でなかなか                     見られるので
       読出/書込要求が来たら
       有限の時間内に操作を完    繋がらない                         Availabilityがある。
       了して返事をすることがで
       きること。                              ※本当はAkamaiでもっと複雑なことをやっていたが説明のために超簡略化
シャーディングの例2(再)
    • Gmail (Google社のe-メールサービス)
        – シャーディングの単位はユーザーアカウント
             • ユーザーIDが決まると使用するメールサーバー(群)が決まる
        – レプリケーションと併用して耐故障性をアップ
             • 図では3レプリケーションだが実際は確か4つ。

     故障
   メールサーバー1
                      故障
                  メールサーバー2    メールサーバー3                メールサーバー5
                                          メールサーバー4
     ユーザーA                                 ユーザーA        ユーザーA

     ユーザーB                      ユーザーB      ユーザーB

                      ユーザーC     ユーザーC                   ユーザーC

     ユーザーD            ユーザーD                ユーザーD


                              メール削除いける?
Availability
                                    メール番号
       障害の無いノードにデータ                                レプリカが音信不通
       読出/書込要求が来たら                  1435132を
       有限の時間内に操作を完                                 なので今は無理です。
       了して返事をすることがで
                                    削除してよ!
       きること。
                                               人
CAP theorem
• 分散システムでは以下の3つを同時に満たす
  ことはできないという定理(Brewerの定理)
                         証明したのは Seth Gilbert & Nancy Lynch だけどね・・・。
 – Consistency
    • データの更新があっても全てのクライアントが同じ
      データを見ることができること。
 – Availability
    • 障害の無いノードにデータ読出/書込要求が来たら
      有限の時間内に操作を完了して返事をすることができ
      ること。
 – Partition tolerance
    • ネットワークがどのように(部分的に)故障して任意の
      ノード間の通信が壊れても動作が続けられること。
Partition tolerance とは何か?
• 直感的ないくつかの説明
 – システムをいくつかの部分に分割することができて、
   クライアントからメッセージが届いたときに誤った返答
   を返さないこと。
 – Partition tolerance が無いシステムは部分的な故障
   が許されていないか、または部分的な故障時に
   クライアントに誤ったメッセージを返すことがある。
レプリケーションの例で
               Partition Tolerance を説明
   • アクセス数が非常に多いWebサーバー

                  故            更新が無いとするとたとえば、
                  障            レプリカ間のネットワークが
                               故障しても問題がない。
              ノード間
                               ユーザーとの間のネットワーク
              通信網              が壊れたら問題だが、これは
                               どんなシステムでも明らかに
                               アクセス不能だし、定義中の
                               「任意のノード間」にユーザーと
Partition tolerance            の間は含まれていない。
       ネットワークがどのよう
       に(部分的に)故障して
       任意のノード間の通信
       が壊れても動作が続
       けられること。
シャーディングの例2(再)
                  ノード間
                  通信網
                                        故障

   メールサーバー1       メールサーバー2    メールサーバー3    メールサーバー4    メールサーバー5
     ユーザーA                                   ユーザーA      ユーザーA

     ユーザーB                      ユーザーB        ユーザーB

                      ユーザーC     ユーザーC                   ユーザーC

     ユーザーD            ユーザーD                  ユーザーD


                              メール削除いける?
Partition tolerance
       ネットワークがどのよう                  メール番号
       に(部分的に)故障して                                 レプリカが音信不通
                                    1435132を
       任意のノード間の通信                                  なので今は無理です。
       が壊れても動作が続
                                    削除してよ!
       けられること。
                                               人
CAP theorem (復習)
• 分散システムでは以下の3つを同時に満たす
  ことはできないという定理(Brewerの定理)。
 – Consistency
    • データの更新があっても全てのクライアントが同じ
      データを見ることができること。
 – Availability
    • 障害の無いノードにデータ読出/書込要求が来たら
      有限の時間内に操作を完了して返事をすることができ
      ること。
 – Partition tolerance
    • ネットワークがどのように(部分的に)故障して任意の
      ノード間の通信が壊れても動作が続けられること。
CAP定理を背理法で証明
                                   レプリケーション
                                     ノード間
                                     通信網               システムの通常動作は
                            データA            データA       このようになっている。
            データちょうだい         Aだよ            Aだよ      データちょうだい
                        クライアント                    クライアント

                                     ノード間
                                     通信網               Partition tolerance &
                             デーA            データA
                                                       Availability より返事できる
                                     故障     Aだよ      データちょうだい
                        クライアント                    クライアント


                                     ノード間
Partition tolerance &                通信網              右のサーバーからは上の
Availability より             データB            データA      ケースと区別が付かないが、
書き込みも可能                                               Consistency が壊れた■
            データBを書いて         B書いたよ   故障     Aだよ      データちょうだい
                    クライアント                        クライアント

Contenu connexe

Tendances

PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことKentaro Matsui
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSAkira Shimosako
 
Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Naotoshi Seo
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイントKentaro Matsui
 
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallAmazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallShinpei Ohtani
 
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...Insight Technology, Inc.
 
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3infinite_loop
 
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12MapR Technologies Japan
 
20111029 part1-dnsをあえてdisってみる-事後資料
20111029 part1-dnsをあえてdisってみる-事後資料20111029 part1-dnsをあえてdisってみる-事後資料
20111029 part1-dnsをあえてdisってみる-事後資料Yasuhiro Morishita
 
CDH4.1オーバービュー
CDH4.1オーバービューCDH4.1オーバービュー
CDH4.1オーバービューCloudera Japan
 
5分でわかる Apache HBase 最新版 #hcj2014
5分でわかる Apache HBase 最新版 #hcj20145分でわかる Apache HBase 最新版 #hcj2014
5分でわかる Apache HBase 最新版 #hcj2014Cloudera Japan
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase ReportSeiichiro Ishida
 
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
Amazon Redshift ベンチマーク  Hadoop + Hiveと比較 Amazon Redshift ベンチマーク  Hadoop + Hiveと比較
Amazon Redshift ベンチマーク Hadoop + Hiveと比較 FlyData Inc.
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門Hisashi HATAKEYAMA
 
Oracle Coherence勉強会
Oracle Coherence勉強会Oracle Coherence勉強会
Oracle Coherence勉強会Toshiaki Maki
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best PracticeHadoop / Spark Conference Japan
 

Tendances (20)

PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
 
DB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPSDB2をAWS上に構築する際のヒント&TIPS
DB2をAWS上に構築する際のヒント&TIPS
 
Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallAmazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
 
HBase at LINE
HBase at LINEHBase at LINE
HBase at LINE
 
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
 
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
 
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
 
20111029 part1-dnsをあえてdisってみる-事後資料
20111029 part1-dnsをあえてdisってみる-事後資料20111029 part1-dnsをあえてdisってみる-事後資料
20111029 part1-dnsをあえてdisってみる-事後資料
 
CDH4.1オーバービュー
CDH4.1オーバービューCDH4.1オーバービュー
CDH4.1オーバービュー
 
5分でわかる Apache HBase 最新版 #hcj2014
5分でわかる Apache HBase 最新版 #hcj20145分でわかる Apache HBase 最新版 #hcj2014
5分でわかる Apache HBase 最新版 #hcj2014
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase Report
 
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
Amazon Redshift ベンチマーク  Hadoop + Hiveと比較 Amazon Redshift ベンチマーク  Hadoop + Hiveと比較
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
 
Oracle Coherence勉強会
Oracle Coherence勉強会Oracle Coherence勉強会
Oracle Coherence勉強会
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
 
20111130 10 aws-meister-emr_long-public
20111130 10 aws-meister-emr_long-public20111130 10 aws-meister-emr_long-public
20111130 10 aws-meister-emr_long-public
 

Similaire à 生物データベース論(スケーラビリティと可用性)

泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - SORACOM, INC
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Masakazu Muraoka
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなしOonishi Takaaki
 
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~Iwasaki Noboru
 
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップAmazon Web Services Japan
 
Amazon RDS (MySQL) 入門
Amazon RDS (MySQL) 入門Amazon RDS (MySQL) 入門
Amazon RDS (MySQL) 入門Manabu Shinsaka
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめYasushi Hara
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例Amazon Web Services Japan
 
Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -真吾 吉田
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 
マルチデバイス時代の高速化
マルチデバイス時代の高速化マルチデバイス時代の高速化
マルチデバイス時代の高速化Shin Takeuchi
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたMasayuki Ozawa
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
お金をかけないDBチューニング
お金をかけないDBチューニングお金をかけないDBチューニング
お金をかけないDBチューニングKazuya Sato
 
Amazon Web Services 最新事例集
Amazon Web Services 最新事例集Amazon Web Services 最新事例集
Amazon Web Services 最新事例集SORACOM, INC
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~KLab株式会社
 
We Should Know About in this SocialNetwork Era 2011_1112
We Should Know About in this SocialNetwork Era 2011_1112We Should Know About in this SocialNetwork Era 2011_1112
We Should Know About in this SocialNetwork Era 2011_1112Masahito Zembutsu
 
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~kishimotosc
 

Similaire à 生物データベース論(スケーラビリティと可用性) (20)

泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 -
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし
 
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
 
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
[AWS Summit 2012] ソリューションセッション#2 リーンクラウドでいこう! クラウドで実現するリーンスタートアップ
 
Amazon RDS (MySQL) 入門
Amazon RDS (MySQL) 入門Amazon RDS (MySQL) 入門
Amazon RDS (MySQL) 入門
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
 
Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
Info talk #36
Info talk #36Info talk #36
Info talk #36
 
マルチデバイス時代の高速化
マルチデバイス時代の高速化マルチデバイス時代の高速化
マルチデバイス時代の高速化
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみた
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
お金をかけないDBチューニング
お金をかけないDBチューニングお金をかけないDBチューニング
お金をかけないDBチューニング
 
Amazon Web Services 最新事例集
Amazon Web Services 最新事例集Amazon Web Services 最新事例集
Amazon Web Services 最新事例集
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
 
We Should Know About in this SocialNetwork Era 2011_1112
We Should Know About in this SocialNetwork Era 2011_1112We Should Know About in this SocialNetwork Era 2011_1112
We Should Know About in this SocialNetwork Era 2011_1112
 
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
 

Dernier

ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 

Dernier (7)

ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 

生物データベース論(スケーラビリティと可用性)

  • 1. 平成23年度生命情報科学科 生物データベース論 スケーラビリティと可用性 (9/13) 笠原 雅弘 mkasa@cb.k.u-tokyo.ac.jp 東京大学 大学院新領域創成科学研究科 情報生命科学専攻
  • 2. 公開版作成にあたって • 以下の事項は仕様です。 – 音声はありません。 – 授業中に判明した typo 等は修正しました。 多少加筆しています。 – 字が細かいのは、この資料単独で自習できるように 授業中はスライドに書かず喋った部分などを追加し ているからです。 – アニメーションを解除するために、パラパラ漫画的な 冗長なスライドが増えています。 • 間違い・提案・コメントなどがありましたらメール やコメント欄で連絡を下さい。歓迎です。
  • 3. Table of Contents • スケールアップとスケールアウト • スケールアウトに向けたいくつかの技術 – レプリケーション – シャーディング • CAP定理
  • 4. Table of Contents • スケールアップとスケールアウト • スケールアウトに向けたいくつかの技術 – レプリケーション – シャーディング • CAP定理
  • 5. スケールアップとスケールアウト 強力なサーバーに置き換える データベース (スケールアップ;費用対効果イマイチ; わりとどんな問題でも対応可) サーバー クライアント クライアント データベース クライアント サーバー クライアント クライアント クライアント 台数を増やして頑張る(スケールアウト; 比較的安いが対処できない問題も。) クライアント データベース データベース データベース サーバー サーバー サーバー クライアント クライアント クライアント クライアント クライアント クライアント
  • 6. スケールアップ 個々のサーバーを 高く能力の高いものに置き 換える スケールアウト サーバーの台数を増やして 全体として能力を高める
  • 7. スケールアップとスケールアウト 強力なサーバーに置き換える データベース (スケールアップ;費用対効果イマイチ; わりとどんな問題でも対応可) サーバー クライアント クライアント データベース スケールアップは「高いサーバー買い クライアント サーバー ましょう」で終わってしまって3時間も クライアント クライアント 話せないのでスケールアウトの話を。 クライアント 台数を増やして頑張る(スケールアウト; 比較的安いが対処できない問題も。) クライアント データベース データベース データベース サーバー サーバー サーバー クライアント クライアント クライアント クライアント クライアント クライアント
  • 8. Table of Contents • スケールアップとスケールアウト • スケールアウトに向けたいくつかの技術 – レプリケーション – シャーディング • CAP定理
  • 9. レプリケーション • 同じデータを複数のサーバーにあらかじめ 複製しておき、ユーザーリクエストを捌く。 – スケールアウトの基本テクニック。 – n台のサーバーがあれば、おおむねn倍の数の クライアントからの問い合わせに返事ができるだろう。 レプリケーション 実際にはモノによる データA データA データA クライアント クライアント クライアント クライアント クライアント クライアント
  • 10. レプリケーションの例1 • アクセス数が非常に多いWebサーバー。 数日後、キャッシュサーバで 原発事故直後 大規模レプリケーションを実施 平常時 TEPCO ホームページ TEPCO ホームページ 人 人 人 人 人 人 人 人 人 人 人 アクセスまばら 人 人 人 人 アクセス殺到でなかなか 繋がらない ※本当はAkamaiでもっと複雑なことをやっていたが説明のために超簡略化
  • 11. ラウンドロビンDNSとロードバランサー • 不特定の閲覧者を複数のWebサーバーに 割り振る仕組み。(Webでなくともよい。) ラウンドロビンDNS ロードバランサー www.example.com: Web Web Web DNSサーバー 1.2.3.45 サーバ サーバ サーバ 1.2.3.46 1クエリ 1.2.3.47 毎に 1.2.3.48 1.2.3.49 回転 1.2.3.50 ロードバランサー 人 人 人 人 人 人 人
  • 12. レプリケーションで耐故障性もアップ TEPCO TEPCO TEPCO ホームページ ホームページ ホームページ 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 人 あ、サーバー壊れた TEPCO ハードディスク ホームページ 壊れた 人 人 人 人 人 人DNS/ロードバランサーを 人 人 人 人 操作して他のサーバー 人 人 人 人 人 人 人 人 に行ってもらおう!
  • 13. レプリケーションの例2 • アクセス数が非常に多いWebサーバー。 中身を返すだけでなくて Google 検索 Google 検索 検索演算も行うので、 Google 単純なウェブサーバーより 検索 人 人 人 人 負荷は高い。 人 人 www.google.co.jp の IP 引き結果 人 人 人 アクセス元IPから地域を割り出し近い地域 のサーバーのIPを返す。ラウンドロビンDNS を駆使して何台ものロードバランサーに振り 分けている。多分ロードバランサーの裏側に 何百台ものウェブサーバーが居る。
  • 14. Google が人によって違う答えを 「シュミレーション」で 返す理由 検索したら7,240,000 Google 件もあった! 検索DB コピーが終わった マスター A えー、ぼくが検索する と 6,800,000件しか無 Google 検索 いんだけど・・・。 B まだ最新データは 細かいことは 人 人 コピー中 気にするなって! 誤差だよ誤差。 シュミレーション 7,240,000 Google A 検索 A コンピューターで 誤差ってなんだよ 誤差って! 人 人 B Google 検索は、一貫性(Consistency)は保証していないので、 シュミレーション 6,800,000 検索しにいったサーバーが違えば違う数字が出ることもある B 外野
  • 15. Eventual Consistency Google 検索DB レプリケーションした コピーが終わった マスター サーバー間でちょっと ぐらいは違うデータを Google 検索 返すのは仕方ない。 どうせコピーが終わる まだ最新データは まで待てばいつかは 人 人 コピー中 結果も同じになるし。 シュミレーション 7,240,000 Google 人 検索 このような「待てばいつかは誰から見て も同じデータになるよ。」というタイプの 一貫性のことを“Eventual Consistency” 人 人 (結果整合性)と呼ぶ。 シュミレーション 6,800,000 例には出したが Google が本当に Eventual Consistency を 満たしているかどうかは知らない。あくまで例である。 人
  • 16. レプリケーションの例3 • ヒトゲノムから疾患関連遺伝子を見つける。 遺伝病Xに 罹っている人 Shotgun reads DNAを抽出して 遺伝病Xに ショットガン 参照ゲノムに 罹っていない人 シークエンシング アラインメント 遺伝病Xの原因 となった遺伝子 変異を見つける。
  • 17. 計算の一例 ヒトゲノムの resequencing 解析。Illumina GA で読んだ paired-end のデータから SNV を call。 Illumina GA Illumina GA PE read 1 PE read 2 splitreads splitreads rd1 1/3 rd1 2/3 rd1 3/3 rd2 1/3 rd2 2/3 rd2 3/3 Human Ref. Genome bwa bwa bwa bwa bwa bwa sai1 1/3 sai1 2/3 sai1 3/3 sai2 1/3 sai2 2/3 sai2 3/3 bwa pe bwa pe bwa pe sam 1/3 sam 2/3 sam 3/3 この先に本当はもっと長い計算パイプラインがあるが省略。
  • 18. • リードをいくつかに分割してそれぞれ独立に 並列アラインメントしたい – このような(何の工夫も要らない単純な)並列を Embarrassingly Parallel (EP) と言う。 1G-Ethernet の速度ではヒトゲノム配列のコピーに30秒。 ファイルサーバー リードを100分割して100台のマシンでアラインメントすると リード配列全体 1時間近くがヒトゲノムのコピーに消費される。 ヒトゲノム配列 遅い 遅い 計算ノード1 計算ノード2 計算ノード3 ヒトゲノム配列 ヒトゲノム配列 ヒトゲノム配列 リードの一部#1 リードの一部#2 リードの一部#3 アラインメント#1 アラインメント#2 アラインメント#3 ※実際には圧縮してコピーするとか、もう少しマシな手がある。
  • 19. ファイルサーバー リード配列全体 n台で計算するとヒトゲノムのコピーがn回発生。 n が大きくネットワークが遅いときには致命的に。 ヒトゲノム配列 遅い 遅い 計算ノード1 計算ノード2 計算ノード3 ヒトゲノム配列 ヒトゲノム配列 ヒトゲノム配列 リードの一部#1 リードの一部#2 リードの一部#3 アラインメント#1 アラインメント#2 アラインメント#3 レプリケーション無し レプリケーション有り ファイルサーバー1 ファイルサーバー2 ファイルサーバー3 リード配列全体 リード配列全体 リード配列全体 ヒトゲノム配列が ショットガンリードを分割して ヒトゲノム配列 ヒトゲノム配列 ヒトゲノム配列 レプリカから読め 並列にアラインメントしたい。 るので高速に。 計算ノード1 計算ノード2 計算ノード3 ヒトゲノム配列 ヒトゲノム配列 ヒトゲノム配列 リードの一部#1 リードの一部#2 リードの一部#3 アラインメント#1 アラインメント#2 アラインメント#3
  • 20. レプリケーションの例4 • Google File System, Gfarm, GlusterFS, Amazon S3 のような ファイルシステムでは、ファイルをレプリケーションすること でスループットの向上や耐故障性向上を狙っている。 レプリカは 2~4個が普通 ファイルサーバー1 ファイルサーバー2 ファイルサーバー3 ファイルサーバー4 ファイルサーバー5 ファイルA ファイルA ファイルA ファイルB ファイルB ファイルB ファイルC ファイルC ファイルC ファイルD ファイルD ファイルD 故障 ファイルサーバー1 計算ノード1 が壊れてるけど、使 計算ノード2 わなければいいだけ。
  • 21. レプリケーションの例4 • Google File System, Gfarm, GlusterFS, Amazon S3 のような ファイルシステムでは、ファイルをレプリケーションすること でスループットの向上や耐故障性向上を狙っている。 ファイルサーバー1 ファイルサーバー2 ファイルサーバー3 ファイルサーバー4 ファイルサーバー5 ファイルA ファイルA ファイルA ファイルA ファイルB ファイルB ファイルB ファイルB ファイルC ファイルC ファイルC ファイルD ファイルD ファイルD ファイルD 故障 レプリカの数が足りなくなったら ファイルを複製してファイルの数を 一定に保つように努力する。
  • 22. Table of Contents • スケールアップとスケールアウト • スケールアウトに向けたいくつかの技術 – レプリケーション – シャーディング • CAP定理
  • 23. シャーディング • データを複数の範囲に分割して各々を別々の サーバーで処理する。 – 「範囲」の決め方は様々 • ユーザーIDの範囲、日付の範囲、金額の範囲、 居住地域の範囲、組織の範囲、・・・ etc. 部門別にメールサーバーを X部門向け メールサーバー 分割してシャーディング メール サーバー 社員A 社員C 社員B 社員A 社員E Y部門向け 社員B 社員D メールサーバー 社員C 社員D 社員E
  • 24. シャーディングと リレーショナルモデル • シャーディングは水平パーティーションとも 呼ばれ、関係モデルを水平に分割する。 日付 部門ID 購入ID 商品ID 数量 合計価格 2007年担当 2007/1/18 181 01326141 26F-00132 2 15,800 サーバー 2007/2/28 181 01326188 27W-00101 5 8,000 2008年担当 2008/1/10 181 01341201 23C-00089 1 23,800 サーバー 2008/9/8 181 01349254 25F-00141 3 4,800 2009年担当 2009/5/4 181 01392164 23C-00089 1 20,800 サーバー 2009/11/19 181 01412004 27W-00101 3 4,800
  • 25. シャーディングの例1 • DeNA社のモバゲータウン (1日23億ページ・ビュー) [もはや “タダ” が常識に?携帯電話ゲームに押し寄せる 無料化の波;日経 BP Net] ユーザーIDのハッシュ値から 600台のMySQLサーバーから1台を 選んでアバター画像を問い合わせ。 ハッシュ値を使うことで600台のどの Webサーバーからも同じMySQL サーバーに問い合わせに行ける。 [600億PVもMySQLで! モバゲーのインフラ底力; @IT Special]
  • 26. シャーディングの例2 • Gmail (Google社のe-メールサービス) – シャーディングの単位はユーザーアカウント • ユーザーIDが決まると使用するメールサーバー(群)が決まる – レプリケーションと併用して耐故障性をアップ • 図では3レプリカだが実際は4つだったかも? メールサーバー1 メールサーバー2 メールサーバー3 メールサーバー4 メールサーバー5 ユーザーA ユーザーA ユーザーA ユーザーB ユーザーB ユーザーB ユーザーC ユーザーC ユーザーC ユーザーD ユーザーD ユーザーD ※分散ファイルシステムの例と非常に似ているが、分散ファイルシステムは ファイル単位のシャーディングとも見なせる。 こういうシステムを深く勉強したい人は [Baker et al., Megastore: Providing Scalable, Highly Available Storage for Interactive Services, CIDR 2011] を読むべし。
  • 27. Table of Contents • スケールアップとスケールアウト • スケールアウトに向けたいくつかの技術 – レプリケーション – シャーディング • CAP定理
  • 28. Table of Contents • スケールアップとスケールアウト • スケールアウトに向けたいくつかの技術 – レプリケーション – シャーディング • CAP定理
  • 29. CAP theorem • 分散システムでは以下の3つを同時に満たす ことはできないという定理(Brewerの定理)。 証明したのは Seth Gilbert & Nancy Lynch だけどね・・・。 – Consistency • データの更新があっても全てのクライアントが同じ データを見ることができること。 – Availability • 障害の無いノードにデータ読出/書込要求が来たら 有限の時間内に操作を完了して返事をすることができ ること。 – Partition tolerance • ネットワークがどのように(部分的に)故障して任意の ノード間の通信が壊れても動作が続けられること。
  • 30. CAP theorem • 分散システムでは以下の3つを同時に満たす ことはできないという定理(Brewerの定理)。 証明したのは Seth Gilbert & Nancy Lynch だけどね・・・。 – Consistency • データの更新があっても全てのクライアントが同じ データを見ることができること。 – Availability • 障害の無いノードにデータ読出/書込要求が来たら 有限の時間内に操作を完了して返事をすることができ ること。 – Partition tolerance • ネットワークがどのように(部分的に)故障して任意の ノード間の通信が壊れても動作が続けられること。
  • 31. Consistency 全てのクライアントから同じものが見えること。 レプリケーション データA データA データAを クライアント クライアント データBに Aを貰った Aを貰った クライアント クライアント 更新 Aを貰った Aを貰った データB データB Consistency クライアント クライアント データの更新があっても全 Bを貰った てのクライアントが同じ Bを貰った データを見ることができる クライアント クライアント こと。 Bを貰った Bを貰った
  • 32. Google が人によって違う答えを 返す理由 Google 「シュミレーション」で 検索DB コピーが終わった マスター 検索したら7,240,000 件もあった! Google Consistent 検索 でない えー、ぼくが検索する まだ最新データは と 6,800,000件しか無 人 人 コピー中 いんだけど・・・。 シュミレーション 7,240,000 Google 細かいことは気にす 人 検索 るなって!誤差だよ 誤差。 人 人 コンピューターで Consistency データの更新があっても全 誤差ってなんだよ シュミレーション 6,800,000 てのクライアントが同じ 誤差って! データを見ることができる 人 こと。
  • 33. CAP theorem • 分散システムでは以下の3つを同時に満たす ことはできないという定理(Brewerの定理)。 証明したのは Seth Gilbert & Nancy Lynch だけどね・・・。 – Consistency • データの更新があっても全てのクライアントが同じ データを見ることができること。 – Availability • 障害の無いノードにデータ読出/書込要求が来たら 有限の時間内に操作を完了して返事をすることができ ること。 – Partition tolerance • ネットワークがどのように(部分的に)故障して任意の ノード間の通信が壊れても動作が続けられること。
  • 34. レプリケーションの例1(再) • アクセス数が非常に多いWebサーバー。 数日後、キャッシュサーバで 原発事故直後 大規模レプリケーションを実施 平常時 TEPCO ホームページ TEPCO ホームページ 人 人 人 人 人 人 人 人 人 人 人 アクセスまばら 人 人 人 人 Availability 障害の無いノードにデータ 読出/書込要求が来たら アクセス殺到でなかなか 有限の時間内に操作を完 繋がらない 了して返事をすることがで きること。 ※本当はAkamaiでもっと複雑なことをやっていたが説明のために超簡略化
  • 35. レプリケーションの例1 (再) • アクセス数が非常に多いWebサーバー。 数日後、キャッシュサーバで 原発事故直後 大規模レプリケーションを実施 平常時 TEPCO ホームページ TEPCO ホームページ 人 人 人 人 人 人 人 人 人 人 人 故障 アクセスまばら 1台故障しても 人 人 人 人 Availability ウェブページは 障害の無いノードにデータ アクセス殺到でなかなか 見られるので 読出/書込要求が来たら 有限の時間内に操作を完 繋がらない Availabilityがある。 了して返事をすることがで きること。 ※本当はAkamaiでもっと複雑なことをやっていたが説明のために超簡略化
  • 36. シャーディングの例2(再) • Gmail (Google社のe-メールサービス) – シャーディングの単位はユーザーアカウント • ユーザーIDが決まると使用するメールサーバー(群)が決まる – レプリケーションと併用して耐故障性をアップ • 図では3レプリケーションだが実際は確か4つ。 故障 メールサーバー1 故障 メールサーバー2 メールサーバー3 メールサーバー5 メールサーバー4 ユーザーA ユーザーA ユーザーA ユーザーB ユーザーB ユーザーB ユーザーC ユーザーC ユーザーC ユーザーD ユーザーD ユーザーD メール削除いける? Availability メール番号 障害の無いノードにデータ レプリカが音信不通 読出/書込要求が来たら 1435132を 有限の時間内に操作を完 なので今は無理です。 了して返事をすることがで 削除してよ! きること。 人
  • 37. CAP theorem • 分散システムでは以下の3つを同時に満たす ことはできないという定理(Brewerの定理) 証明したのは Seth Gilbert & Nancy Lynch だけどね・・・。 – Consistency • データの更新があっても全てのクライアントが同じ データを見ることができること。 – Availability • 障害の無いノードにデータ読出/書込要求が来たら 有限の時間内に操作を完了して返事をすることができ ること。 – Partition tolerance • ネットワークがどのように(部分的に)故障して任意の ノード間の通信が壊れても動作が続けられること。
  • 38. Partition tolerance とは何か? • 直感的ないくつかの説明 – システムをいくつかの部分に分割することができて、 クライアントからメッセージが届いたときに誤った返答 を返さないこと。 – Partition tolerance が無いシステムは部分的な故障 が許されていないか、または部分的な故障時に クライアントに誤ったメッセージを返すことがある。
  • 39. レプリケーションの例で Partition Tolerance を説明 • アクセス数が非常に多いWebサーバー 故 更新が無いとするとたとえば、 障 レプリカ間のネットワークが 故障しても問題がない。 ノード間 ユーザーとの間のネットワーク 通信網 が壊れたら問題だが、これは どんなシステムでも明らかに アクセス不能だし、定義中の 「任意のノード間」にユーザーと Partition tolerance の間は含まれていない。 ネットワークがどのよう に(部分的に)故障して 任意のノード間の通信 が壊れても動作が続 けられること。
  • 40. シャーディングの例2(再) ノード間 通信網 故障 メールサーバー1 メールサーバー2 メールサーバー3 メールサーバー4 メールサーバー5 ユーザーA ユーザーA ユーザーA ユーザーB ユーザーB ユーザーB ユーザーC ユーザーC ユーザーC ユーザーD ユーザーD ユーザーD メール削除いける? Partition tolerance ネットワークがどのよう メール番号 に(部分的に)故障して レプリカが音信不通 1435132を 任意のノード間の通信 なので今は無理です。 が壊れても動作が続 削除してよ! けられること。 人
  • 41. CAP theorem (復習) • 分散システムでは以下の3つを同時に満たす ことはできないという定理(Brewerの定理)。 – Consistency • データの更新があっても全てのクライアントが同じ データを見ることができること。 – Availability • 障害の無いノードにデータ読出/書込要求が来たら 有限の時間内に操作を完了して返事をすることができ ること。 – Partition tolerance • ネットワークがどのように(部分的に)故障して任意の ノード間の通信が壊れても動作が続けられること。
  • 42. CAP定理を背理法で証明 レプリケーション ノード間 通信網 システムの通常動作は データA データA このようになっている。 データちょうだい Aだよ Aだよ データちょうだい クライアント クライアント ノード間 通信網 Partition tolerance & デーA データA Availability より返事できる 故障 Aだよ データちょうだい クライアント クライアント ノード間 Partition tolerance & 通信網 右のサーバーからは上の Availability より データB データA ケースと区別が付かないが、 書き込みも可能 Consistency が壊れた■ データBを書いて B書いたよ 故障 Aだよ データちょうだい クライアント クライアント