分散データベースという選択肢を手に入れよう

電子決済使ってますか?

「ペイペイでお願いします」って言うときのペイペイの発音は、後ろを下げる派ですか? フラット派ですか? 私はフラット派です。いつもニコニコ現金払いだった私がPayPayを使い始めて11か月くらい経ちますが、今では支払い手段のメインになっています。

このPayPayサービスを支えているデータベースの1つが TiDB です。PayPayのオウンドメディアの記事によれば、2019年ごろから段階的に導入が進められたようです[1]

TiDBが使われている分野

バーコードを読み取ってから「ペイペイ♪」って音が発せられるまで、ちょっとタイムラグがありますよね。あの間にネットワークを通じて厳格さが要求される決済処理をしていると考えると、すごくないですか? 分散データベースはそうではないデータベースに比べて応答速度が低下する傾向にありますが、実用性に問題は感じないかと思います(もちろんチューニングが十分にされているからこそなのは言うまでもありません⁠⁠。

TiDBの公式サイトを見ると、フィンテック業界やeコマース業界での導入を特に後押ししている印象です。分散型ならではの水平スケールのしやすさと障害耐性に加え、RDBMSと同じようなトランザクション処理による強い整合性が求められる分野では、今まさに、従来型のデータベースの課題を解決できる新技術が望まれているのでしょう。

特に、すでにKubernetesを基盤に採用しているような大規模クラウドサービスの場合は、分散処理を前提としたデータベースであるTiDBの導入は比較的取り組みやすいのではないかと思います。

ゲーム業界もTiDBに注目しているようです。激しいトラフィック増減に対処するには、スケールのしやすさは欠かせません。TiDBの事例記事では技術者の期待感がうかがえます[2]。また、リソースが限られるスタートアップ企業でも、将来的な利用拡大を見越して、運用管理の負担が少なく始められるTiDB Cloudを採用する事例もあるようです[3]

データベースに限界を感じてきたら検証を

もちろん、TiDBが万能なわけではなく、従来のRDBMSやNoSQLのほうがよい場合もあります。分散データベースゆえの複雑さは学習コストや運用コストに跳ね返ってくるので、導入には十分な検証が必要です。

弊社が刊行するTiDB実践入門は、その最初の一歩にふさわしい解説書です。TiDBユーザーコミュニティの立ち上げにも関わった著者の長谷川誠氏が、TiDBを使い始めるために知っておいてほしいことをまとめました。自前のサーバー環境、Kubernetes環境、マネージドサービス利用、と試したい環境に応じた構築と動作検証を実施できます。

「お支払いは?」⁠ペイペイでお願いします」⁠ペイペイですね」……下げる派、ですか。