MySQL互換のスケーラブルな分散DB「TiDB」、スマレジや@cosmeによる評価は本番環境のDBから移行可能、性能も十分高いと[PR]
今回は「MySQL互換のスケーラブルな分散DB「TiDB」、スマレジや@cosmeによる評価は本番環境のDBから移行可能、性能も十分高いと[PR]」についてご紹介します。
関連ワード (以上、既存、日本法人等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
いわゆる「NewSQL」と呼ばれる、トランザクション処理を実現しつつも非常に高度なスケーラビリティを備えた新しい種類のリレーショナルデータベースが登場し、注目されています。その代表的な製品の1つが、オープンソースで開発されている「TiDB」(タイデービー)です。
TiDBはアプリケーションからはMySQLと同様にアクセスできるMySQL互換のプロトコルを備えつつ、TiDBを構成する主要な2つのレイヤである、SQL文を処理する「TiDB」とデータを処理する「TiKV」がそれぞれオンラインでのスケールアウトに対応することで、リニアに性能を拡張することが可能です。
1つのTiDBクラスタで400TB以上のデータ容量、1つの分散テーブル内で数兆行のデータを扱えるとされています。
TiDBの開発者であり、TiDBの開発元であるPingCAP社の創業者兼CTOであるEd Huang氏は、かつてMySQLをスケーラブルにするテクニックとしてよく使われていた「シャーディング」には多くの課題があったと言います。
例として、分割されたシャードのあいだではトランザクション処理ができなくなってしまうこと、JOINやGROUP BYといった複雑なSQL文が使えないことなどを挙げました。
そうした課題を解決するために、SQLやトランザクションと言った既存のリレーショナルデータベースの良さと分散データベースによるスケーラビリティを備えたTiDBの開発を行ったと説明しました。
ちなみに社名のPingCAPとは、3つのうち2つを選ばなければならないとされるCAP定理のC(Consistency)、A(Availability)、P(Partition Tolerance)の3つの全てに接続したい(Ping)という意味が込められているそうです。
PingCAP社は昨年(2021年)に日本法人も設立され、国内での本格展開を開始。TiDBの知名度も高まってきているなかで、7月7日にイベント「TiDB User Day 2022」を開催しました。
前述のEd Huang氏の説明は、このイベント冒頭の挨拶の中で紹介されたものです。
イベントでは、TiDBのロードマップ、そして本番環境にTiDBを導入した「スマレジ」や「@cosme」の事例、そしてTiDBを評価中のサイバーエージェント、LINE、メルカリの技術者によるディスカッションなどが行われました。
TiDBはどのように使われ、評価されているのか、イベントの内容を紹介していきましょう。
オープンソースのTiDBとクラウドサービスのTiDB Cloud、今後のビジョン
PingCAP株式会社 Japan CTOの林正記氏は、あらためてPingCAPがMySQLのプロトコル互換であり、NewSQLと呼ばれるスケーラブルなリレーショナルデータベースの1つであると説明。
同社ではソフトウェアとしてのTiDBだけでなく、クラウドサービスとしてのTiDB Cloudも提供していることを紹介しました。
その上で、TiDBはオープンソースとして高い評価を受けているだけでなく、市場での評価も高まってきていると説明。
そしてトランザクション処理だけでなく、分析処理を高速化するカラム型データストアのTiFlashも提供しており、これにより1つのTiDBでトランザクション処理とデータ分析処理の両方を高い性能で実現できるとしました。
今後のロードマップとしては、よりクラウドネイティブなアーキテクチャへの変更、より使いやすいクラウドサービスへ、MySQL 8.0互換の拡充、コンピュートとストレージの高度な分離などが計画されています。
スマレジ:ほとんどすべてのクエリで大幅な性能向上
クラウドPOSレジの「スマレジ」などを提供する株式会社スマレジでは、10年を超えるサービスのデータを半永久的に保持していること、そして利用店舗数の急増などによりデータの蓄積量が加速度的に増加。
その結果データベースサーバへの負荷が高まり、小手先のチューニングでは解決できないクエリ処理の遅さが課題となっていました。
同社はAWS上のMySQL互換データベースであるAmazon Auroraから、アプリの改修なしに移行できる高性能なデータベースへの移行を検討。複数の選択肢の中から、既存のAWS環境とVPCピアリングを通じてレプリケーションでデータを移行できるという、シンプルな構成で利用可能なTiDB Cloudを選択しました。
そしてTiDBの性能を検証した結果、既存のデータベースよりも平均で3倍から4倍、最大で約10倍も高速になるという結果を得ています。
メモリを多く使用することで遅くなっていたクエリに関しては、カラム型データベースによる高速な分析処理が可能な「TiFlash」の採用により解決。さらにクエリの並列度を向上させる「Parallel Apply」を有効にすることでサブクエリ処理の高速化も実現。アプリ側に問題があって遅くなるクエリ以外のほとんどすべてのクエリで大幅な性能向上を見ることになりました。
@cosme:SQL Serverからの移行に確信が持てた
美容総合メディア「@cosme」を運営する株式会社アイスタイルは、オンプレミスで運営してきたSQL Serverなどの開発基盤をクラウドに移行しようと取り組んでいます。
移行に当たり、SQL Serverが持つ柔軟なテーブルのレプリケーションや異なるサーバ間のテーブルジョインなど豊富な機能を活用したまま、どのようにクラウドデータベースへ移行するのかが課題の1つでした。
これを解決するための選択肢としてクラウド上でSQL Serverを利用するだけでなく、スケーラブルな分散データベース機能によってすべてのデータベースが同一クラスタ内に保持できることで柔軟なテーブル間の操作が可能なTiDBも有望な選択肢となります。
そこでTiDBを対象に、クエリの移行、スキーマの変換、データの移行、DBアクセスライブラリーなどについてPoC(概念検証)を行ったところ、スキーマ変換では移行時に対応が必要な非互換がありアプリケーションの改修が必要と判断される一方、データ移行については十分な移行速度と低い負荷、文字化けなどのない正常な移行が可能で、クエリの修正は軽微な内容で済むと判断。
性能の検証においても7種類のテストのほとんどで優秀な結果が得られたとし、SQL ServerからTiDBへの移行は可能だと確信が持てたと結論付けています。
サイバーエジェント、LINE、メルカリの技術者はどう評価したか?
イベントの最後には、TiDBを評価しているサイバーエージェント、LINE、メルカリの技術者によるパネルディスカッションが行われました。
登壇者がTiDBを触った感想として、LINEの大塚氏はデプロイの簡単さと早さ、そして手動でシャーディングすることなく高性能を実現した点を挙げ、メルカリ本田氏もデプロイの簡単さ、ログ検索の容易さ、MySQL互換による既存のツールが使えるのがよかったとし、サイバーエージェント長谷川氏はTiDBの内部でRocksDB、ツーフェーズコミット、Percolatorなどの最新技術が使われている点が興味深いと述べています。
ここで紹介したイベント「TiDB User Day 2022」はアーカイブ動画で公開されています。興味のあるセッションや内容をあらためてご参照ください。
≫TiDB User Day 2022
(本記事はPingCAP株式会社提供のタイアップ記事です)