Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OCI MySQL Database高可用性&HeatWave検証
Search
Database Technology Inc.
May 28, 2021
Technology
0
4
OCI MySQL Database高可用性&HeatWave検証
Database Technology Inc.
May 28, 2021
Tweet
Share
More Decks by Database Technology Inc.
See All by Database Technology Inc.
ビジネスと共にスケールするMySQLDatabaseServiceのポテンシャルと旭松食品様の事例.pdf
dbtec
0
6
【Oracle Cloud Infrastructure】MySQL Database Service検証/mdsverification
dbtec
0
94
Other Decks in Technology
See All in Technology
日本が誇るイタリアのダンスミュージック!? ユーロビートって何??
minorun365
PRO
1
130
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
38k
PHP 9 に備えよ - 動的プロパティ、どうすればいぃ?
taisukearase
0
150
Observabilityジャーニーを実現するためのAWSサービス:OSS編
o11yfes2023
0
110
使われないものを作るな!出口から作るデータ分析基盤 / Data Platform Development Starting from the User Needs
amaotone
16
4k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
1.7k
大規模言語モデル (LLM)における低精度数値表現
pfn
PRO
3
780
Real World Type Puzzle and Code Generation
yukukotani
4
620
YJIT Makes Rails 1.7x faster / RubyKaigi 2024
k0kubun
0
110
Google Cloudを組織(企業)で運用する時のベストプラクティス × 健康の環境分離戦略 #まるクラ勉強会
yasumuusan
0
150
技術力の伸ばし方を考える
khirata
0
140
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
2k
Featured
See All Featured
BBQ
matthewcrist
80
8.8k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
In The Pink: A Labor of Love
frogandcode
138
21k
Clear Off the Table
cherdarchuk
85
310k
The Pragmatic Product Professional
lauravandoore
26
5.9k
Building an army of robots
kneath
300
41k
What's new in Ruby 2.0
geeforr
338
31k
Faster Mobile Websites
deanohume
300
30k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.7k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
7k
Designing on Purpose - Digital PM Summit 2013
jponch
111
6.5k
Unsuck your backbone
ammeep
664
57k
Transcript
Oracle Cloud Infrastructure MySQL Database 高可用性&HeatWave検証 2021/05/28 株式会社データベーステクノロジ
1. はじめに 2. 検証結果 1. 高可用性 2. HeatWave 3. 総評
© 2021 Database Technology Inc. All Rights Reserved. 2 目次
この度 弊社は MDS検証の第2回検証項目として、 高可用性ならびにHeatWaveの運用における調査・検証、 シングル構成とのパフォーマンス比較を実施しました。 その結果を本資料に纏めましたので 是非ご参考にしていただき サービス利用、 事前調査等の一助となれば幸甚です。 第1回検証結果についてはスライドシェアにて公開しております。
https://www.slideshare.net/ssuserbe6417/oracle-cloud-infrastructuremysql-database-servise2021416upd-246305196?qid=490e8f42- 6dff-46e2-b92a-8a047f828b0a&v=&b=&from_search=3 © 2021 Database Technology Inc. All Rights Reserved. 3 はじめに 高可用性に関してはLimited Availabilityリリース時点のものとなります。 Oracle、MySQLは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。
1. 高可用性 1. 構築・操作 2. 切り替えテスト 3. パフォーマンステスト © 2021
Database Technology Inc. All Rights Reserved. 4 検証項目 2. HeatWave 1. 機能概要調査 2. 構築・操作 3. パフォーマンステスト 4. 別視点でのパフォーマンステスト
1.高可用性検証 1-1 .構築・操作
© 2021 Database Technology Inc. All Rights Reserved. 6 MDS高可用性構成の説明
MySQLのグループレプリケーションで実装されており、 プライマリと2つのセカンダリの3つのMySQLインスタンスで構成されています。 ADまたはFD
© 2021 Database Technology Inc. All Rights Reserved. 7 利用概要図
VCN SUBNET DBシステム Internet Gateway Route Table Security Lists Security Lists クライアント AD-1 AD-2 AD-3 プライマリ セカンダリ セカンダリ ユーザーはDBシステムのエンドポイントにアクセスすることで、 高可用性を意識することなく稼働中のプライマリインスタンスにアクセスできます エンドポイント
© 2021 Database Technology Inc. All Rights Reserved. 8 構築
スタンドアロンのDBシステム構築手順の構成選択で、 「高可用性」を選択することで構築できます。
© 2021 Database Technology Inc. All Rights Reserved. 9 プライマリの手動切り替え
DBシステムの詳細画面で手動切り替え可能です。
© 2021 Database Technology Inc. All Rights Reserved. 10 バックアップ
従来のDBシステムのバックアップ手順と一切の差異がありません。 リストア 従来のDBシステムのリストア手順と一切の差異がありません。 構成選択では「高可用性」以外が選択不可となる制御がされています。 選択不可 選択不可
© 2021 Database Technology Inc. All Rights Reserved. 11 高可用性構成のDBシステム構築は、作成時はラジオボタン形式の選択で
「高可用性」を選ぶだけで作成でき、非常に簡単に構築可能です。 バックアップ・リストアについては特別必要な操作や設定もありません。 見解
1.高可用性検証 1-2 .切り替えテスト
AD-1 AD-2 AD-3 プライマリ セカンダリ セカンダリ © 2021 Database Technology
Inc. All Rights Reserved. 13 検証内容 DBシステム クライアント ⚫ 切り替え時のアプリの挙動 ⚫ 一時停止 or 切断 ⚫ 再接続される or されない ⚫ 切り替えに掛かる時間 ※SQLで結果が取得できない時間 検証方法 ⚫ 手動切り替え ※WEBコンソールで操作 ⚫ フェイルオーバー ※mysqlslapでメモリ負荷をかけて発生させる SQL連続発行 切り替え mysqlslap:MySQL公式サポートの負荷エミュレーションクライアント https://dev.mysql.com/doc/refman/ja/mysqlslap.html
© 2021 Database Technology Inc. All Rights Reserved. 14 検証環境
AD-1 AD-2 AD-3 プライマリ セカンダリ セカンダリ DBシステム クライアント クライアント シェイプ VM.Standard2.1 CPU 1 OCPU メモリ 15 GB ストレージ 50 GB アプリ Apache JMeter DBシステム 構成 高可用性 シェイプ MySQL.VM.Standard.E3.1.8GB CPU 1OCPU メモリ 8GB ストレージ 50GB Apache JMeter:JDBCリクエストやJavaプログラムを実行できるテストツール https://jmeter.apache.org/
© 2021 Database Technology Inc. All Rights Reserved. 15 検証結果
切り替え方法 アプリの挙動 再接続 再接続可能になるまでの時間 手動切り替え 切断される されない 1.558秒(10回平均値) フェイルオーバー 切断される されない 2.842秒(3回平均値) 切り替えが行われると、接続中アプリは切断されることが確認できました。 自動再接続はされませんので、アプリ側は再接続するような仕組みが必要です。 切り替えに掛かる時間は概ね1~3秒ですので、 アプリ側による再接続試行は1秒毎に数回が望ましいと考えます。
⚫ アプリ側 DB接続状況 ①・・・検証開始 特に何も発生せず(2分間) ②・・・3分半、SQLレスポンスなしを確認 ③・・・4分間、DB接続エラーを確認(コネクションプールはここで切断) ④・・・2分間、DB接続及びSQL応答を確認 ⑤・・・2秒間 DB接続エラーを確認
⑥・・・DB接続が可能となり、SQL応答あり ※②、③の状況はスワップ等 応答に時間のかかる状況若しくは ネットワークのサチ レーションが発生したと推察される(オラクル社MDSプロダクトマネージャ様見解) フェイルオーバー発生 切断 フェイルオーバーによる影響
© 2021 Database Technology Inc. All Rights Reserved. 17 フェイルオーバーの発生と挙動
mysqlslap を使用してメモリ負荷をかけることで、 フェイルオーバーの発生を確認しました。 プライマリが落ちた後、hostnameの切り替わりが確認できたので、 問題なくフェイルオーバーされたと考えています。 フェイルオーバーして状態がアクティブになってから、 旧プライマリへスイッチバックを行うと、 旧プライマリのhostnameが取得できたことから 自動復旧はされたと考えています。
1.高可用性検証 1-3 .パフォーマンステスト
© 2021 Database Technology Inc. All Rights Reserved. 19 検証内容
1分間に処理できるトランザクション数「tpmC」を計測します 検証方法 ベンチマークツール:tpcc-mysqlを使用 テスト毎にDBをバックアップより再作成します 高可用性構成については、プライマリの切り替え前後共に計測します 高可用性構成はADを跨いだ構成で計測します
© 2021 Database Technology Inc. All Rights Reserved. 20 検証環境
AD-1 AD-2 AD-3 プライマリ セカンダリ セカンダリ DBシステム (高可用性) クライアント クライアント シェイプ VM.Standard.E3.Flex CPU 48 OCPU メモリ 768 GB ストレージ 500 GB 負荷ツール tpcc-mysql DBシステム 構成 シングル / 高可用性 シェイプ MySQL.VM.Standard.E3.16.256GB CPU 16 OCPU メモリ 256 GB ストレージ 300 GB データ量 約 15 GB DBシステム (シングル) ADを跨いだ構成
© 2021 Database Technology Inc. All Rights Reserved. 21 検証結果
17,751 28,372 40,885 49,168 74,492 94,772 14,123 26,068 28,036 28,206 28,524 28,597 0 10,000 20,000 30,000 40,000 50,000 60,000 70,000 80,000 90,000 100,000 10 20 30 50 100 500 TpmC 同時接続数 シングルと高可用性の比較 シングル 高可用性(ADを跨いだ構成)
© 2021 Database Technology Inc. All Rights Reserved. 22 検証結果
14,123 15,468 9,753 0 5,000 10,000 15,000 20,000 10 TpmC 同時接続数 手動切り替え前後の比較 切り替え前 切り替え後 同一AD 切り替え後 クライアントとDBシステムが異なるAD
© 2021 Database Technology Inc. All Rights Reserved. 23 検証結果
高可用性構成の方がパフォーマンスが低い結果となりました。 グループレプリケーションのノード間同期による影響であると考えられます。 プライマリの切り替えによるパフォーマンスの影響は 殆ど無いと言える結果となりました。 ただし、クライアントとプライマリが異なるADとなる場合、 パフォーマンスが落ちる結果となりました。 ADが異なることで距離的優位性が下がるためと考えられます。 同一AD内でFDを跨いだ構成の場合は、 今回の結果ほどパフォーマンスが落ちないと思われます。
2.HeatWave検証 2-1.機能概要調査
© 2021 Database Technology Inc. All Rights Reserved. 25 従来の例
⚫ OLTPとOLAPで異なるDBで構成 ⚫ データ連携はETLツールで実行 HeatWave ⚫ OLTPとOLAPで単一のDBシステムで構成 ※裏で複数のノード(HeatWaveクラスタ)が稼働 ⚫ データ連携はALTER TABLE文のクエリで実行
© 2021 Database Technology Inc. All Rights Reserved. 26 必須システム構成
⚫ 前提条件 サービスリミットが最小構成を満たしていること ⚫ DBシステム構成 MySQL Database for HeatWave VM.Standard.E3 Nodes Count 1 以上 MySQL HeatWave VM.Standard.E3 Nodes Count 2 以上 シェイプ MySQL.HeatWave.VM.Standard.E3 CPU 16 OCPU メモリ 512 GB ノード数 2 ~ 24 台 ノード1台あたり約400GBのデータを保持可能
2.HeatWave検証 2-2.構築・操作
© 2021 Database Technology Inc. All Rights Reserved. 28 利用概要図
VCN SUBNET DBシステム Internet Gateway Route Table Security Lists Security Lists クライアント ユーザーはDBシステムのエンドポイントにアクセスし、 通常のMDSを使用する時と同じSQL文でHeatWaveによる高速分析が可能です HeatWaveクラスタ データロード
© 2021 Database Technology Inc. All Rights Reserved. 29 HeatWave利用方法
1.DBシステム構築 スタンドアロンのDBシステム構築手順の構成選択で、「HeatWave」を選択し、 HeatWave利用可能なDBシステムを構築します。
© 2021 Database Technology Inc. All Rights Reserved. 30 HeatWave利用方法
2.HeatWaveクラスタの追加 DBシステムの詳細画面で、HeatWaveクラスタを追加します
© 2021 Database Technology Inc. All Rights Reserved. 31 HeatWave利用方法
3.データロード 対象テーブルのSECONDARY_ENGINEを「RAPID」に設定します。 mysql> ALTER TABLE テーブル名 SECONDARY_ENGINE=RAPID; mysql> ALTER TABLE テーブル名 SECONDARY_LOAD; データをHeatWaveにロードします。 ※HeatWaveノードの再起動時には、データロードを再度行う必要があります。 以上で、HeatWaveでの高速分析が可能になります ※テーブルは作成済みの前提 ※1回のみ
© 2021 Database Technology Inc. All Rights Reserved. 32 HeatWaveクラスタの停止・起動
DBシステムの詳細画面で、ボタンクリックで起動・停止が可能です
© 2021 Database Technology Inc. All Rights Reserved. 33 HeatWaveクラスタの削除
DBシステムの詳細画面で、ボタンクリックで削除が可能です
© 2021 Database Technology Inc. All Rights Reserved. 34 バックアップ
従来のDBシステムのバックアップ手順と一切の差異がありません。 リストア 従来のDBシステムのリストア手順と一切の差異がありません。 HeatWaveを利用する際には、再度データロードが必要になります。
2.HeatWave検証 2-3.パフォーマンステスト
© 2021 Database Technology Inc. All Rights Reserved. 36 検証内容
⚫ SELECT文SQLの応答時間 検証方法 ⚫ スタースキーマベンチマーク https://clickhouse.tech/docs/en/getting-started/example-datasets/star-schema/ ⚫ スタースキーマデータの生成 ⚫ 13種類のSELECT文によるベンチマークテスト HeatWaveクラスタ DBシステム (HeatWave) クライアント DBシステム (シングル) SQL発行
HeatWaveクラスタ © 2021 Database Technology Inc. All Rights Reserved. 37
検証環境 DBシステム (HeatWave) クライアント クライアント シェイプ VM.Standard.E3.Flex CPU 2 OCPU メモリ 16 GB ストレージ 1024 GB DBシステム 構成 シングル HeatWave シェイプ VM.Standard.E3.16.256GB HeatWave.VM.Standard.E3 CPU 16 OCPU メモリ 256 GB 512 GB ストレージ 1024 GB データ量 約 237 GB(6 億行) 索引 なし あり なし DBシステム (シングル)
© 2021 Database Technology Inc. All Rights Reserved. 38 検証結果
12:10:43 3:36:04 00:00:45 00:00:00 02:00:00 04:00:00 06:00:00 08:00:00 10:00:00 12:00:00 14:00:00 SQL応答時間 ベンチマーク時間の合計の比較 シングル 索引なし シングル 索引あり HeatWave 約1000分の1 約300分の1
© 2021 Database Technology Inc. All Rights Reserved. 39 検証結果
00:54:16 01:25:11 1.65秒 00:55:05 00:49:14 1.70秒 00:54:36 00:49:05 1.79秒 00:56:52 00:04:53 2.12秒 00:57:39 00:00:49 2.96秒 00:57:03 00:00:06 1.87秒 00:59:03 00:17:00 5.26秒 00:58:44 00:00:55 3.94秒 00:57:22 00:00:02 4.43秒 00:56:18 00:00:00 3.48秒 00:56:29 00:08:19 3.94秒 00:54:07 00:00:19 6.35秒 00:53:10 00:00:11 5.06秒 12:10:43 03:36:04 44.55秒 シングル 索引なし シングル 索引あり HeatWave 100% ベンチマーク各種SQLの時間の割合 合計 Q4.3 Q4.2 Q4.1 Q3.4 Q3.3 Q3.2 Q3.1 Q2.3 Q2.2 Q2.1 Q1.3 Q1.2 Q1.1
© 2021 Database Technology Inc. All Rights Reserved. 40 検証結果
ベンチマーク(selectによるデータ取得時間)の合計に関しては、 HeatWaveの方が約1000分の1の時間で取得できる結果となりました。 ただし、検索対象によって絞られる件数次第では、 HeatWaveよりも索引利用した方が早くなる傾向が見られました。 ベンチマークの合計に対する各種SQLの割合について、 シングルではあまりバラつきが見られませんが、 HeatWaveではバラつきが見られました。 ※最大でQ4.2の約500分の1、最小でQ1.1の約2000分の1 HeatWaveによる改善比率はSQLの内容によってバラつきがあることが言えます。
2.HeatWave検証 2-4.別視点でのパフォーマンステスト
© 2021 Database Technology Inc. All Rights Reserved. 42 検証内容
⚫ 多重JOINクエリ 検証方法 自己結合を複数回繰り返した重いSQLの応答時間を、 HeatWaveの連携状態で比較します HeatWaveクラスタ DBシステム (HeatWave) クライアント SQL発行 ・多重JOIN HW連携切替
© 2021 Database Technology Inc. All Rights Reserved. 43 検証結果
00:08:39 00:24:36 00:00:00 00:05:00 00:10:00 00:15:00 00:20:00 00:25:00 00:30:00 SQL応答時間 多重のJOINの比較 HeatWave無効 HeatWave有効 テーブルサイズ:約237GB 行数:約6億行 自己結合を行うSQLは、HeatWaveの方が遅くなる結果となりました。
© 2021 Database Technology Inc. All Rights Reserved. 44 検証内容
⚫ 全文検索との比較 検証方法 ⚫ 文字列カラムに対する部分一致検索 ⚫ HeatWave無効:LIKE検索 ⚫ HeatWave有効:LIKE検索 ⚫ HeatWave無効:全文検索(FULLTEXTインデックス) HeatWaveクラスタ DBシステム (HeatWave) クライアント SQL発行 ・LIKE検索 ・全文検索 HW連携切替
© 2021 Database Technology Inc. All Rights Reserved. 45 検証結果
4.14 秒 3.93 秒 4.13 秒 4.15 秒 0.14 秒 0.10 秒 0.13 秒 0.41 秒 0.00 秒 1.00 秒 2.00 秒 3.00 秒 4.00 秒 5.00 秒 Q1 Q2 Q3 Q4 SQL応答時間 LIKE検索 HeatWave有効/無効の比較 HeatWave無効 HeatWave有効 テーブルサイズ:約1.3GB 行数:約388万行
© 2021 Database Technology Inc. All Rights Reserved. 46 検証結果
0.14 秒 0.10 秒 0.13 秒 0.41 秒 0.02 秒 0.01 秒 0.01 秒 0.01 秒 0.00 秒 0.10 秒 0.20 秒 0.30 秒 0.40 秒 0.50 秒 Q1 Q2 Q3 Q4 SQL応答時間 LIKE検索と全文検索の比較 HeatWave有効 LIKE検索 HeatWave無効 全文検索 テーブルサイズ:約1.3GB 行数:約388万行
© 2021 Database Technology Inc. All Rights Reserved. 47 検証結果
テキストのLIKE検索では、索引利用可能な前方一致のみならず、 後方一致と部分一致でもHeatWaveで約30倍早くなる結果となりました。 部分一致に関しては、HeatWaveでのLIKE検索よりも、 FULLTEXTインデックスによる全文検索の方が早い結果となりました。 文字列検索においては、全文検索とHeatWaveを使い分けることで より高いパフォーマンスを得ることが出来ると考えます。
© 2021 Database Technology Inc. All Rights Reserved. 48 検証内容
⚫ HeatWaveの強制利用 検証方法 通常でHeatWaveが利用されないSQLを、 HeatWave強制利用して実行した場合の比較 HeatWaveクラスタ DBシステム (HeatWave) クライアント HW連携済み SQL発行 ・通常 ・HW強制利用
© 2021 Database Technology Inc. All Rights Reserved. 49 検証結果
0.11 秒 0.75 秒 0.00 秒 0.10 秒 0.20 秒 0.30 秒 0.40 秒 0.50 秒 0.60 秒 0.70 秒 0.80 秒 0.90 秒 1.00 秒 SQL応答時間 HeatWave強制利用 通常 HeatWave強制利用 テーブルサイズ:約4GB 行数:2000万行 HeatWave強制実行で、極僅かにパフォーマンスが落ちる場合があります
© 2021 Database Technology Inc. All Rights Reserved. 50 検証内容
⚫ 挿入・更新・削除 検証方法 HeatWaveの連携状態で比較します 2000万行の挿入・更新・削除にかかる時間を計測します HeatWaveクラスタ DBシステム (HeatWave) クライアント SQL発行 ・INSERT ・UPDATE ・DELETE HW連携切替
© 2021 Database Technology Inc. All Rights Reserved. 51 検証結果
00:04:11 00:01:44 00:01:29 00:04:12 00:01:44 00:01:33 00:00:00 00:01:00 00:02:00 00:03:00 00:04:00 00:05:00 挿入 更新 削除 SQL応答時間 挿入・更新・削除 HeatWave無効 HeatWave有効 テーブルサイズ:約4GB 行数:2000万行 挿入・更新・削除は、HeatWaveの連携状態で差はない結果となりました
総評
© 2021 Database Technology Inc. All Rights Reserved. 53 高可用性
⚫ 構築・利用は極めて簡単 ⚫ 切替時間は短時間 ⚫ ADを跨いで高可用性を組んだ場合、ネットワーク通信による オーバーヘッドが発生する ⚫ フェイルオーバー時は自動復旧
© 2021 Database Technology Inc. All Rights Reserved. 54 HeatWave
⚫ 構築・利用は極めて簡単 ⚫ SQLは分析用と意識しなくてもよい(利用は自動判定) ⚫ 分析クエリはInnoDBと比べて極めて速い ⚫ OLTP処理への影響は無し ⚫ 初回(起動時)データロード以外のデータ同期は自動
Thank you