SlideShare a Scribd company logo
1 of 61
MySQL Clusterで高性能システムを
           構築する際のポイント
                    住商情報システム株式会社, 廣濱顕司
      2008/10/31, @ MySQL ユーザコンファレンス 2008
自己紹介
       2003年よりMySQL関連の業務を担当
           2003/8/4にLarry Stefonic氏とサンフラン
            シスコでMTGしたのが全ての始まり
           立ち上げ時はMySQL社とのパートナリ
            ングその他雑用全般を担当
           現在は以下のMySQL関連業務
               コンサルティング
               トレーニング講師
               サポート
       趣味
           旅行
           ガジェット


    2                      (c) Sumisho Computer Systems Corp.
Agenda


              MySQL Clusterとは

         MySQL ClusterへのSCSの取り組み

                   ベンチマーク

         MySQL Clusterのシステム構成例

                      さいごに


3             (c) Sumisho Computer Systems Corp.
MySQL Clusterとは




4   (c) Sumisho Computer Systems Corp.
MySQL Clusterとは
       特徴
           非共有ディスク型
               特殊なHWを必要としない
           アクティブ・アクティブ型
               フェールオーバーの時間が非常に短い
           インメモリデータベース (5.1以降はディスクテーブルもサポー
            ト)
               高い性能
           高い可用性
               各ノードの冗長構成が可能




    5                   (c) Sumisho Computer Systems Corp.
MySQL Cluster概要図
                           アプリ                           アプリ



JAVA/C++アプリ JAVA/C++アプリ      SQL Node                   SQL Node




                   Data Node        Data Node

                   Data Node        Data Node

                                                        Management Node

   6               (c) Sumisho Computer Systems Corp.
MySQL Cluster詳細図
                              アプリ                             アプリ


              JAVA/C++アプリ                                   MySQL上位層
JAVA/C++アプリ                     SQL Node                                    NDB
                NDB API                          MyISAM    InnoDB   HEAP   (NDB API)




                      Data Node        Data Node

                      Data Node        Data Node

                                                            Management Node

   7                  (c) Sumisho Computer Systems Corp.
MySQL Clusterを利用するアプリケーション
       SQL Node経由
           ストレージエンジンの一つとして簡単に利用できる
           MyISAM, InnoDBテーブルなどと混在できる
           MyISAM, InnoDBテーブルなどと同等に扱える
               SQLクエリの発行など
       NDBアプリケーション(JAVA/C++アプリ)
           NDB APIを利用して直接Data NodeへアクセスするJAVAや
            C++で記述されたアプリケーション
           SQLクエリを発行することはできないが、非常に高速




    8                    (c) Sumisho Computer Systems Corp.
MySQL Clusterの配布形態
       MySQL Cluster 5.1.23 (バイナリ/ソース)

                                                      Data Nodeの改良
Time
                                                      MySQL Cluster 5.1.23 CGE 6.2.14 (ソース     MySQL Cluster 5.1.23 CGE 6.3.13 (ソース
                                                                   コードのみ)                                   コードのみ)




       MySQL Cluster 5.1.24 (ソースコードのみ)
           以後バイナリ版ではNDBCLUSTER
              エンジンは無効となる



   2008/5


              MySQL Cluster 6.2.15, CGE/SE,               MySQL Cluster 6.2.15, CGE/SE,
                                                                                               MySQL Cluster 6.3.x (ソースコードのみ)
                  Commercialバイナリ                                  GPLバイナリ
           (SQL Node: 5.1.23, Data Node: 6.2.14)       (SQL Node: 5.1.23, Data Node: 6.2.14)


                                                                                                        GAとしてリリース
   2008/6




                                                                                                 MySQL Cluster 6.3.17 GPLバイナリ
       9                                           (c) Sumisho Computer Systems Corp.
MySQL Clusterエディションの違い
機能                              SE                        CGE
                                (Standard Edition)        (Carrier Grade Edition)
NDB Bindings                    なし                        あり
(C++ - NDB API, Java - NDB/J)
Geographical Replication        なし                        オプション (有料)
LDAP Interface                  なし                        オプション (有料)
    NDB Bindings
        JAVAやC++などのアプリケーションからNDB APIを利用して直接Data
         Nodeへアクセスする方法
    Geographical Replication
        MySQL Cluster ReplicationやGlobal Replicationと呼ばれていた
        MySQL Clusterをサイト間で非同期レプリケーションする仕組み
        ディザスターリカバリーに対応
    SEとCGEの違い
        バイナリ上の違いは無い
        ライセンス上の違いだけ

    10                      (c) Sumisho Computer Systems Corp.
MySQL ClusterへのSCSの取り組み




11       (c) Sumisho Computer Systems Corp.
MySQL ClusterへのSCSの取り組み
    2004年
        MySQL Clusterの検証を開始
    IPAプロジェクト (2004-2005)
        オープンソースDBMSの評価プロジェクトにMySQL Cluster担当として参
         加
    Linux World 2005
        日立ブレードシンフォニーでMySQL Clusterをデモンストレーション
    Linux World 2006
        「MySQL Clusterの最適構成」セッション担当
    2007年~
        実案件における問い合わせ/サービス提供



    12                  (c) Sumisho Computer Systems Corp.
IPAプロジェクトの概要
    正式名称
        2005年度上期オープンソースソフトウェア活用基盤整備事業
         「OSS性能・信頼性評価 / 障害解析ツール開発」DB層
    SCSはMySQL Cluster担当として参加
        DBT(負荷ツール)を利用したDBMS性能検証にもMySQL担当
         として参画
    評価レポートなどはIPAのサイトで公開中
        http://www.ipa.go.jp/software/open/forum/development/index.h
         tml




    13                    (c) Sumisho Computer Systems Corp.
IPAプロジェクトの結果
    MySQL ClusterのHA機能で不可解な挙動は無い
        ノード障害、ネットワーク障害、サーバー障害などにも対応
        フェールオーバーは非常に高速:数秒
    インターコネクトにSCI (Dolphin Interconnect Solutions
     社)を利用することで性能は最大50%向上した
    MySQL Cluster 4.1 / 5.0には高負荷時の安定性で若干
     の課題あり
        安定性は6.2で解決
        性能はCGEおよび6.2で改善




    14             (c) Sumisho Computer Systems Corp.
ベンチマーク




15   (c) Sumisho Computer Systems Corp.
ベンチマーク実施時の各種スペック
    HW: HP ProLiant DL380 * 2台
        CPU: Quad Core Xeon 2.6GHz * 2
        Memory: 16GB
        HDD: SAS 72GB, 15,000rpm
    SW: Red Hat Enterprise Linux 5.1 (EM64T)
    MySQL Cluster: 5.1.23
    MySQL Cluster CGE: 5.1.23 (mysql-5.1.23-ndb-6.2.14-
     telco)
    ベンチマークソフト: mysqlslap



    16                   (c) Sumisho Computer Systems Corp.
サーバーの基本構成
         mysqlslap




         SQL Node                  SQL Node

        Data Node                  Data Node


     HP ProLiant DL380 HP ProLiant DL380
17               (c) Sumisho Computer Systems Corp.
mysqlslapの設定
    テーブルスキーマ                        カラム名称      データ型           属性

        右表のとおり                      id         VARCHAR(32)    PRIMARY KEY
                                     intcol1    INT
    初期データサイズ                        intcol2    INT

        100万件                       intcol3    INT
                                     intcol4    INT
        800MBほど                     intcol5    INT
                                     charcol1   VARCHAR(128)
    クエリ種別                           charcol2   VARCHAR(128)

        MIXED: PK SELECTと           charcol3   VARCHAR(128)

         INSERTの混在                   charcol4   VARCHAR(128)
                                     charcol5   VARCHAR(128)




    18                 (c) Sumisho Computer Systems Corp.
a. MySQL Cluster Carrier Grade Edition

b. ディスクテーブル

c. ノード数

d. InnoDB

19           (c) Sumisho Computer Systems Corp.
a. MySQL Cluster CGE
    ベンチマークの目的
        MySQL ClusterとMySQL CGE (2008/5以前)の性能を比較し
         たい
    比較バージョン
        MySQL Cluster 5.1.23
        MySQL Cluster 5.1.23 CGE (Data Node: 6.1.23)
    構成
        Data Node: 2台
        レプリカ(冗長性): 2
        SQL Node: 2
        データ: 初期データ100万(約800MB)
        クエリ種別: MIXED (PK SELECTとINSERTのMIX)
    20                    (c) Sumisho Computer Systems Corp.
a. MySQL Cluster CGE:構成図
         mysqlslap




         SQL Node                  SQL Node

        Data Node                  Data Node


     HP ProLiant DL380 HP ProLiant DL380
21               (c) Sumisho Computer Systems Corp.
a. MySQL Cluster CGE:結果
               10000

               9000

               8000

               7000
スループット(TP/S)




               6000

               5000

               4000

               3000

               2000

               1000

                  0
                       0   50          100             150                 200                 250
                                             クライアント数
                                                             MySQL5.1.23         MySQL5.1.23-ndb6.2.14




          22                    (c) Sumisho Computer Systems Corp.
a. MySQL Cluster CGE:結果のまとめ
    結果
        MySQL Cluster CGE (2008/5以前)では最大25%の性能改善
         が確認できた
            現在のMySQL Cluster 6.2 / 6.3は、このCGEをベースとしている
        同時接続数=50で最も良い性能
            2006年に実施したベンチマーク結果と同じ(MySQL Cluster 5.0)




    23                   (c) Sumisho Computer Systems Corp.
a. MySQL Cluster Carrier Grade Edition

b. ディスクテーブル

c. ノード数

d. InnoDB

24           (c) Sumisho Computer Systems Corp.
b. ディスクテーブル
    ベンチマークの目的
        5.1からサポートされたディスクテーブル(ディスクベーステー
         ブル)が実際に「使える」レベルのものかを判断したい
    ベンチマークの内容
        ディスクテーブル用のバッファの値を変えて計測した
    構成
        Data Node: 2台
        レプリカ(冗長性): 2
        SQL Node: 2
        データ: 初期データ100万(約800MB)
        クエリ種別: MIXED (PK SELECTとINSERTのMIX)

    25                (c) Sumisho Computer Systems Corp.
b. ディスクテーブル:構成図
         mysqlslap




         SQL Node                  SQL Node

        Data Node                  Data Node


     HP ProLiant DL380 HP ProLiant DL380
26               (c) Sumisho Computer Systems Corp.
b. ディスクテーブル:結果
               9000

               8000

               7000

               6000
スループット(TP/S)




               5000

               4000

               3000

               2000

               1000

                 0
                      0   50                     100              150                200                     250
                                                       クライアント数

                               メモリベース                                    ディスクベース
                               ディスクベース DiskPageBufferMemory=1G           ディスクベース DiskPageBufferMemory=500M




                  27                     (c) Sumisho Computer Systems Corp.
b. ディスクテーブル:結果のまとめ
    結果
        ディスクテーブルの性能は低い
        DiskPageBufferMemoryをチューニングすることで性能は改善
         するが、効果は限定的
            バッファに全データが乗る場合はメモリテーブルと同等の性能
            バッファに半分以上のデータが乗る場合でもメモリテーブルの1/4ほ
             どの性能
            可能な限り多く割り当てることを推奨
            デフォルトは64MB
    mysqlslapはディスクテーブルに対応していないので手を
     加えた
        SCSのサイトでパッチを公開中

    28               (c) Sumisho Computer Systems Corp.
a. MySQL Cluster Carrier Grade Edition

b. ディスクテーブル

c. ノード数

d. InnoDB

29           (c) Sumisho Computer Systems Corp.
c-1. SQL Node
    ベンチマークの目的
        SQL Nodeのノード数と性能の関係を明らかにして、構成を考
         える際の指針とする
    構成
        Data Node: 2台
        レプリカ(冗長性): 2
        SQL Node: 1, 2, 4
        データ: 初期データ100万(約800MB)
        クエリ種別: MIXED (PK SELECTとINSERTのMIX)




    30                (c) Sumisho Computer Systems Corp.
c-1. SQL Node:構成図
            mysqlslap                mysqlslap
mysqlslap                                               mysqlslap


            SQL Node                 SQL Node

            SQL Node                 SQL Node

            Data Node                Data Node


       HP ProLiant DL380 HP ProLiant DL380
  31               (c) Sumisho Computer Systems Corp.
c-1. SQL Node:結果

               25000




               20000
スループット(TP/S)




               15000




               10000




               5000




                  0
                       0   50   100         150      200        250      300         350   400   450
                                                     クライアント数

                                      SQL Node: 1台    SQL Node: 2台    SQL Node: 4台



         32                             (c) Sumisho Computer Systems Corp.
c-1. SQL Node:結果のまとめ
    結果
        SQL Node1台あたり「50同時接続で最大性能」という傾向は
         変わらない
            SQL Node4台までは順当に性能はスケールした
        Data NodeのCPU利用率はSQL Node 4台で、初めて90%近く
         まで上昇
            6.2, 6.3ではData Nodeはシングルスレッドなので複数コアなどは有
             効活用できない




    33                 (c) Sumisho Computer Systems Corp.
