SHOEISHA iD

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

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

Developers Summit 2022 レポート(AD)

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

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

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

 クラウドネイティブなアプリ開発において、スケーラブルなデータベースとして普及が進む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の互換性を高めたいというのが導入の背景。キャンペーン時には数倍にもなるアクセス数を捌き、終了時には性能を縮小してコスト最適を保つこともできた。

次のページ
特徴2:クラウドネイティブ

関連リンク

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

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

もっと読む

この記事の著者

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

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

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15728 2022/03/31 16:56

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング