[C21] MySQL Cluster徹底活用術 by Mikiya Okuno
-
Upload
insight-technology-inc -
Category
Documents
-
view
2.907 -
download
1
Transcript of [C21] MySQL Cluster徹底活用術 by Mikiya Okuno
![Page 1: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/1.jpg)
1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MySQL Cluster徹底活用術
日本オラクル株式会社MySQL Global Business UnitPrincipal Technical Support Engineer
![Page 2: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/2.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.2
免責事項
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情
報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではない
ため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
Oracleと Javaは、 Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場
合があります。
![Page 3: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/3.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3
アジェンダ
MySQL Clusterの概要
MySQL Cluster 7.3の新機能
パフォーマンス
構成例
運用について
![Page 4: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/4.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4
MySQL Cluster の概要
![Page 5: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/5.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5
MySQL Cluster とは
● 並列分散型の RDBMS
– 複数のノードでデータと処理を分散
● シェアードナッシング・アーキテクチャ
● ネットワークを経由してノード同士が通信
● 台数に応じたスケールアウト
– ビルトインのHA機能
● MySQLサーバのストレージエンジンのひとつとして実装
– ACID準拠のトランザクション
– レプリケーションなどのMySQL 従来の機能が利用可能
– 通常のMySQLサーバーとは別プロダクト
– コミュニティ版あり(GPLv2 )
![Page 6: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/6.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6
MySQL Cluster の動作イメージ
データノード
SQL ノード
アプリケーション アプリケーション アプリケーション
NDB API
通常のMySQLプロトコル
管理ノード
SQL ノード SQL ノード
データノードデータノード
データノード
データノード
MGM API
![Page 7: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/7.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7
可用性について
● 管理ノード
– 特に必要はない
– 管理ノード不在でもデータノードは動き続ける
● ただしその間のログは取れない
● データノード
– データノード内部でデータを同期レプリケーション
– すべてのパーティションでレプリカがひとつでも生きていればOK
● SQLノード
– どのノードからでも同じデータへアクセス可能
● どれかひとつ生きていればOK
![Page 8: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/8.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8
シェアード・ナッシング・アーキテクチャ
ノードグループ 1
データノード 1
データノード 2
フラグメント 1プライマリ
フラグメント 3セカンダリ
フラグメント 1セカンダリ
ノードグループ 2
データノード 3
データノード 4
フラグメント 2プライマリ
フラグメント 4セカンダリ
フラグメント 2セカンダリ
フラグメント 4プライマリ
フラグメント 3プライマリ
パーティション3
パーティション1
パーティション2
パーティション4
![Page 9: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/9.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9
シェアード・ナッシング・アーキテクチャ
ノードグループ 1
データノード 1
データノード 2
フラグメント 1プライマリ
フラグメント 3セカンダリ
フラグメント 1セカンダリ
ノードグループ 2
データノード 3
データノード 4
フラグメント 2プライマリ
フラグメント 4セカンダリ
フラグメント 2セカンダリ
フラグメント 4プライマリ
フラグメント 3プライマリ
![Page 10: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/10.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10
フェイルオーバー
ノードグループ 1
データノード 1
データノード 2
フラグメント 1プライマリ
フラグメント 3セカンダリ
フラグメント 1セカンダリ
フラグメント 3プライマリ
ノードグループ 2
データノード 3
データノード 4
フラグメント 2プライマリ
フラグメント 4セカンダリ
フラグメント 2セカンダリ
フラグメント 4プライマリ
![Page 11: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/11.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11
フェイルオーバー
ノードグループ 1
データノード 1
データノード 2
フラグメント 1オフライン
フラグメント 3オフライン
フラグメント 1プライマリ
フラグメント 3プライマリ
ノードグループ 2
データノード 3
データノード 4
フラグメント 2プライマリ
フラグメント 4セカンダリ
フラグメント 2セカンダリ
フラグメント 4プライマリ
![Page 12: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/12.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12
フェイルオーバー
ノードグループ 1
データノード 1
データノード 2
フラグメント 1オフライン
フラグメント 3オフライン
フラグメント 1プライマリ
フラグメント 3プライマリ
ノードグループ 2
データノード 3
データノード 4
フラグメント 2プライマリ
フラグメント 4プライマリ
フラグメント 2オフライン
フラグメント 4オフライン
![Page 13: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/13.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13
システムダウン
ノードグループ 1
データノード 1
データノード 2
フラグメント 1オフライン
フラグメント 3オフライン
フラグメント 1オフライン
フラグメント 3オフライン
ノードグループ 2
データノード 3
データノード 4
フラグメント 2プライマリ
フラグメント 4プライマリ
フラグメント 2オフライン
フラグメント 4オフライン
![Page 14: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/14.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14
システムダウン
ノードグループ 1
データノード 1
データノード 2
フラグメント 1オフライン
フラグメント 3オフライン
フラグメント 1オフライン
フラグメント 3オフライン
ノードグループ 2
データノード 3
データノード 4
フラグメント 2プライマリ
フラグメント 4プライマリ
フラグメント 2オフライン
フラグメント 4オフライン
パーティションへアクセス不能!!
![Page 15: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/15.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15
レプリケーション対応
データノード
データノード
データノード
データノード
データノード群
SQL ノード
マスター
データノード
データノード
データノード
データノード
データノード群
SQL ノード
スレーブ
バイナリログリレーログ
I/Oスレッド
SQLスレッド
マスタースレッド
仕組みは通常のレプリケーションと同じ
![Page 16: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/16.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16
レプリケーション・フェイルオーバー
データノード
データノード
データノード
データノード
データノード群
SQL ノードStandby
SQL ノードActive
マスター
データノード
データノード
データノード
データノード
データノード群
SQL ノードStandby
SQL ノードActive
スレーブ
チャネルを構成するSQL ノードに障害が発生すると F/O
![Page 17: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/17.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17
MySQL Cluster 7.3 の新機能
![Page 18: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/18.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18
MySQL Cluster 7.3 登場!!
● MySQLサーバーのバージョンが 5.6に
● 外部キー制約のサポート
● NDB APIにおけるボトルネックの解消
● Node.js用ドライバ
● Auto Installer
![Page 19: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/19.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19
MySQL Server 5.6 搭載
● MySQL 5.6の新機能が全て利用可能!!
– サブクエリが Semi-JOIN最適化で高速に
– BKA Join
– EXPLAIANの改善
– オプティマイザトレース
– パフォーマンススキーマの強化
– ジャイアントロック( LOCK_open )の撤廃
![Page 20: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/20.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20
待望の外部キー制約サポート
● 普通に使える(尖っていない) DBMSへ一歩近づいた
– 自前で制約を実装する必要がなくなった
● 使い方は InnoDB と同じ
● 参照される(親テーブル)カラムは、主キーないしはユニークキーであること
![Page 21: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/21.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21
NDB API のボトルネック解消
● NDB APIの Transporter Mutexが分割された
● ひとつの SQL ノードで処理可能な性能の上限が上昇
![Page 22: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/22.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22
Node.js 用ドライバ
● NDB APIを用いた JavaScript用の新しいラッパー
– データノードへダイレクトにアクセスすることでパフォーマンスを稼ぐ
– 低レイテンシー
– スケーラブル
● 既に他のラッパーあり
– Java
– memcached
![Page 23: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/23.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23
Auto Installer
● MySQL Clusterをお手軽に構成できるユーティリティ
● Webベース
![Page 24: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/24.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24
パフォーマンス
![Page 25: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/25.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25
InnoDB との性能特性に注意
● InnoDB とは得手不得手が違う
– 同じような感覚で使うとパフォーマンスがでないことも・・・
– 如何に苦手なワークロードを克服することが重要
● 得意な処理は問題にはならない
– スケール戦略も異なる
– ハードウェア要件も異なる
![Page 26: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/26.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26
主キーによるルックアップは速い!
● 負荷が均等に分散するためスケールアウトが容易
SQLノード各データノードに
負荷が均等に分散
![Page 27: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/27.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27
細かいスキャン(範囲検索)が苦手
データノードTC
データノード データノード
SQLノード
1.スキャンリクエスト
2.他のノードへリクエスト
3.データを返送
すべてのデータノードが応答を強いられる
![Page 28: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/28.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28
大規模なスキャンは得意
● Engine Condition Pushdown最適化
ストレージエンジン
SQL実行部
ストレージエンジン
SQL実行部
Pushdownなし Pushdownあり
WHERE句で絞り込み
WHERE句で絞り込み
並列処理
![Page 29: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/29.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29
JOIN が遅い?
● MySQL ( SQL ノード)がサポートしているのはNested Loopのみ
– 内部表へのアクセスにオーダードインデックスが使われていたら要注意!
– 内部表から1行フェッチするたびに苦手な細かいスキャン = 全データノードへ問い合わせ
● MySQL Cluster 7.2で解決!!
– データノード側で JOINができるようになった
– Adaptive Query Localization ( AQL )もしくは Pushdown JOIN
● MySQL Cluster 7.3でさらに改善
– Batched Key Access というアルゴリズムが加わった
– AQL で解決できないケースも拾えるようになった
![Page 30: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/30.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30
ユーザー定義パーティショニング
通常のパーティショニング ユーザー定義パーティショニング
customersテーブル
cust_id= 100
cust_id= 100
cust_id= 100
cust_id= 100
cust_id= 100
cust_id= 100
cust_id= 100
ordersテーブル
customersテーブル
ordersテーブル
データノード
データノード
データノード
データノード
![Page 31: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/31.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31
もっと高いスケーラビリティが欲しい場合→ InnoDB と連携
データノード
データノード
データノード
データノード
スレーブマスター
INNODBINNODB
スレーブ
INNODBINNODB
スレーブ
INNODBINNODB
更新
SQLノード
JOINアプリケーション
SQLノード
SQLノード
![Page 32: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/32.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32
memcached
データノード
データノード群
管理ノード データノード
データノード
データノード
SQLノード
SQLノード
memcached memcached
SQL ノードと同じデータにアクセス可能!!
![Page 33: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/33.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33
構成例
![Page 34: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/34.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34
アプリケーション、 SQL ノード、データノードが同居
host1 host2
データノード
SQL ノード データノード
SQL ノード
アプリケーション アプリケーション
ロ ー ド バ ラ ン サ ー
![Page 35: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/35.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35
Connector/J
host1 host2
データノード
SQL ノード データノード
SQL ノード
host3
アプリケーション
Connector/J
![Page 36: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/36.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36
MySQL Proxy
host1 host2
データノード
SQL ノード データノード
SQL ノード
host3
アプリケーション
MySQL Proxy
host4
![Page 37: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/37.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37
MySQL Proxy
SQL ノード群
SQL ノード
host
アプリケーション
M y S Q L P r o x y
データノード
データノード
データノード
データノード
データノード群
SQL ノード SQL ノード SQL ノード
SQL ノード SQL ノード SQL ノード SQL ノード
![Page 38: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/38.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38
アプリケーションと SQL ノードが同居
データノード
データノード群
データノード
データノード
データノード
SQL ノード
アプリケーション
ロ ー ド バ ラ ン サ ー
SQL ノード
アプリケーション
SQL ノード
アプリケーション
SQL ノード
アプリケーション
SQL ノード
アプリケーション
SQL ノード
アプリケーション
UNIX Domainソケットで接続
![Page 39: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/39.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39
世界最小構成(?): Beagle Bone Black● ハードウェア
– AM335x 1GHz ARM® Cortex-A8
– 512MB DDR3 RAM
– 2GB 8-bit eMMC on-board flash storage
– micro-SDカードスロット
● Toshiba microSDHC UHS-I 16GB EXCERIA
● ソフトウェア
– Gentoo Linux
– MySQL Cluster 7.3.2
![Page 40: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/40.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40
電源USB x 4 x 2
100Mbps8ポート
スイッチングハブBeagleBone
Black x 6
![Page 41: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/41.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.41
config.ini 抜粋
[NDBD DEFAULT]
NoOfReplicas=2
DataMemory=120M
IndexMemory=16M
MaxNoOfConcurrentScans=256
MaxNoOfTriggers=800
MaxNoOfTables=100
MaxNoOfOrderedIndexes=200
MaxNoOfAttributes=8000
MaxNoOfConcurrentOperations=100000
MaxNoOfConcurrentTransactions=4000
FragmentLogFileSize=8M
NoOfFragmentLogFiles=4
RedoBuffer=16M
ODirect=0
TimeBetweenEpochsTimeout=10000
TransactionDeadlockDetectionTimeout=12000
SharedGlobalMemory=12M
DiskPageBufferMemory=4M
TotalSendBufferMemory=8M
RealtimeScheduler=1
![Page 42: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/42.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.42
構成可能なトポロジの例
ID SQL ノード数 データノード数 レプリカ
A 2 4 2
B 4 2 2
C 3 3 1
D 5 1 1
![Page 43: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/43.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.43
0 10 20 30 40 50 60 700
50
100
150
200
250
Aro
Arw
Bro
Brw
Cro
Crw
Dro
Drw
ベンチマーク結果: BeagleBone Black / sysbench
tps
Threads
sysbench 0.5 without ranges
![Page 44: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/44.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.44
高性能マシン: Insight Qube
● ハードウェア(3台貸していただきました)
– Intel(R) Xeon(R) CPU E5-2680
● 8 コア 16 スレッド x 2 (合計 32スレッド)
– 768GB メモリ
– InfiniBand
● ソフトウェア
– RHEL 6.3
– MySQL Cluster 7.3.2
![Page 45: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/45.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.45
構成可能なトポロジの例
ID SQL ノード数 データノード数 レプリカ
A 1 1 1
B 1 2 2
C 1 4 ( 同一ホストに 2 ) 2
D 1 4 ( 同一ホストに 2 ) 1
![Page 46: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/46.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.46
ベンチマーク結果: Insight Qube / tpcc-mysql
0 20 40 60 80 100 120 1400
5000
10000
15000
20000
25000
A
B
C
D
Threads
TpmC
![Page 47: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/47.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.47
ベンチマーク結果についての考察
● 数値自体はかなり良い
– マシンが速かったお陰か( 32スレッド+ InfiniBand )
● データノード数に応じてスケールしなかった原因
– テストが不完全だったため確実なことは言えない
– SQL ノードを増やせなかったことが原因か
– より多くのノードを使って再検証予定
● Bパターンの性能が上がらなかったのは測定ミスの可能性
– 再検証で明らかにしたい
![Page 48: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/48.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.48
NUMA 対策
● 特定のNUMA ノードだけで動かす
– numactl –preferred=X ndbmtd ...
● 割り込み処理しない CPU
– irqbalance
● 他のプロセスに使用されない CPU
– isolcpus
● CPUバインドする
– ThreadConfig = recv={count=2},send={count=2},tc={count=4},ldm={count=8,cpubind=2-5,18-21}
![Page 49: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/49.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.49
運用のノウハウ
![Page 50: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/50.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.50
オンラインで可能なメンテナンス操作
● バックアップ
● テーブル定義変更
– インデックスの追加・削除
– カラムの追加
● 設定変更
● アップグレード・ダウングレード
![Page 51: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/51.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.51
バックアップ・リストア
● オンラインバックアップ機能搭載
– 高速
– 各データノードにバックアップファイルを作成
● ndb_restore コマンド
– API ノードとして動作
– バックアップファイルを読み取ってデータを再投入
● 結構遅い
![Page 52: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/52.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.52
Pint In Time リカバリ
● ndb_restore + バイナリログ
– ndb_restoreが Epoch と呼ばれる情報を格納
– Epochからバイナリログポジションを特定
– mysqlbinlog コマンドで特定したポジションから再実行
● 任意のポジションで停止可能
![Page 53: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/53.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.53
監視
● MySQL Enterprise Monitor
– MySQL ServerおよびMySQL Clusterの商用監視ツール
– SQL ノード、データノードの状態、システムリソースなどを監視
– 問題のあるクエリの特定に役立つQuery Analyzer機能
– SNMPやメールによる通知が可能
– http://www-jp.mysql.com/products/enterprise/monitor.html
![Page 54: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/54.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.54
● MySQL Cluster Manager
● 商用のCLIツール
● MySQL Clusterの管理を一元化
– インストール( Auto Installer相当)
– 設定変更
– ノード追加
– ローリングリスタートの自動化
– http://www-jp.mysql.com/products/cluster/mcm/
![Page 55: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/55.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.55
![Page 56: [C21] MySQL Cluster徹底活用術 by Mikiya Okuno](https://reader034.fdocument.pub/reader034/viewer/2022052316/5596d8981a28aba4098b4798/html5/thumbnails/56.jpg)
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.56 56