c-2. Data Node
    ベンチマークの目的
        Data Nodeのノード数と性能の関係を明らかにして、構成を考
         える際の指針とする
        レプリカの数(冗長構成)は2で固定する
    構成
        Data Node: 2, 4, 6
        レプリカ(冗長性): 2
        SQL Node: 2
        データ: 初期データ100万(約800MB)
        クエリ種別: MIXED (PK SELECTとINSERTのMIX)



    34                (c) Sumisho Computer Systems Corp.
c-2. Data Node:構成図
         mysqlslap



         SQL Node                  SQL Node

        Data Node                  Data Node
        Data Node                  Data Node
        Data Node                  Data Node
     HP ProLiant DL380 HP ProLiant DL380
35               (c) Sumisho Computer Systems Corp.
c-2. Data Node:結果
               9000


               8000


               7000


               6000
スループット(TP/S)




               5000


               4000


               3000


               2000


               1000


                 0
                      0   50          100             150              200              250
                                     クライアント数         Data Node 2    Data Node 4   Data Node 6




  36                           (c) Sumisho Computer Systems Corp.
c-2. Data Node:結果のまとめ
    結果
        Data Nodeを増やすことで性能は劣化した
        性能劣化の原因は、ノードが増えたことによるオーバーヘッド
         の増加にあると思われる




    37           (c) Sumisho Computer Systems Corp.
a. MySQL Cluster Carrier Grade Edition

b. ディスクテーブル

c. ノード数

d. InnoDB

38           (c) Sumisho Computer Systems Corp.
d. InnoDB
    ベンチマークの目的
        「更新処理を負荷分散できる」ことを特徴の一つとしている
         MySQL Clusterが、最もポピュラーなInnoDBと性能面でどこま
         で迫れるか判断したい
    構成
        Data Node: 2
        レプリカ(冗長性): 2
        SQL Node: 2
        データ: 初期データ100万(約800MB)
        クエリ種別: MIXED (PK SELECTとINSERTのMIX)
        クライアント数:50


    39                (c) Sumisho Computer Systems Corp.
d. InnoDB:構成図
         mysqlslap




         SQL Node                  SQL Node

        Data Node                  Data Node


     HP ProLiant DL380 HP ProLiant DL380
40               (c) Sumisho Computer Systems Corp.
d. InnoDB:結果
               10000


                9000


                8000


                7000


                6000
スループット(TP/S)




                5000


                4000


                3000


                2000


                1000


                    0
                        InnoDB (binlog-format=mixed)          MySQL Cluster 5.1.23 メモリベース   MySQL Cluster CGE 6.2.13 メモリベース

               41                                      (c) Sumisho Computer Systems Corp.
d. InnoDB:結果のまとめ
    結果
        InnoDB (バイナリログ有効)よりもMySQL Clusterの方が性能
         は良い
        ただし、バイナリログを無効にしたInnoDBは倍近い性能と
         なったので、「書き込みキャッシュ」をサポートしたディスクコン
         トローラでは、バイナリログ有効のInnoDBの性能も改善する
         はず




    42              (c) Sumisho Computer Systems Corp.
a,b,c,d: ベンチマーク結果のまとめ
    MySQL Cluster 6.2は安定している
        MySQL Cluster 4.1, 5.0, 5.1を利用している場合はアップグレー
         ドを強く推奨
    ディスクテーブルの全面的な採用は未だ早い
        性能面での懸念:特定のテーブルのみとするべき
    Data Node数は少なく、SQL Node数は多く、レプリカ数
     は少なく、同時接続数は50くらい、が初期構成の目安
        MySQL Cluster 5.0と傾向は変わらない
    Data Nodeはシングルスレッドでの動作となるので、CPU
     などを増やしても性能はスケールしない
        6.4で改善される予定

    43               (c) Sumisho Computer Systems Corp.
MySQL Clusterのシステム構成例




44        (c) Sumisho Computer Systems Corp.
MySQL Clusterで高性能システムを構築する際のポイント

    MySQL Cluster 6.2を利用する
    データサイズを見積もる
    ディスクテーブルの利用は控えめに
    SQL Nodeの冗長化
        アプリケーションレベル/ロードバランサーなどで実現
    Data Node
        冗長性(レプリカ)は2で十分
    性能重視の場合はNDB APIの利用も検討する




    45            (c) Sumisho Computer Systems Corp.
MySQL Clusterシステム構成例
                                   Clients
                                         ClientsClients
                                                      Clients
                                                            Clients Clients
                                                                  Clients Clients




サイトA                                             ロードバランサー                                                  サイトB


     アプリケーション             アプリケーション                                         アプリケーション              アプリケーション

                                                 Geographical
       SQL Node              SQL Node             Repliation                  SQL Node              SQL Node


      Data Node             Data Node                                         Data Node            Data Node




      JAVA/C++              JAVA/C++                                          JAVA/C++              JAVA/C++
     アプリケーション            アプリケーション                                          アプリケーション              アプリケーション



Clients
      ClientsClients
                   Clients
                         Clients Clients
                               Clients Clients                         Clients
                                                                             ClientsClients
                                                                                          Clients
                                                                                                Clients Clients
                                                                                                      Clients Clients


46                                        (c) Sumisho Computer Systems Corp.
MySQL Clusterシステム構成例
    サイトA、サイトBでマスター・マスターのGeographical
     Replication
        ディザスターリカバリ対策
    SQL Node経由では性能が十分で無いアプリケーション
     はNDB APIを利用して直接Data Nodeへアクセス
    SQL Nodeの冗長性はロードバランサーで実現




    47           (c) Sumisho Computer Systems Corp.
MySQL Clusterに適したアプリケーション
    データの見積もりが設計時にある程度可能なシステム
    JOINやSUB QUERYをほとんど利用しないアプリケーショ
     ン
    検索するカラムにはインデックスがはられている
    単純なSQLクエリを大量に発行するアプリケーション
    高い可用性が要求されるシステム




    48         (c) Sumisho Computer Systems Corp.
MySQL Clusterに適さないアプリケーション
    ディスクテーブルの利用を前提とする大規模データベー
     ス
        InnoDBをお勧めします
    データの大部分が文字列で、検索が主体のアプリケー
     ション
        InnoDBとMySQL+Sennaのレプリケーション構成をお勧めしま
         す
    ダウンタイムが許容されるシステム
        MyISAMやInnoDBをレプリケーションで利用することをお勧め
         します
    複雑なSQLクエリを発行するシステム
        JOINやSUB QUERYを多用する場合には性能が劣化します

    49             (c) Sumisho Computer Systems Corp.
さいごに




