🌊

TiDB User Day 2023にお邪魔してきたので感想文

2023/07/13に公開

こんにちは、@thousan_da です。
2023年7月7日に行われた、TiDB User Dayにお邪魔してきたので、感想文を書きました。

"TiDB User Day 2023" is 何?

MySQL互換でOSSの分散NewSQL、"TiDB" のユーザーイベントです。
TiDBの開発を行うPingCAP株式会社さんが主催。

参加登録人数は450人以上、そのうちオフライン参加者は120人以上。

#TiUD2023 というハッシュタグで検索すると当日のツイートがいろいろ見られると思います。


会場で配布されたTシャツにプリントされていたイラスト

セッション

ここでは自分が聞いていて印象的だった内容や感想を書いていきます。

TiDBとMySQLと未来 *同時通訳 (当日のみ)

  • 登壇者
    • PingCAP Inc. 共同創業者 兼 CTO Ed Huang 氏
    • PingCAP Inc. Senior Architect Sunny Bains 氏

米国本社から来たお二人によるセッション。前半のスピーカーは共同創業者兼CTOのEd Huangさん、後半のスピーカーは、MySQLのInnoDB元開発者でHeatWaveの開発リードを担っていたシニアアーキテクトのSunny Bainsさんでした。

Ed Huangさんのお話は、TiDBの開発に至ったこれまでの経緯や、どんな問題が解決されてきたかといった内容。「夜に眠れるDBが必要」という言葉が印象的でした (笑) 。また、このイベントの前日である2023年7月6日にTiDBクラウドにてTiDB ServerlessがGAになったという話も。

Sunny Bainsさんの時間は技術的な話題が中心。TiDBの仕組みや、こういった仕組みなのでこんな特徴や得意、不得意があります、という内容でした。

余談ですが、発表が英語だったため同時通訳を聴ける無線機が各シートに置かれていました。本格的。

[事例セッション] TiDBによる大規模ログデータ管理の挑戦!シャーディングなしで大量インサートをさばくには?

  • 登壇者
    • LINE株式会社: 大塚 知亮 氏

LINEではオンプレでMySQLを運用しているそうです。まず驚いたのが、DBインスタンスが毎年1000台くらい増えていて、現在6500台以上。TiDBの導入を検討した案件の当初の要件は、8日間で11TBのinsertに耐える必要がある、などなど想像を超えるスケール感。

登壇者の発表内容の端々からMySQLやDBに関する知識の深さが伝わってくる印象で、初期の検証から案件での検証まで、さまざまな側面から確認されていました。

自分で移行や運用する場合にも使えそうという観点で気になった内容をいくつか記載します。まず、auto incrementの挙動がMySQLと異なっていること。同じにすることも可能ですが、パフォーマンスに影響が出るそうです。また、MySQLからTiDBにデータを移行したところ、3倍に冗長化されているはずなのにディスクサイズは1.2倍にしかならなかったという話 (すごい) 、PITRに関してのお話などが特に参考になりました。

逆に、bulk insertの話などは内容自体はとても興味深かったのですが、QPSのオーダーが違いすぎてすぐに役立てられるイメージは湧きませんでした (笑) 。今開発・運用しているサービスもこの知見が必要になるくらいの規模にしていきたいと思いました。

[事例セッション] 決済システムにおけるTiDB導入の検証とその効果

  • 登壇者
    • SBペイメントサービス株式会社: 前島 竜太郎 氏

SBPS前島さんのセッション。クラスターのバージョンアップ時の挙動についてAmazon Auroraとの対比や、インスタンスが落ちたときの挙動についての検証が印象的でした。障害耐性の検証は自分でやろうと思うと一手間かかるのでありがたい知見です。

バージョンアップの際、Auroraはリクエストエラーや遅延が観測されたが、TiDBは遅延のみでエラーは無し。
また、TiDBサーバーを落とした場合もエラーは無し。
TiKVを落とした場合は、leader選出にデフォルトで10秒かかるのでその時間+αの遅延があるが、やはりエラーは無し。

遅延はあるにせよ、エラーにならないTiDB優秀ですね。

[事例セッション] 在宅ワーク時代における宅急便を活用したDXサービスの設計と仕組み:さくらインターネットとヤマト運輸によるSlackアプリ

  • 登壇者
    • さくらインターネット株式会社: 江草 陽太 氏

黒いワンピース & 頭に赤いリボンで登場。ヤマト運輸さんの話をするので宅急便繋がりでキキの格好ということに途中で気が付きました (笑)

他のセッションではTiDB自体の検証についての話が多かろうということで、アプリケーション側の話を中心にされていました。社員間で宅急便を送るために開発したSlackアプリについて。送る側は送る相手を指定するだけでよく、住所などは受け取る側が入力する。便利そう。

