SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2025 セッションレポート(AD)

1週間で120万人突破の「mixi2」──小規模チームで構築・運用を可能にしたNewSQL「TiDB」とは

【14-E-2】「mixi2の舞台裏」 TiDBで実現するSNSのスケーラビリティとパフォーマンス

  • X ポスト
  • このエントリーをはてなブックマークに追加

リリース後に発生した問題と対応

 2024年12月16日のリリース時には想定を上回るリクエストが来たが、各コンポーネントをスケールアウトすることで無事に稼働を続けることができた。お正月などの一時的な負荷が見込まれる場合も、コンポーネントをスケールアウトすることで問題なく運用を継続している。姜氏は「リリースして期間は短いですが、今のところサービスを無停止で運用できています。一度だけTiDBインスタンスのノード障害が発生しましたが、そのときもサービス影響なく対応することができました」と報告した。

リリース時の各種メトリクスを示したグラフ
リリース時の各種メトリクスを示したグラフ

 リリース後に発生したSlow Queryについても言及。Secondary Indexを使ったクエリで、Indexの先頭カラムで対象を絞り、2番目のカラムでソートする場面で問題が発生した。「IN句の要素が一つの場合はソートが効いたのですが、複数要素が指定されるとソートが効かなくなりました。対象が数十万件になることもあるため、Slow Queryになってしまいました」と姜氏。この問題は調査中だが、現状ではアプリケーション側でループ処理を行うことで回避している。

 また、TiDBのMVCC(多版型同時実行制御)機能に関連した別のSlow Queryも発生。短期間で更新を繰り返すことで想定より多くのバージョンが生成され、検索処理が重くなる問題だ。「total_keysが過去のバージョンを含むキーの合計数で、total_process_keysが実際に処理されたキー数。この割合が大きいと読み込み処理のコストが高くなります」と説明した。

 リリース後のTiDBクラスター運用は、tiupコマンドを使って実施されている。スケールアウト/スケールイン、バックアップ、データダンプなどの操作が問題なく行えているという。データベースのダンプ取得は、tiup dumplingコマンドを使用してAmazon S3にエクスポートし、BigQueryに登録。この一連の操作はAmazon ECSのスケジュールドタスクとして自動化されている。

 バックアップも同様に、tiup brコマンドでフルバックアップとログバックアップを行い、Amazon ECSのタスクとして定期実行している。なお、日々の運用監視はTiDB DashboardとGrafanaで実施。Slow Queryの調査にはTiDB Dashboardを活用し、基本的なメトリクス監視に加え、リージョンの状態やキーのスキップカウントなどの監視はGrafanaで行われている。

 姜氏は「少ない人数の開発チームですが、TiDB Clusterを導入し、今もサービス開発と運用を行っています」と振り返った。TiDBは無停止で運用を継続でき、急激な負荷にもスケールアウトで対応することができた点を評価。監視ツールが一通り付属することも、少人数チームにとって大きなメリットだったという。

 最後に今後の展望として、「TiCDCを使ってチェンジイベントをメッセージとして送信し、非同期処理に使いたいと考えています。現在のシステムではSQSのパブリッシュに失敗した場合のトランザクション実装が一部複雑になっているため、ここを単純化できると考えています」とコメントした。

 mixi2のケースは、NewSQLを採用してSNSを構築・運用した貴重な事例だ。特に小規模チームでも高いスケーラビリティと可用性を実現できることを示した点は、同様の課題を抱える多くの開発者にとって参考になるだろう。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2025 セッションレポート連載記事一覧

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

井山 敬博(イヤマ タカヒロ)

 STUDIO RONDINOのカメラマン。 東京綜合写真専門学校を卒業後、photographer 西尾豊司氏に師事。2008年に独立し、フリーを経て2012年からSTUDIO RONDINOに参加。 STUDIO RONDINO Works

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:PingCAP株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21127 2025/04/11 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング