MySQL互換のTiDBを開発するPingCAP、日本での本格始動を開始
TiDBはMySQL互換の分散データベースで、オープンソースとして公開されている。このTiDBを開発するPingCAPが、日本での活動を本格化させている。今回はWeWorkのオフィスに訪問し、日本法人であるPingCAP株式会社に所属する3名の社員にインタビューを行った。またPingCAP株式会社の技術顧問として就任したサイバーエージェントの長谷川誠氏も同席し、これから日本での活動に対してアドバイスを行う予定であることを明らかにした。
参加したのは、副社長の韓偉(Eric Han)氏とシニアソリューションアーキテクトの水戸部章生氏、シニアアカウントマネージャーの前田大輝氏だ。PingCAPは、CNCFにホストされていたTiKVの開発をリードしていることでも知られている(現在はGraduate済み)。TiKVについては2019年のKubeCon Chinaのキーノートでも紹介されているが、分散型キーバリューストアであるにも関わらず、トランザクショナルなアクセスが可能という特徴を備える。
参考:KubeCon China注目の初日キーノートはプロジェクトアップデート
PingCAPは、2015年に3人のデータベースエンジニアによって創立されたベンチャーだ。CEOのMax Liu氏はWandou Labs、JD.comなどで分散システムを手掛けていたという背景から考えれば、大量のトラフィックをどう捌くかについては多くの経験を持っていると言える。他の2名、Co-founderのDylan Cui氏とCTOのEdward Huangも同じWandou Labsの出身者だ。Wandou Labsは、中国のスマートフォンアプリの検索サービスを提供している企業だという。
ちなみに社名のPingCAPは、韓氏によればネットワークコマンドのPingと、分散システムにおけるCAP定理を組み合わせたもので、CAPにPingを打ち続けるという意図があるという。
またこの沿革で興味深いのは、MySQL互換のデータベースであるTiDBが先にオープンソースとして2015年9月に公開され、TiDBのデータストアであり、Google Spannerから発想したというTiKVが公開されたのはその後だということだろう。TiDBはMySQL互換のリレーショナルデータベースとして利用できるが、コアのデータストアにはTiKVを使って分散させている。韓氏によれば当初はHBaseをデータストアに使っていたが目的に適さないとして、後からTiKVを自作したという経緯だそうだ。
続いてソリューションアーキテクトの水戸部氏が、PingCAPの製品ラインナップを紹介した。ここではマネージドサービスとして提供されるTiDB Cloudと、サブスクリプションとしてオンプレミスもしくはパブリッククラウド上のインスタンスとして提供されるTiDB、TiKVそしてChaos Meshを紹介した。
韓:意外かもしれませんが、PingCAPはTiDB/TiKV以外にChaos MeshをオープンソースとしてCNCFに寄贈しています。CNCFがホストするオープンソースプロジェクトへのコントリビューションもGoogleやRed Hat、VMware、Microsoftなどに次いで6番目という評価を得ています。
長谷川:Chaos Meshは、カオスエンジニアリングというよりも高機能なテストツールと言えますね。とても良くできていると思います。
ここからは水戸部氏によるTiDBの解説となった。
このスライドのHTAPはHybrid Transactional and Analytical Processingの略でトランザクション処理とリアルタイムの分析処理を両立させていることを表現しているという。水戸部氏はHuaweiの前に日本のゲーム会社で働いていた経験があり、大量のトラフィックをトランザクションとして処理するシステムと分析のためのビッグデータ分析を行うシステムを両立させる難しさについては深く理解している。そして、その難しさを解決したソフトウェアがTiDBであることを強調した。
従来のOracle/MySQLなどのリレーショナルデータベースから、キーバリューストア/NoSQLを経てNewSQL(Google Spanner、CockroachDBなど)に至り、TiDBをその進化系として位置付けているのがわかる。
特にMySQLの限界である容量制限とシャーディングについては、インターネットサービス時代の膨大なデータ量を捌ききれずに運用側に多大な労力を掛けているとして、TiDBが登場した背景を紹介した。
それを解決するのがTiDBであるとして、自動シャーディング、サイジングが不要でオンラインで拡張ができること、さらに同じシステム上で分析もできることを解説した。
このアーキテクチャー図ではコントローラとしてTiDBが複数用意され、その下にデータストアとしてTiKVが複数台稼働することで規模の拡大に柔軟に対応できることを解説した。
また複数のプロセスが同期して稼働する部分には、コンセンサス合意のアルゴリズムであるRaftを採用しているという。RaftはKubernetesのデータストアであるetcdでも採用されている技術で、複数のプロセスについてマスターを固定せずにダイナミックに協調させるためのアルゴリズムであり、クラウドネイティブなシステムでは常識的な手法だ。
このスライドでは、アプリケーションからはTiDBがMySQLのインスタンスとして利用できることと、SparkからはTiKVがビッグデータのデータストアとして利用できることが示されている。これまでの常識的なシステムエンジニアリングであれば、トランザクション処理はMySQL、ビッグデータ処理はSpark/Kafkaによって分離することになるが、TiDBにおいては一つのシステムとして完結できるところが最大の特徴だろう。
韓:TiDBのユースケースを見てもらえば、インターネットのファイナンシャルサービスやオンラインゲームなどのトラフィックを処理するユースケースが多いことがわかります。従来型のリレーショナルデータベースではもう限界である分野と言えます。
水戸部:特にトランザクション処理と分析処理を一つのデータベースシステムで対応できるというのが最大の利点だと思いますね。通常であれば、MySQLのシャーディングを運用するというのは相当面倒な仕事ですから。
U-NEXTの事例からも、MySQLの容量増大に対応するシャーディングの限界について解説が行われた。他にはPayPayのエンジニアが2020年に行ったプレゼンテーションでは、TiDBがAuroraをリプレースする背景を解説している。
参考:TiDB at PayPay : Why we chose & How we operate
この資料では、AWSのAuroraの欠点とTiDBのアドバンテージがかなり明確に解説されている。
これ以降はビジネス面での質疑となった。
日本法人が2021年4月に設立ということですが、今後のビジネス面での戦略を教えてください。
韓:TiDBはビジネスのコアとなるデータベースを受け持つことになりますから、やはりエンタープライズ企業やサービスプロバイダーへの営業活動を、パートナーと一緒になって行う必要があると思いますね。
エンタープライズに採用されるためにはユースケースが必要とよく言われますが、それに関しては?
韓:ユースケースやパートナーシップについては近々発表できるものがいくつかありますので、それを期待していてください。
日本の大企業、特に伝統的な製造業や金融業は情報システム子会社がシステムの実装を受け持つということが多いと思います。そういう企業に対するアプローチは?
韓:それも必要だと感じています。トップに向けてのメッセージを発信することも必要です。一方TiDBはオープンソースですので、自社で評価するということも商用のソフトウェアに比べて容易です。ボトムアップとしての啓蒙も必要だと思います。
MySQLの限界を解決するためのシステムとしては、TiKV/TiDB以外にCNCFからGraduationしたVitessが存在する。YouTubeが利用していたシャーディングされた複数のMySQLをリプレースしたのがVitessだ。韓氏によればVitessはミドルウェアとしてジオロケーションに特化したデータベースであるのに対して、TiDBはスケールする水平分散とトランザクション処理と分析処理を同時に実行できる、さらに進化したデータベースという位置付けだという。日本のオープンソースコミュニティでの経験が豊富な長谷川氏の参画によって、今後の日本での活動がどのように活性化するのか、PingCAP株式会社の動向に注目したい。
TiDBの公式サイト:https://pingcap.com/products/tidb
TiDBの公式ドキュメント:TiDB Introduction
Chaos Meshの公式サイト:A Powerful Chaos Engineering Platform for Kubernetes
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- NewSQL DBの国内カンファレンス「TiDB User Day 2022」開催、クラウドネイティブ環境の次世代DBは「MySQL互換」がカギ
- PingCAP CEOのMax Liu、米HTAP Summit 2022でHTAP登場の背景を語る
- KubeCon China注目の初日キーノートはプロジェクトアップデート
- KubeCon Europe 2023よりGitHubがMySQL互換のVitessを使った事例のセッションを紹介
- 【事例から学ぶ】アーキテクチャ多様化時代にデータベースを「TiDBにまとめる」という選択
- 「Cloud Native Trail Map」の10ステップを紐解く(ステップ6~7)
- PingCAPが国内最大級のNewSQLデータベースカンファレンス「TiDB User Day」を開催、事例を中心にTiDBの運用ノウハウを幅広く紹介
- NoSQLとNewSQLの技術革新、マルチテナンシーの実現と高いスケーラビリティを提供
- PingCAPのCEOが「ChatGPT」をフロントエンドにしたLLMによるSQL生成機能「Chat2Query」を解説
- CNCFのサンドボックスプロジェクト、カオスエンジニアリングのLitmus Chaosを紹介