Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[HeatWavejp Meetup #07] ポチッとサクッとスケールアウト!MySQL HeatWaveのリードレプリカのお話 [成田 優隆 氏(スマートスタイル)]

[HeatWavejp Meetup #07] ポチッとサクッとスケールアウト!MySQL HeatWaveのリードレプリカのお話 [成田 優隆 氏(スマートスタイル)]

HeatWavejp Meetup #07 「🌸祝1周年🌸 はじめてでもわかる!MySQL HeatWave 全体解剖 LT大会!!」(2024/4/11 開催)の講演資料です。

【講演内容】
ポチッとサクッとスケールアウト!MySQL HeatWaveのリードレプリカのお話

 - MySQL HeatWave のリードレプリカとは
 - リードレプリカを作ってみる
 - ベンチマークしてみました
 - おまけ
  ・オンラインでリードレプリカ追加できる?
  ・リードレプリカでも HeatWave ノードで高速化できる?
  ・ソースDBも含めてロードバランスできる?

【発表者】
成田 優隆 氏
株式会社スマートスタイル データベース&クラウド事業部 技術本部 DB部

【イベント情報】
HeatWavejp Meetup #07
https://heatwavejp.connpass.com/event/312177/

More Decks by HeatWavejp(MySQL HeatWave Japan User Group)

Other Decks in Business

Transcript

  1. Copyright © 2023 HeatWavejp All Rights Reserved. HeatWavejp Meetup #07

    ポチッとサクッとスケールアウト! リードレプリカを使ってみよう! 2024年4月11日 株式会社スマートスタイル 成田 優隆(なりた まさたか) [email protected]
  2. Copyright © 2024 HeatWavejp All Rights Reserved. 2 • 2022-12-07

    : MySQL HeatWave リードレプリカ機能がリリース https://docs.oracle.com/en-us/iaas/releasenotes/changes/beda8415-9e7e-45a4-9cdf- b5327fc888da/ • 2023-10-06 : リードレプリカのシェイプ・構成(オプション)等を個別に設定可能に https://docs.oracle.com/en-us/iaas/releasenotes/changes/fce26cd1-0560-4394-b0a5- a632cdf9adda/
  3. Copyright © 2024 HeatWavejp All Rights Reserved. 10 Load Balancer

    for RR Read Replica Primary DB Read Replicaと共にRead Replica用ロードバランサが払い出される
  4. Copyright © 2024 HeatWavejp All Rights Reserved. 12 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 のように追加したらした分 性能がスケールアウトする とのこと
  5. 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
  6. Copyright © 2024 HeatWavejp All Rights Reserved. サマリー $ 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 sysbench oltp_point_select 15
  7. Copyright © 2024 HeatWavejp All Rights Reserved. 16 0 100000

    200000 300000 400000 500000 600000 700000 rr0 rr3 rr6 rr9 rr12 75,639 211,955 380,349 466,174 625,016 QPS Results of oltp_point_select on MySQL.8 Shape x3 x5 x7 x9
  8. Copyright © 2024 HeatWavejp All Rights Reserved. オンラインでリードレプリカ追加できる? • できます

    が、トラフィック量はリードレプリカの作成速度に関わりそう • 以下テストを実施 1. ソースDBで書き込み処理(sysbench oltp_write_only)実行 2. レプリカ用LBに読み取り処理(sysbench oltp_read_only)実行 3. リードレプリカを追加して処理状況を監視する 18
  9. Copyright © 2024 HeatWavejp All Rights Reserved. 0 5000 10000

    15000 20000 25000 30000 35000 40000 45000 50000 QPS QPS while adding Read Replica read write 作成開始 作成中 19
  10. Copyright © 2024 HeatWavejp All Rights Reserved. 20 mysql-rr-1 :

    更新処理をかけながら作成したリードレプリカ mysql-rr-2 : 無処理で作成したリードレプリカ 追加を 開始した時刻 (初回起動時の場合) 完了した時刻 約19分 約70分
  11. Copyright © 2024 HeatWavejp All Rights Reserved. リードレプリカでも HeatWave ノードで高速化できる?

    • 2024-04-08 時点では No 21 -- リードレプリカでの実行 SELECT engine FROM information_schema.engines WHERE engine = 'RAPID’ ; Empty set (0.0006 sec)
  12. Copyright © 2024 HeatWavejp All Rights Reserved. ソースDBも含めてロードバランスできる? • リードレプリカ追加時に払い出されるロードバランサではでき

    ません • 別途OCI ロードバランサ を作成するか、コンピュート上に MySQL RouterやProxySQL、HAProxyなどを起動する事になり ます 22
  13. Copyright © 2024 HeatWavejp All Rights Reserved. • RDSのリードレプリカ だったらできる

    • リードレプリカのクロスリージョン配置 • リードレプリカのソースDB昇格 • リードレプリカからリードレプリカを作る • (独断と偏見による)その他これがほしい • RAPID(HeatWave)をリードレプリカで使いたい • 払い出されるロードバランサのエンドポイントをユーザ定義したい • リードレプリカをコンソールで作成する時にレプリカ数を指定したい • 負荷に応じたレプリカ数の自動調整など(普段からRRをスタンバイさせとくなど) 24 のびしろに期待
  14. Copyright © 2024 HeatWavejp All Rights Reserved. 読取りレプリカ https://docs.oracle.com/ja-jp/iaas/mysql-database/doc/read- replica.html

    その12 - MySQL Database Serviceでリードレプリカを構成する https://oracle-japan.github.io/ocitutorials/beginners/creating- mds-readreplica/ WordPress in OCI with MySQL HeatWave Read Replicas and MySQL Router R/W Splitting https://lefred.be/content/wordpress-in-oci-with-mysql-heatwave- read-replicas-and-mysql-router-r-w-splitting/ 25