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

AWS/GCPベースのSaaSシステムはTiDBとの相性が抜群! - TiDB User Day 2022 セッション

AWS/GCPベースのSaaSシステムはTiDBとの相性が抜群! - TiDB User Day 2022 セッション

高機能クラウドPOSレジ「スマレジ」のインフラには主にAWSを利用しています。2011年開始から既に10年以上稼働しており、そろそろ抜本的なデータベースの性能改善を図りたい、という課題がありました。アプリケーション側への影響や移行時のダウンタイムをなるべく小さくしたいといった条件や、ベンダーロックイン・データベース互換性の網を掻い潜り、TiDBを選んだ経緯や理由についてお話しします。

PingCAP-Japan

July 13, 2022
Tweet

More Decks by PingCAP-Japan

Other Decks in Technology

Transcript

  1. 1
    AWS/GCPベースのSaaSシステムは
    TiDBとの相性が抜群!
    株式会社スマレジ 開発本部 開発部 古橋朋孝
    2022/07/07

    View full-size slide

  2. 名前:古橋 朋孝
       (@gausssss)
    職種:インフラエンジニア
    バックグラウンド:
    ・Oracle Master Platinum
    ・SIer/SESで大規模DB担当
    2
    自己紹介

    View full-size slide

  3. 課題
    7
    ・サービス稼働年数が10年以上経過
    ・利用者数の急増(11万店舗以上)
    ・データ保持期間は半永久的
      → データ蓄積量が加速度的に増加

    View full-size slide

  4. 課題
    8
    例えば、誰かがお店で買い物をすると・・・
    ・取引テーブルに1レコード追加
    ・取引明細テーブルに商品数分のレコード追加
    → 大規模なお客様の場合、取引件数が毎月数十万件
    → 10年分で、数千万〜数億件

    View full-size slide

  5. 課題
    9
    データ蓄積量の増加
    → 管理画面のレスポンスの劣化
    → サーバーの高負荷
    ・原因の大半はDBのスロークエリ
    ・小手先のチューニングでは限界

    View full-size slide

  6. 構成
    10
    環境:AWS
    DB:Aurora(MySQL互換)
    アプリには手を加えずにDB
    だけ代替したい

    View full-size slide

  7. 検討
    11
    Redshift
    ・AWSのDWHサービス
    ・同じAWS環境内で完結できる
    → オンライン処理には向かない
    → 今回の要件に合わない

    View full-size slide

  8. 検討
    12
    Oracle Database等の他RDBMS製品
    ・AWSのRDSで利用可能
    → MySQLとの互換性が無く、移行が難しい
    → 今後のDB運用も変わる

    View full-size slide

  9. 検討
    13
    HeatWave
    ・MySQL互換性があるOCIのサービス
    → AWS - OCI 間の通信構成が難しい
    → チューニングの方法が既存のAuroraと異なる

    View full-size slide

  10. 検討
    14
    TiDB
    ・MySQL互換性がある高速なDB
    → シンプルな構成で既存AWS環境と接続可能

    View full-size slide

  11. 検証
    16
    ・トライアル期間を有効利用
    ・TiDB Cloudの操作は直感的
    ・PingCAP社の手厚い技術支援

    View full-size slide

  12. 検証結果
    17
    ・既存のAuroraより平均3〜4倍、最大約10倍 高速
    (例) 処理 Aurora TiDB
    在庫一覧 25s 5s
    発注一覧 41s 4s
    仕入一覧 1m40s 10s
    棚卸在庫一覧 24s 6s

    View full-size slide

  13. 検証結果
    18
    ・Auroraより非常に遅いクエリも少しあった
    → AuroraとTiDBのアーキテクチャの違いによる
    → TiDB用にチューニングすれば改善されるが…
    (なるべくアプリに手を加えたくない)

    View full-size slide

  14. TiFlash!!!!!
    19

    View full-size slide

  15. TiFlash 20
    ・メモリを多く使用するクエリには有効

    View full-size slide

  16. Parallel Apply!!!!!
    21

    View full-size slide

  17. Parallel Apply 22
    ・Auroraで得意なサブクエリにも有効
    → ほとんどのクエリが高速化された!
    → 残りはアプリ側に問題があるものだけ

    View full-size slide

  18. まとめ
    23
    ・AWS/GCPベースのSaaSシステムで
     MySQL系のDBに性能問題を抱えていたら…
     → TiDB Cloudがおすすめ!
      ・MySQL互換なのでアプリ改修不要
      ・フルマネージドで運用コスト低

    View full-size slide

  19. 今後の展望
    24
    ・国内POSベンダーのトップシェアに!

    View full-size slide