50   (c) Sumisho Computer Systems Corp.
Dolphin Zone by SCS
    Dolphin Zoneとは
        SUNの仮想化アプライアンス「Viking Zone」にSCSのMySQL設
         計、構築、サポートサービスを付加したパッケージ製品
        HW構成
            Sun SPARC Enterprise T5220 * 2台
            Sun StorageTek 2540 FC * 1台




    51                       (c) Sumisho Computer Systems Corp.
Zoneとは?
    SUNが提供する仮想化の仕組み
    他の仮想化と比べてオーバーヘッドが少ない
    Global Zone                                                Local Zone
        従来のSolaris環境
        Xenのdom0に相当




                                                  Global Zone
                                                                Local Zone
    Local Zone
        Global Zone上に構成される仮想環境                                 Local Zone
        XenのdomUに相当
                                                                Local Zone




    52              (c) Sumisho Computer Systems Corp.
MySQL Clusterの制限のひとつ
    サービスを提供している最中に、当初の見積よりもデータ容
     量が大きくなってしまったら
        MySQL Clusterだけでは対応が難しい
        メモリテーブル、ディスクテーブルともにテーブルサイズの見積が重
         要
    Data Nodeの構成変更にはMySQL Cluster全体の再起動が
     必要
        冗長性(レプリカ数)の変更
        Data NodeのIPアドレスの変更
        Data Node数の変更
        Data Memory, Index Memoryなどの増加は可能
    6.4でData Nodeの動的追加などが実装予定
    6.2, 6.3ではどうするか?

    53                (c) Sumisho Computer Systems Corp.
Dolphin Zoneが有効なシナリオ
    当初のデータ見積は64GBで、128GBまで拡張する可能
     性がある
    128GBまでデータが増大するかどうか、サービスを開始
     しないと分からない
    性能の観点からディスクテーブルは使いたくない
    初期投資は極力抑えたい

→Dolphin Zoneが解決!!!




    54        (c) Sumisho Computer Systems Corp.
Dolphin ZoneでのMySQL Cluster構成
    Local ZoneにData Nodeをインストールする
    MySQL Clusterの設定
        SQL Node : 多めに設定→性能には影響しない
        Data Node : 多めに設定→性能に影響するので注意
    当面のサーバーは2台
    データ増加時はData Nodeを他のサーバーのLocal
     Zoneへ移行/マイグレーションする
        Data Nodeが稼働しているLocal ZoneのIPアドレスはそのまま
         なので、オンラインで移行できる




    55              (c) Sumisho Computer Systems Corp.
サービス開始時
     SQL Node, Data NodeはLocal Zone上に構成する



SQL Node         SQL Node

SQL Node         SQL Node

Data Node        Data Node

Data Node        Data Node

最大搭載物理メモリ:64GB   最大搭載物理メモリ:64GB

     56                (c) Sumisho Computer Systems Corp.
データ増加時:オンラインでマイグレーション
     Data Nodeを起動しているLocal Zoneを別のサーバーへ移行
      する
     Data NodeのIPアドレスは変わらないので、全てオンラインで
      実施できる

SQL Node         SQL Node                  SQL Node         SQL Node

SQL Node         SQL Node                  SQL Node         SQL Node
Data Node        Data Node

Data Node        Data Node

最大搭載物理メモリ:64GB   最大搭載物理メモリ:64GB           最大搭載物理メモリ:64GB    最大搭載物理メモリ:64GB

     57                (c) Sumisho Computer Systems Corp.
データ増加時の構成
     約128GBの物理メモリをData Nodeで利用できる



SQL Node         SQL Node                  SQL Node         SQL Node

SQL Node         SQL Node                  SQL Node         SQL Node
Data Node        Data Node
                                          Data Node         Data Node

最大搭載物理メモリ:64GB   最大搭載物理メモリ:64GB           最大搭載物理メモリ:64GB    最大搭載物理メモリ:64GB

     58                (c) Sumisho Computer Systems Corp.
住商情報システムでは
    MySQLトレーニング
        MySQL 5.1 for DBA
        MySQL High Availability
    MySQLサポート
        2005/4より開始
        60社以上への導入実績
    MySQLプロフェッショナルサービス(コンサルテーション)
    システム・インテグレーション
        MySQLを利用したシステム構築
        OracleからMySQLへのマイグレーション
        MySQLとOracleを利用するシステム構築
        →Oracleのプロフェッショナルも同じチームに多数在籍

    59                     (c) Sumisho Computer Systems Corp.
参考資料

mysql scs                           検索

    http://www.scs.co.jp/mysql/
        今回のプレゼン資料
        mysqlslapパッチ
        その他各種技術資料
    DB Magazine 2008年8月号
        「徹底検証:MySQL Cluster」
    Viking Zone
        http://www.clubscs.com/vikingzone/

    60                     (c) Sumisho Computer Systems Corp.
さいごに
    MySQL Cluster 6.2は「使え」ます
        海外での事例は多数
        国内でも増えてきている
    ご清聴ありがとうございました




    61            (c) Sumisho Computer Systems Corp.

More Related Content

Similar to MySQL Clusterで高性能システムを構築する際のポイント

yusukebe in Yokohama.pm 090909
yusukebe in Yokohama.pm 090909yusukebe in Yokohama.pm 090909
yusukebe in Yokohama.pm 090909Yusuke Wada
 
query optimization
query optimizationquery optimization
query optimizationDimara Hakim
 
Rails Deployment with NginX
Rails Deployment with NginXRails Deployment with NginX
Rails Deployment with NginXStoyan Zhekov
 
Windows PowerShell V2 の新機能
Windows PowerShell V2 の新機能Windows PowerShell V2 の新機能
Windows PowerShell V2 の新機能shigeya
 
Zurich2007 MySQL Query Optimization
Zurich2007 MySQL Query OptimizationZurich2007 MySQL Query Optimization
Zurich2007 MySQL Query OptimizationHiệp Lê Tuấn
 
20090323 Phpstudy
20090323 Phpstudy20090323 Phpstudy
20090323 PhpstudyYusuke Ando
 
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPHow To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPAtsuhiro Kubo
 
Oracle Cloudで実現できる High Performance Computing 最新情報
Oracle Cloudで実現できる High Performance Computing 最新情報Oracle Cloudで実現できる High Performance Computing 最新情報
Oracle Cloudで実現できる High Performance Computing 最新情報オラクルエンジニア通信
 
Yakiniku(焼き肉) on the Cloud
Yakiniku(焼き肉) on the CloudYakiniku(焼き肉) on the Cloud
Yakiniku(焼き肉) on the CloudTakao Funami
 
4200 Kte7.0 Training V1.0
4200 Kte7.0 Training V1.04200 Kte7.0 Training V1.0
4200 Kte7.0 Training V1.0wayneliao
 
