>100 Views
February 25, 25
スライド概要
HeatWavejpは、MySQL HeatWave の良さを知っていただき、参加者同士でノウハウやナレッジを共有できるユーザーコミュニティです。参加者同士のつながりを深めるため、以下の活動を行ってまいります。 COMMUNICATION *Slackやconnpassを活用したユーザー同士のコミュニケーションの場の提供 EVENT *オンライン/オフラインでのMeetupセミナーや勉強会の開催(隔月程度) SHARING *製品情報や最新アップデート、リリース情報の共有 INTERACT *参加者のコミュニティ・ネットワークやユーザー同士の交流を促進
HeatWavejp Meetup #07 ポチッとサクッとスケールアウト! リードレプリカを使ってみよう! Copyright © 2023 HeatWavejp All Rights Reserved. 2024年4月11日 株式会社スマートスタイル 成田 優隆(なりた まさたか) m-narita@s-style.co.jp
• 2022-12-07 : MySQL HeatWave リードレプリカ機能がリリース https://docs.oracle.com/en-us/iaas/releasenotes/changes/beda8415-9e7e-45a4-9cdfb5327fc888da/ • 2023-10-06 : リードレプリカのシェイプ・構成(オプション)等を個別に設定可能に https://docs.oracle.com/en-us/iaas/releasenotes/changes/fce26cd1-0560-4394-b0a5a632cdf9adda/ 2 Copyright © 2024 HeatWavejp All Rights Reserved.
MySQL HeatWave のリードレプリカとは 3 Copyright © 2024 HeatWavejp All Rights Reserved.
マネージドの読み取り専用レプリカインスタンスを作る機能 ⇨ AWS RDS for MySQLでいうリードレプリカとほぼ同じ 4 Copyright © 2024 HeatWavejp All Rights Reserved.
リードレプリカを 作ってみる 5 Copyright © 2024 HeatWavejp All Rights Reserved.
... 1ポチ 6 Copyright © 2024 HeatWavejp All Rights Reserved.
2ポチ 7 Copyright © 2024 HeatWavejp All Rights Reserved.
しばし待機 20分経過 8 Copyright © 2024 HeatWavejp All Rights Reserved.
ポチポチでリードレプリカの完成 サクッとはできなかった 9 Copyright © 2024 HeatWavejp All Rights Reserved.
Read Replicaと共にRead Replica用ロードバランサが払い出される Load Balancer for RR Read Replica Primary DB 10 Copyright © 2024 HeatWavejp All Rights Reserved.
Let’s Enjoy !! Copyright © 2024 HeatWavejp All Rights Reserved.
https://blogs.oracle.com/mysql/post/announcing-oci-mysql-heatwave-database-service-managed-read-replicas-with-built-in-load-balancer 1ノードあたり30~40万QPS 3ノード = (約) 100万QPS 6ノード = (約) 200万QPS 9ノード = (約) 300万QPS 12ノード = (約) 400万QPS 16ノード = (約) 550万QPS のように追加したらした分 性能がスケールアウトする とのこと 12 Copyright © 2024 HeatWavejp All Rights Reserved.
ということで ベンチマーク してみました 13 Copyright © 2024 HeatWavejp All Rights Reserved.
今回のベンチマーク条件 • クライアント • Shape ⇨ VM.Standard3.Flex (OCPU 12, Memory 32GiB) • MySQL (HeatWave) Database System • Shape ⇨ MySQL.8 (ECPU 8, Memory 64) ※ RRが利用可能なECPUモデルの最小インスタンス • 構成(MySQLオプション)はすべてデフォルト • Read Replicaも同様のShape, 構成 14 Copyright © 2024 HeatWavejp All Rights Reserved.
sysbench oltp_point_select サマリー $ sysbench oltp_point_select --table_size=1000000 # 100万行 --tables=100 # 100テーブル --threads=1000 # 1000スレッド --db-ps-mode=disable # Prepared Statement無効 --skip_trx=on # トランザクション無効 --time=300 # 5分間実行 run 15 Copyright © 2024 HeatWavejp All Rights Reserved.
Results of oltp_point_select on MySQL.8 Shape QPS 625,016 700000 600000 466,174 500000 380,349 400000 211,955 300000 200000 75,639 100000 x3 x5 x7 x9 0 rr0 rr3 rr6 rr9 rr12 16 Copyright © 2024 HeatWavejp All Rights Reserved.
おまけ 17 Copyright © 2024 HeatWavejp All Rights Reserved.
オンラインでリードレプリカ追加できる? • できます が、トラフィック量はリードレプリカの作成速度に関わりそう • 以下テストを実施 1. ソースDBで書き込み処理(sysbench oltp_write_only)実行 2. レプリカ用LBに読み取り処理(sysbench oltp_read_only)実行 3. リードレプリカを追加して処理状況を監視する 18 Copyright © 2024 HeatWavejp All Rights Reserved.
QPS while adding Read Replica 50000 作成中 45000 40000 35000 QPS 30000 25000 20000 作成開始 15000 10000 5000 0 read write 19 Copyright © 2024 HeatWavejp All Rights Reserved.
mysql-rr-1 : 更新処理をかけながら作成したリードレプリカ mysql-rr-2 : 無処理で作成したリードレプリカ 追加を 開始した時刻 (初回起動時の場合) 完了した時刻 約19分 約70分 20 Copyright © 2024 HeatWavejp All Rights Reserved.
リードレプリカでも HeatWave ノードで高速化できる? • 2024-04-08 時点では No -- リードレプリカでの実行 SELECT engine FROM information_schema.engines WHERE engine = 'RAPID’ ; Empty set (0.0006 sec) 21 Copyright © 2024 HeatWavejp All Rights Reserved.
ソースDBも含めてロードバランスできる? • リードレプリカ追加時に払い出されるロードバランサではでき ません • 別途OCI ロードバランサ を作成するか、コンピュート上に MySQL RouterやProxySQL、HAProxyなどを起動する事になり ます 22 Copyright © 2024 HeatWavejp All Rights Reserved.
のびしろ 23 Copyright © 2024 HeatWavejp All Rights Reserved.
のびしろに期待 • RDSのリードレプリカ だったらできる • リードレプリカのクロスリージョン配置 • リードレプリカのソースDB昇格 • リードレプリカからリードレプリカを作る • (独断と偏見による)その他これがほしい • RAPID(HeatWave)をリードレプリカで使いたい • 払い出されるロードバランサのエンドポイントをユーザ定義したい • リードレプリカをコンソールで作成する時にレプリカ数を指定したい • 負荷に応じたレプリカ数の自動調整など(普段からRRをスタンバイさせとくなど) 24 Copyright © 2024 HeatWavejp All Rights Reserved.
読取りレプリカ https://docs.oracle.com/ja-jp/iaas/mysql-database/doc/readreplica.html その12 - MySQL Database Serviceでリードレプリカを構成する https://oracle-japan.github.io/ocitutorials/beginners/creatingmds-readreplica/ WordPress in OCI with MySQL HeatWave Read Replicas and MySQL Router R/W Splitting https://lefred.be/content/wordpress-in-oci-with-mysql-heatwaveread-replicas-and-mysql-router-r-w-splitting/ 25 Copyright © 2024 HeatWavejp All Rights Reserved.
26 Copyright © 2023 HeatWavejp All Rights Reserved.