CodeZine(コードジン)

特集ページ一覧

MySQL互換のスケーラブルなデータベース「TiDB」とは? リアルタイム分析にも最適【デブサミ2022】

【18-E-5】クラウドネイティブアプリ開発にはスケーラブルなRDBの採用が必要な話

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2022/03/31 12:00

 クラウドネイティブなアプリ開発において、スケーラブルなデータベースとして普及が進むNewSQL。本セッションでは、PingCAPが開発するNewSQLのオープンソースデータベース「TiDB」の特徴やメリットについて、PingCAPでCTOを務める林正記氏が解説した。

目次
PingCAP株式会社 CTO 林 正記氏
PingCAP株式会社 CTO 林 正記氏

RDBの課題を克服する新しいDB、NewSQLとは何か

 NewSQLは、これまでRDB(Relational Database)がデメリットとする拡張性や処理速度、NoSQLにおけるデータの一貫性や検索機能の甘さを解決し、メリット部分はそのままサポートしてくれるデータベースとして注目されている。

 MySQLプロトコルとも互換しているため、RDBに対するスキルセットを活かすことができる。また、NewSQLは完全分散型なので、リードレプリカを通じてレプリケーション遅延がなくなるといったメリットもある。さらに林氏が強調するのは、その運用性の高さだ。

 「そもそも分散型のデータベースなので、ノードをまたいだアクセス、クエリー、JOINなど、性能が劣化することなく実施できます」

RDBの良さはそのままに、分散アーキテクチャとしてスケーラビリティも担保するNewSQL
RDBの良さはそのままに、分散アーキテクチャとしてスケーラビリティも担保するNewSQL

世界で採用されるTiDBの特徴

 NewSQLの主な製品には、Amazon Aurora、Google Cloud Spanner、YugabyteDB、CockroachDB、TiDBが挙げられる。特にMySQL互換があるTiDBは、世界1600社以上の商用環境が採用している注目のオープンソースデータベースだ。

世界1600社以上で採用されているTiDB
世界1600社以上で採用されているTiDB

 林氏は、TiDBの特徴として以下の3つを挙げている。

  • スケールアウト+MySQL互換
  • クラウドネイティブ
  • リアルタイム分析

特徴1:スケールアウト+MySQL互換

 TiDBはMySQL互換のデータベースなので、アプリケーション側にMySQLクライアントをそのまま利用できる。MySQL 5.6もしくは5.7の互換が可能であり、今後は8.0以降もサポートしていく予定だという。

 以下スライドの緑で囲っている部分が、データベースシステムとして提供しているコンポーネント。TiDBがSQLの解析レイヤーで、TiKVというコンポーネントが実際にデータが入っているデータストアレイヤーとなっている。

MySQLプロトコルを理解し、拡張性も高い
MySQLプロトコルを理解し、拡張性も高い

 「TiDBはMySQLプロトコルを理解し、クエリーに応じてTiDBの方にデータを保存したり、TiDBの中のデータを読んだりします。コンポーネントと共にノードを増やすことによって容量や性能などを拡張することも可能です」

 TiKVのデータストアは、3面コピーをすることによって耐障害性を高めており、AZ障害にも耐えうるアーキテクチャである。

 注意点としては、大きく3つ挙げられる。1つ目は、ストアドプロシージャ、トリガー、外部キー制約など、サポートしていない部分もあり、MySQL互換は100%ではないこと。2つ目は、トランザクションはスナップショットアイソレーションを使っており、MySQLのRepeatable Readと同等の動きをするように模倣していること。悲観ロックもサポートしているので、結果的に動きはほぼ一緒となる。3つ目は、Auto_Incrementの動きも完全には順番にはならないことである。

 アプリ側からアクセスできるコネクタやフレームワークは、Go、Java、Python、Ruby、PHPなど。基本的にMySQLで用意されているツールをそのまま使うことができる。その他のツールが必要な場合は、PingCAPで検証・動作確認も可能とのことなので、問い合わせしてみよう。

 事例として、NetEaseのオンラインゲーム「荒野行動」が紹介された。15億行ものデータが格納されているため、リードライトの性能に影響があり、MySQLの互換性を高めたいというのが導入の背景。キャンペーン時には数倍にもなるアクセス数を捌き、終了時には性能を縮小してコスト最適を保つこともできた。


関連リンク

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Developers Summit 2022 レポート

もっと読む

著者プロフィール

  • 馬場 美由紀(ババ ミユキ)

     エンジニアとテクノロジーが好きな編集・ライター。エンジニア向けキャリアサイト「Tech総研」「CodeIQ MAGAZINE」、Web技術者向けの情報メディア「HTML5 Experts.jp」などでライティング、コンテンツディレクション、イベント企画などを行う。HTML5 開発者コミュニティ「h...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5