P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SDJesse Vincent
 
使いこなそうGUC
使いこなそうGUC使いこなそうGUC
使いこなそうGUCAkio Ishida
 
Itpub电子杂志(第三期)
Itpub电子杂志(第三期)Itpub电子杂志(第三期)
Itpub电子杂志(第三期)yiditushe
 

Similar to MySQL Clusterで高性能システムを構築する際のポイント (20)

yusukebe in Yokohama.pm 090909
yusukebe in Yokohama.pm 090909yusukebe in Yokohama.pm 090909
yusukebe in Yokohama.pm 090909
 
Seize The Cloud
Seize The CloudSeize The Cloud
Seize The Cloud
 
Oracle Cloud Infrastructure:2020年10大トピックス
Oracle Cloud Infrastructure:2020年10大トピックスOracle Cloud Infrastructure:2020年10大トピックス
Oracle Cloud Infrastructure:2020年10大トピックス
 
query optimization
query optimizationquery optimization
query optimization
 
XS Japan 2008 Xen Mgmt Japanese
XS Japan 2008 Xen Mgmt JapaneseXS Japan 2008 Xen Mgmt Japanese
XS Japan 2008 Xen Mgmt Japanese
 
Grails紹介
Grails紹介Grails紹介
Grails紹介
 
Rails Deployment with NginX
Rails Deployment with NginXRails Deployment with NginX
Rails Deployment with NginX
 
Windows PowerShell V2 の新機能
Windows PowerShell V2 の新機能Windows PowerShell V2 の新機能
Windows PowerShell V2 の新機能
 
Zurich2007 MySQL Query Optimization
Zurich2007 MySQL Query OptimizationZurich2007 MySQL Query Optimization
Zurich2007 MySQL Query Optimization
 
20090323 Phpstudy
20090323 Phpstudy20090323 Phpstudy
20090323 Phpstudy
 
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPHow To Create Custom DSLs By PHP
How To Create Custom DSLs By PHP
 
Oracle Cloudで実現できる High Performance Computing 最新情報
Oracle Cloudで実現できる High Performance Computing 最新情報Oracle Cloudで実現できる High Performance Computing 最新情報
Oracle Cloudで実現できる High Performance Computing 最新情報
 
Yakiniku(焼き肉) on the Cloud
Yakiniku(焼き肉) on the CloudYakiniku(焼き肉) on the Cloud
Yakiniku(焼き肉) on the Cloud
 
4200 Kte7.0 Training V1.0
4200 Kte7.0 Training V1.04200 Kte7.0 Training V1.0
4200 Kte7.0 Training V1.0
 
P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SD
 
What Can Compilers Do for Us?
What Can Compilers Do for Us?What Can Compilers Do for Us?
What Can Compilers Do for Us?
 
使いこなそうGUC
使いこなそうGUC使いこなそうGUC
使いこなそうGUC
 
Amazon Ec2
Amazon Ec2Amazon Ec2
Amazon Ec2
 
Itpub电子杂志(第三期)
Itpub电子杂志(第三期)Itpub电子杂志(第三期)
Itpub电子杂志(第三期)
 
Implementing SSH in Java
Implementing SSH in JavaImplementing SSH in Java
Implementing SSH in Java
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