発表の中で、 pingcap/django-tidb というツールが紹介されていました。メジャーなフレームワーク向けには専用のツールも開発されているようです。発表内容とは関係ないのですが、それを見に行った流れでpingcapの他のリポジトリも見ていると、いろいろ発掘できておもしろかったです。

また、さくらのクラウドのエンハンスドデータベース (TiDB) を使うと10秒でTiDBを使えるらしいです。すごい。

[事例セッション]【わずか1ヶ月でリプレイスを実現!】アジアNo.1のマーケティングSaaSを目指すMicoworksがNoSQLからNewSQLに移行した理由

  • 登壇者
    • Micoworks株式会社: 陳 瀚 (Chen Han) 氏

ここまで大きめの企業の事例が多かったので、比較的若い企業の事例として気になりました。とはいえ十分にスケールする想定で検討されていました。

当初はユーザーの属性や行動履歴に関する情報をDynamoDBに詰め、それをRedshiftで分析する構成をとっていた。これをTiDBに置き換えることで、システムの複雑性を下げつつパフォーマンスも求める要件に達したとのこと。すごい。HTAPのメリットが活きている事例と感じました。

受け付けたクエリに対して、TiKVを使うのかTiFlashを使うのかはよしなに判断されるはずですが、optimizerが間違えることもあるという話や、ホットスポットによって性能が低下する場合があるという話などはわかりみがありました。

[事例セッション] プロダクト分析サービスの超高速集計レイヤーとしてのTiDB

  • 登壇者
    • 株式会社プレイド: 小川 拓也 氏

「TiDBの中でもTiFlashの話だけします」というスタート。CX (顧客体験) プラットフォームである "KARTE" ではwebサイト訪問者の行動をリアルタイムに解析していて、ピーク時には 134,000 イベント/sec にもなるとのこと。リアルタイムでのデータ分析を1秒以内のレイテンシーで実現したいというめちゃくちゃ高い目標を掲げているのが印象でした。

マルチテナントのイベントデータやユーザーデータを保存しているメインDBの置き換え先を検討しているそうです。現在はBigQuery。BigQueryはスケールするがアンコントローラブルな面も多く、user facingな層には向かないらしい。なるほど。

今回の要件に対してTiDBは、OLAP (Online Analytical Processing) 特化の他のDBと比較すると純粋なOLAP部分の性能は多少劣るものの、比肩するレベルだったそうです。

TiDBを検討しようと考えるに至った背景や、チューニングのポイントを具体的にお話しされていたのも参考になりました。

[事例セッション] 金融業界のデータ処理ボトルネックを突破:技術革新の旅

  • 登壇者
    • 株式会社SBI BITS: 木内 祐介 氏

ごめんなさい。こちらセッションの時間帯のみ、ミーティングのために席を外していました。

【パネルディスカッション】ゲーム業界のデータベースを覗いてみよう

  • モデレーター
    • PingCAP株式会社: 林 正記 氏
  • パネリスト
    • 株式会社Cygames: 宮脇 剛史 氏
    • 株式会社スクウェア・エニックス: 神津 和之 氏
    • ワンダープラネット株式会社: 中山 智義 氏

Cygames、スクウェア・エニックス、ワンダープラネットの3社の方々に、モデレーターとしてPingCAPの方を含めた4名でのディスカッションでした。ゲームというリアルタイム性がシビアな分野で、ボトルネックになりやすいDBについて手触り感のある話が特徴的でした。

個人的には午前のセッションでも出ていたauto incrementの話が再度取り上げられていたところが気になりました。厳密なauto incrementをするとホットスポットが発生しやすくなるとのこと (普通に考えて、分散システムで厳密なauto incrementするのって1増やしますみたいな簡単な話じゃないよなあ) 。ワンダープラネット社ではアプリ側で採番する方式をとっているとのことです。

また、MySQLとTiDBでトランザクションの挙動が微妙に違うという話は学びでした。

質疑応答の中でTiDB Serverlessの話になりました。分散型であるTiDBは複数のインスタンスを使って構築する前提なので、最小構成でもある程度の料金になってしまうが、Servelessなら敷居を低く始められるという話がありました。

ここまでで、セッション、パネルディスカッションは以上です。
セッション終了後は懇親会がありました。

全体を通しての感想

僕はDBに関しては素人なのですが、これまでのDBの課題感やTiDBで何が解決できて何が解決できないのかなどの感覚を掴むのに役立つお話が盛りだくさんでした。印象的だったこととして、登壇していたみなさんが口を揃えて仰っていたのが、PingCAPのサポートの手厚さ。PingCAP主催のイベントであるという事実を差し引いても (笑) 、この部分は間違いないと感じました。

その他

かわいいグッズもいろいろありました。限定デザインのチロルチョコ、キットカット、かっぱえびせん、じゃがりこ、などなど。あと、ランチのお弁当と懇親会の料理もおいしかったです。

Discussion