MySQL Clusterで高性能システムを構築する際のポイント

  • 1. MySQL Clusterで高性能システムを 構築する際のポイント 住商情報システム株式会社, 廣濱顕司 2008/10/31, @ MySQL ユーザコンファレンス 2008
  • 2. 自己紹介  2003年よりMySQL関連の業務を担当  2003/8/4にLarry Stefonic氏とサンフラン シスコでMTGしたのが全ての始まり  立ち上げ時はMySQL社とのパートナリ ングその他雑用全般を担当  現在は以下のMySQL関連業務  コンサルティング  トレーニング講師  サポート  趣味  旅行  ガジェット 2 (c) Sumisho Computer Systems Corp.
  • 3. Agenda MySQL Clusterとは MySQL ClusterへのSCSの取り組み ベンチマーク MySQL Clusterのシステム構成例 さいごに 3 (c) Sumisho Computer Systems Corp.
  • 4. MySQL Clusterとは 4 (c) Sumisho Computer Systems Corp.
  • 5. MySQL Clusterとは  特徴  非共有ディスク型  特殊なHWを必要としない  アクティブ・アクティブ型  フェールオーバーの時間が非常に短い  インメモリデータベース (5.1以降はディスクテーブルもサポー ト)  高い性能  高い可用性  各ノードの冗長構成が可能 5 (c) Sumisho Computer Systems Corp.
  • 6. MySQL Cluster概要図 アプリ アプリ JAVA/C++アプリ JAVA/C++アプリ SQL Node SQL Node Data Node Data Node Data Node Data Node Management Node 6 (c) Sumisho Computer Systems Corp.
  • 7. MySQL Cluster詳細図 アプリ アプリ JAVA/C++アプリ MySQL上位層 JAVA/C++アプリ SQL Node NDB NDB API MyISAM InnoDB HEAP (NDB API) Data Node Data Node Data Node Data Node Management Node 7 (c) Sumisho Computer Systems Corp.
  • 8. MySQL Clusterを利用するアプリケーション  SQL Node経由  ストレージエンジンの一つとして簡単に利用できる  MyISAM, InnoDBテーブルなどと混在できる  MyISAM, InnoDBテーブルなどと同等に扱える  SQLクエリの発行など  NDBアプリケーション(JAVA/C++アプリ)  NDB APIを利用して直接Data NodeへアクセスするJAVAや C++で記述されたアプリケーション  SQLクエリを発行することはできないが、非常に高速 8 (c) Sumisho Computer Systems Corp.
  • 9. MySQL Clusterの配布形態 MySQL Cluster 5.1.23 (バイナリ/ソース) Data Nodeの改良 Time MySQL Cluster 5.1.23 CGE 6.2.14 (ソース MySQL Cluster 5.1.23 CGE 6.3.13 (ソース コードのみ) コードのみ) MySQL Cluster 5.1.24 (ソースコードのみ) 以後バイナリ版ではNDBCLUSTER エンジンは無効となる 2008/5 MySQL Cluster 6.2.15, CGE/SE, MySQL Cluster 6.2.15, CGE/SE, MySQL Cluster 6.3.x (ソースコードのみ) Commercialバイナリ GPLバイナリ (SQL Node: 5.1.23, Data Node: 6.2.14) (SQL Node: 5.1.23, Data Node: 6.2.14) GAとしてリリース 2008/6 MySQL Cluster 6.3.17 GPLバイナリ 9 (c) Sumisho Computer Systems Corp.
  • 10. MySQL Clusterエディションの違い 機能 SE CGE (Standard Edition) (Carrier Grade Edition) NDB Bindings なし あり (C++ - NDB API, Java - NDB/J) Geographical Replication なし オプション (有料) LDAP Interface なし オプション (有料)  NDB Bindings  JAVAやC++などのアプリケーションからNDB APIを利用して直接Data Nodeへアクセスする方法  Geographical Replication  MySQL Cluster ReplicationやGlobal Replicationと呼ばれていた  MySQL Clusterをサイト間で非同期レプリケーションする仕組み  ディザスターリカバリーに対応  SEとCGEの違い  バイナリ上の違いは無い  ライセンス上の違いだけ 10 (c) Sumisho Computer Systems Corp.
  • 11. MySQL ClusterへのSCSの取り組み 11 (c) Sumisho Computer Systems Corp.
  • 12. MySQL ClusterへのSCSの取り組み  2004年  MySQL Clusterの検証を開始  IPAプロジェクト (2004-2005)  オープンソースDBMSの評価プロジェクトにMySQL Cluster担当として参 加  Linux World 2005  日立ブレードシンフォニーでMySQL Clusterをデモンストレーション  Linux World 2006  「MySQL Clusterの最適構成」セッション担当  2007年~  実案件における問い合わせ/サービス提供 12 (c) Sumisho Computer Systems Corp.
  • 13. IPAプロジェクトの概要  正式名称  2005年度上期オープンソースソフトウェア活用基盤整備事業 「OSS性能・信頼性評価 / 障害解析ツール開発」DB層  SCSはMySQL Cluster担当として参加  DBT(負荷ツール)を利用したDBMS性能検証にもMySQL担当 として参画  評価レポートなどはIPAのサイトで公開中  http://www.ipa.go.jp/software/open/forum/development/index.h tml 13 (c) Sumisho Computer Systems Corp.
  • 14. IPAプロジェクトの結果  MySQL ClusterのHA機能で不可解な挙動は無い  ノード障害、ネットワーク障害、サーバー障害などにも対応  フェールオーバーは非常に高速:数秒  インターコネクトにSCI (Dolphin Interconnect Solutions 社)を利用することで性能は最大50%向上した  MySQL Cluster 4.1 / 5.0には高負荷時の安定性で若干 の課題あり  安定性は6.2で解決  性能はCGEおよび6.2で改善 14 (c) Sumisho Computer Systems Corp.
  • 15. ベンチマーク 15 (c) Sumisho Computer Systems Corp.
  • 16. ベンチマーク実施時の各種スペック  HW: HP ProLiant DL380 * 2台  CPU: Quad Core Xeon 2.6GHz * 2  Memory: 16GB  HDD: SAS 72GB, 15,000rpm  SW: Red Hat Enterprise Linux 5.1 (EM64T)  MySQL Cluster: 5.1.23  MySQL Cluster CGE: 5.1.23 (mysql-5.1.23-ndb-6.2.14- telco)  ベンチマークソフト: mysqlslap 16 (c) Sumisho Computer Systems Corp.
  • 17. サーバーの基本構成 mysqlslap SQL Node SQL Node Data Node Data Node HP ProLiant DL380 HP ProLiant DL380 17 (c) Sumisho Computer Systems Corp.
  • 18. mysqlslapの設定  テーブルスキーマ カラム名称 データ型 属性  右表のとおり id VARCHAR(32) PRIMARY KEY intcol1 INT  初期データサイズ intcol2 INT  100万件 intcol3 INT intcol4 INT  800MBほど intcol5 INT charcol1 VARCHAR(128)  クエリ種別 charcol2 VARCHAR(128)  MIXED: PK SELECTと charcol3 VARCHAR(128) INSERTの混在 charcol4 VARCHAR(128) charcol5 VARCHAR(128) 18 (c) Sumisho Computer Systems Corp.
  • 19. a. MySQL Cluster Carrier Grade Edition b. ディスクテーブル c. ノード数 d. InnoDB 19 (c) Sumisho Computer Systems Corp.
  • 20. a. MySQL Cluster CGE  ベンチマークの目的  MySQL ClusterとMySQL CGE (2008/5以前)の性能を比較し たい  比較バージョン  MySQL Cluster 5.1.23  MySQL Cluster 5.1.23 CGE (Data Node: 6.1.23)  構成  Data Node: 2台  レプリカ(冗長性): 2  SQL Node: 2  データ: 初期データ100万(約800MB)  クエリ種別: MIXED (PK SELECTとINSERTのMIX) 20 (c) Sumisho Computer Systems Corp.
  • 21. a. MySQL Cluster CGE:構成図 mysqlslap SQL Node SQL Node Data Node Data Node HP ProLiant DL380 HP ProLiant DL380 21 (c) Sumisho Computer Systems Corp.
  • 22. a. MySQL Cluster CGE:結果 10000 9000 8000 7000 スループット(TP/S) 6000 5000 4000 3000 2000 1000 0 0 50 100 150 200 250 クライアント数 MySQL5.1.23 MySQL5.1.23-ndb6.2.14 22 (c) Sumisho Computer Systems Corp.
  • 23. a. MySQL Cluster CGE:結果のまとめ  結果  MySQL Cluster CGE (2008/5以前)では最大25%の性能改善 が確認できた  現在のMySQL Cluster 6.2 / 6.3は、このCGEをベースとしている  同時接続数=50で最も良い性能  2006年に実施したベンチマーク結果と同じ(MySQL Cluster 5.0) 23 (c) Sumisho Computer Systems Corp.
  • 24. a. MySQL Cluster Carrier Grade Edition b. ディスクテーブル c. ノード数 d. InnoDB 24 (c) Sumisho Computer Systems Corp.
  • 25. b. ディスクテーブル  ベンチマークの目的  5.1からサポートされたディスクテーブル(ディスクベーステー ブル)が実際に「使える」レベルのものかを判断したい  ベンチマークの内容  ディスクテーブル用のバッファの値を変えて計測した  構成  Data Node: 2台  レプリカ(冗長性): 2  SQL Node: 2  データ: 初期データ100万(約800MB)  クエリ種別: MIXED (PK SELECTとINSERTのMIX) 25 (c) Sumisho Computer Systems Corp.
  • 26. b. ディスクテーブル:構成図 mysqlslap SQL Node SQL Node Data Node Data Node HP ProLiant DL380 HP ProLiant DL380 26 (c) Sumisho Computer Systems Corp.
  • 27. b. ディスクテーブル:結果 9000 8000 7000 6000 スループット(TP/S) 5000 4000 3000 2000 1000 0 0 50 100 150 200 250 クライアント数 メモリベース ディスクベース ディスクベース DiskPageBufferMemory=1G ディスクベース DiskPageBufferMemory=500M 27 (c) Sumisho Computer Systems Corp.
  • 28. b. ディスクテーブル:結果のまとめ  結果  ディスクテーブルの性能は低い  DiskPageBufferMemoryをチューニングすることで性能は改善 するが、効果は限定的  バッファに全データが乗る場合はメモリテーブルと同等の性能  バッファに半分以上のデータが乗る場合でもメモリテーブルの1/4ほ どの性能  可能な限り多く割り当てることを推奨  デフォルトは64MB  mysqlslapはディスクテーブルに対応していないので手を 加えた  SCSのサイトでパッチを公開中 28 (c) Sumisho Computer Systems Corp.
  • 29. a. MySQL Cluster Carrier Grade Edition b. ディスクテーブル c. ノード数 d. InnoDB 29 (c) Sumisho Computer Systems Corp.
  • 30. c-1. SQL Node  ベンチマークの目的  SQL Nodeのノード数と性能の関係を明らかにして、構成を考 える際の指針とする  構成  Data Node: 2台  レプリカ(冗長性): 2  SQL Node: 1, 2, 4  データ: 初期データ100万(約800MB)  クエリ種別: MIXED (PK SELECTとINSERTのMIX) 30 (c) Sumisho Computer Systems Corp.
  • 31. c-1. SQL Node:構成図 mysqlslap mysqlslap mysqlslap mysqlslap SQL Node SQL Node SQL Node SQL Node Data Node Data Node HP ProLiant DL380 HP ProLiant DL380 31 (c) Sumisho Computer Systems Corp.
  • 32. c-1. SQL Node:結果 25000 20000 スループット(TP/S) 15000 10000 5000 0 0 50 100 150 200 250 300 350 400 450 クライアント数 SQL Node: 1台 SQL Node: 2台 SQL Node: 4台 32 (c) Sumisho Computer Systems Corp.
  • 33. c-1. SQL Node:結果のまとめ  結果  SQL Node1台あたり「50同時接続で最大性能」という傾向は 変わらない  SQL Node4台までは順当に性能はスケールした  Data NodeのCPU利用率はSQL Node 4台で、初めて90%近く まで上昇  6.2, 6.3ではData Nodeはシングルスレッドなので複数コアなどは有 効活用できない 33 (c) Sumisho Computer Systems Corp.
  • 34. c-2. Data Node  ベンチマークの目的  Data Nodeのノード数と性能の関係を明らかにして、構成を考 える際の指針とする  レプリカの数(冗長構成)は2で固定する  構成  Data Node: 2, 4, 6  レプリカ(冗長性): 2  SQL Node: 2  データ: 初期データ100万(約800MB)  クエリ種別: MIXED (PK SELECTとINSERTのMIX) 34 (c) Sumisho Computer Systems Corp.
  • 35. c-2. Data Node:構成図 mysqlslap SQL Node SQL Node Data Node Data Node Data Node Data Node Data Node Data Node HP ProLiant DL380 HP ProLiant DL380 35 (c) Sumisho Computer Systems Corp.
  • 36. c-2. Data Node:結果 9000 8000 7000 6000 スループット(TP/S) 5000 4000 3000 2000 1000 0 0 50 100 150 200 250 クライアント数 Data Node 2 Data Node 4 Data Node 6 36 (c) Sumisho Computer Systems Corp.
  • 37. c-2. Data Node:結果のまとめ  結果  Data Nodeを増やすことで性能は劣化した  性能劣化の原因は、ノードが増えたことによるオーバーヘッド の増加にあると思われる 37 (c) Sumisho Computer Systems Corp.
  • 38. a. MySQL Cluster Carrier Grade Edition b. ディスクテーブル c. ノード数 d. InnoDB 38 (c) Sumisho Computer Systems Corp.
  • 39. d. InnoDB  ベンチマークの目的  「更新処理を負荷分散できる」ことを特徴の一つとしている MySQL Clusterが、最もポピュラーなInnoDBと性能面でどこま で迫れるか判断したい  構成  Data Node: 2  レプリカ(冗長性): 2  SQL Node: 2  データ: 初期データ100万(約800MB)  クエリ種別: MIXED (PK SELECTとINSERTのMIX)  クライアント数:50 39 (c) Sumisho Computer Systems Corp.
  • 40. d. InnoDB:構成図 mysqlslap SQL Node SQL Node Data Node Data Node HP ProLiant DL380 HP ProLiant DL380 40 (c) Sumisho Computer Systems Corp.
  • 41. d. InnoDB:結果 10000 9000 8000 7000 6000 スループット(TP/S) 5000 4000 3000 2000 1000 0 InnoDB (binlog-format=mixed) MySQL Cluster 5.1.23 メモリベース MySQL Cluster CGE 6.2.13 メモリベース 41 (c) Sumisho Computer Systems Corp.
  • 42. d. InnoDB:結果のまとめ  結果  InnoDB (バイナリログ有効)よりもMySQL Clusterの方が性能 は良い  ただし、バイナリログを無効にしたInnoDBは倍近い性能と なったので、「書き込みキャッシュ」をサポートしたディスクコン トローラでは、バイナリログ有効のInnoDBの性能も改善する はず 42 (c) Sumisho Computer Systems Corp.
  • 43. a,b,c,d: ベンチマーク結果のまとめ  MySQL Cluster 6.2は安定している  MySQL Cluster 4.1, 5.0, 5.1を利用している場合はアップグレー ドを強く推奨  ディスクテーブルの全面的な採用は未だ早い  性能面での懸念:特定のテーブルのみとするべき  Data Node数は少なく、SQL Node数は多く、レプリカ数 は少なく、同時接続数は50くらい、が初期構成の目安  MySQL Cluster 5.0と傾向は変わらない  Data Nodeはシングルスレッドでの動作となるので、CPU などを増やしても性能はスケールしない  6.4で改善される予定 43 (c) Sumisho Computer Systems Corp.
  • 44. MySQL Clusterのシステム構成例 44 (c) Sumisho Computer Systems Corp.
  • 45. MySQL Clusterで高性能システムを構築する際のポイント  MySQL Cluster 6.2を利用する  データサイズを見積もる  ディスクテーブルの利用は控えめに  SQL Nodeの冗長化  アプリケーションレベル/ロードバランサーなどで実現  Data Node  冗長性(レプリカ)は2で十分  性能重視の場合はNDB APIの利用も検討する 45 (c) Sumisho Computer Systems Corp.
  • 46. MySQL Clusterシステム構成例 Clients ClientsClients Clients Clients Clients Clients Clients サイトA ロードバランサー サイトB アプリケーション アプリケーション アプリケーション アプリケーション Geographical SQL Node SQL Node Repliation SQL Node SQL Node Data Node Data Node Data Node Data Node JAVA/C++ JAVA/C++ JAVA/C++ JAVA/C++ アプリケーション アプリケーション アプリケーション アプリケーション Clients ClientsClients Clients Clients Clients Clients Clients Clients ClientsClients Clients Clients Clients Clients Clients 46 (c) Sumisho Computer Systems Corp.
  • 47. MySQL Clusterシステム構成例  サイトA、サイトBでマスター・マスターのGeographical Replication  ディザスターリカバリ対策  SQL Node経由では性能が十分で無いアプリケーション はNDB APIを利用して直接Data Nodeへアクセス  SQL Nodeの冗長性はロードバランサーで実現 47 (c) Sumisho Computer Systems Corp.
  • 48. MySQL Clusterに適したアプリケーション  データの見積もりが設計時にある程度可能なシステム  JOINやSUB QUERYをほとんど利用しないアプリケーショ ン  検索するカラムにはインデックスがはられている  単純なSQLクエリを大量に発行するアプリケーション  高い可用性が要求されるシステム 48 (c) Sumisho Computer Systems Corp.
  • 49. MySQL Clusterに適さないアプリケーション  ディスクテーブルの利用を前提とする大規模データベー ス  InnoDBをお勧めします  データの大部分が文字列で、検索が主体のアプリケー ション  InnoDBとMySQL+Sennaのレプリケーション構成をお勧めしま す  ダウンタイムが許容されるシステム  MyISAMやInnoDBをレプリケーションで利用することをお勧め します  複雑なSQLクエリを発行するシステム  JOINやSUB QUERYを多用する場合には性能が劣化します 49 (c) Sumisho Computer Systems Corp.
  • 50. さいごに 50 (c) Sumisho Computer Systems Corp.
  • 51. Dolphin Zone by SCS  Dolphin Zoneとは  SUNの仮想化アプライアンス「Viking Zone」にSCSのMySQL設 計、構築、サポートサービスを付加したパッケージ製品  HW構成  Sun SPARC Enterprise T5220 * 2台  Sun StorageTek 2540 FC * 1台 51 (c) Sumisho Computer Systems Corp.
  • 52. Zoneとは?  SUNが提供する仮想化の仕組み  他の仮想化と比べてオーバーヘッドが少ない  Global Zone Local Zone  従来のSolaris環境  Xenのdom0に相当 Global Zone Local Zone  Local Zone  Global Zone上に構成される仮想環境 Local Zone  XenのdomUに相当 Local Zone 52 (c) Sumisho Computer Systems Corp.
  • 53. MySQL Clusterの制限のひとつ  サービスを提供している最中に、当初の見積よりもデータ容 量が大きくなってしまったら  MySQL Clusterだけでは対応が難しい  メモリテーブル、ディスクテーブルともにテーブルサイズの見積が重 要  Data Nodeの構成変更にはMySQL Cluster全体の再起動が 必要  冗長性(レプリカ数)の変更  Data NodeのIPアドレスの変更  Data Node数の変更  Data Memory, Index Memoryなどの増加は可能  6.4でData Nodeの動的追加などが実装予定  6.2, 6.3ではどうするか? 53 (c) Sumisho Computer Systems Corp.
  • 54. Dolphin Zoneが有効なシナリオ  当初のデータ見積は64GBで、128GBまで拡張する可能 性がある  128GBまでデータが増大するかどうか、サービスを開始 しないと分からない  性能の観点からディスクテーブルは使いたくない  初期投資は極力抑えたい →Dolphin Zoneが解決!!! 54 (c) Sumisho Computer Systems Corp.
  • 55. Dolphin ZoneでのMySQL Cluster構成  Local ZoneにData Nodeをインストールする  MySQL Clusterの設定  SQL Node : 多めに設定→性能には影響しない  Data Node : 多めに設定→性能に影響するので注意  当面のサーバーは2台  データ増加時はData Nodeを他のサーバーのLocal Zoneへ移行/マイグレーションする  Data Nodeが稼働しているLocal ZoneのIPアドレスはそのまま なので、オンラインで移行できる 55 (c) Sumisho Computer Systems Corp.
  • 56. サービス開始時  SQL Node, Data NodeはLocal Zone上に構成する SQL Node SQL Node SQL Node SQL Node Data Node Data Node Data Node Data Node 最大搭載物理メモリ:64GB 最大搭載物理メモリ:64GB 56 (c) Sumisho Computer Systems Corp.
  • 57. データ増加時:オンラインでマイグレーション  Data Nodeを起動しているLocal Zoneを別のサーバーへ移行 する  Data NodeのIPアドレスは変わらないので、全てオンラインで 実施できる SQL Node SQL Node SQL Node SQL Node SQL Node SQL Node SQL Node SQL Node Data Node Data Node Data Node Data Node 最大搭載物理メモリ:64GB 最大搭載物理メモリ:64GB 最大搭載物理メモリ:64GB 最大搭載物理メモリ:64GB 57 (c) Sumisho Computer Systems Corp.
  • 58. データ増加時の構成  約128GBの物理メモリをData Nodeで利用できる SQL Node SQL Node SQL Node SQL Node SQL Node SQL Node SQL Node SQL Node Data Node Data Node Data Node Data Node 最大搭載物理メモリ:64GB 最大搭載物理メモリ:64GB 最大搭載物理メモリ:64GB 最大搭載物理メモリ:64GB 58 (c) Sumisho Computer Systems Corp.
  • 59. 住商情報システムでは  MySQLトレーニング  MySQL 5.1 for DBA  MySQL High Availability  MySQLサポート  2005/4より開始  60社以上への導入実績  MySQLプロフェッショナルサービス(コンサルテーション)  システム・インテグレーション  MySQLを利用したシステム構築  OracleからMySQLへのマイグレーション  MySQLとOracleを利用するシステム構築  →Oracleのプロフェッショナルも同じチームに多数在籍 59 (c) Sumisho Computer Systems Corp.
  • 60. 参考資料 mysql scs 検索  http://www.scs.co.jp/mysql/  今回のプレゼン資料  mysqlslapパッチ  その他各種技術資料  DB Magazine 2008年8月号  「徹底検証:MySQL Cluster」  Viking Zone  http://www.clubscs.com/vikingzone/ 60 (c) Sumisho Computer Systems Corp.
  • 61. さいごに  MySQL Cluster 6.2は「使え」ます  海外での事例は多数  国内でも増えてきている  ご清聴ありがとうございました 61 (c) Sumisho Computer Systems Corp.