3つの先行事例から学ぶ、「TiDB」を上手く使いこなす術──「分散」と「統合」の振り子関係の変遷
第2回:TiDBのユースケースから探るNewSQLの長所

この連載は、2020年代に入って普及が進んでいるデータベースの新たな潮流「NewSQL」の魅力と可能性について、その有力製品である「TiDB」にフォーカスして探ることを目的としている。TiDBは、2015年に設立されたPingCAP社が開発するデータベースであり、全世界で3,000社以上に導入されており、NewSQLの中でも高い人気を誇る製品だ。「db tech showcase」の来場者アンケートによる「今後利用したいデータベース」で、2022年から3年連続で1位を獲得している。第1回では、そもそもNewSQLとはいかなる特徴とアーキテクチャを持った製品であり、どこに革新性があるのかを解説した。今回は、TiDBが利用されているユースケースを見ながらどのような用途に向いた製品なのか、どういうメリットがあるのかを考えていく。第3回では、TiDBの特長の一つである「HTAP」というコンセプトが持つ可能性について検討する予定だ。
4億人超が利用する、インド巨大ECモールの急成長を支える
第2回となる今回、見ていくユースケースは以下の3つである。
- ケース1:write-heavyなワークロードに対するハイパースケーラビリティ
- ケース2:分散したデータストアの再統合による運用効率の改善
- ケース3:異種混合データベース環境におけるRDBとNoSQLの統合
いずれもNewSQLが持つメリットが遺憾なく発揮されている興味深いユースケースである。それでは、早速1つ目の使い方から見ていきたい。
ケース1:wirte-heavyなワークロードに対するハイパースケーラビリティ
Flipkartは、インド最大のECサイトであり、4億人以上が利用する。一日あたりのページビューは1000万回に及ぶ。システム面で見ても、数千におよぶマイクロサービスを700以上のMySQLクラスタで運用していた。文字通りモンスター級のサービスである。
Flipkartはビジネスが急成長するにともない、スケーラビリティの問題に直面するようになった。特に問題になったのが、writeの処理をマスタノードでしか受けられないことによって、注文処理が集中する特売期間にボトルネックになることである。一般に、RDBのレプリケーションを用いたリードレプリカ構成では、readはある程度スケールさせることができる。しかし、writeの処理は限られたマスタノードでしか受けることができず、早々に限界を迎えてしまう。

引用:PingCAP Blog「Why Flipkart Chose TiDB to Replace Its Large MySQL Fleet」(2023年4月3日)
[クリックすると拡大します]
これ以外にも、RDBで負荷分散を行うにはシステム側でシャーディングを行う必要があるし、マスタノードは単一障害点になりやすく、可用性の面でも不安がある。特売日のような負荷集中する日にダウンしてしまうと、その損失は天文学的な数値に上る。また、リードレプリカは常に最新の情報を返す保証がなく(いわゆる「レプリカラグ」)、データ整合性の面でも問題を抱えやすい。こうした問題を解決するため、FlipkartはTiDBの導入を決断した。導入後の構成図は下図のようになる。

引用:PingCAP Blog「Why Flipkart Chose TiDB to Replace Its Large MySQL Fleet」(2023年4月3日)
[クリックすると拡大します]
TiDBがコンピュートレイヤ、TiKVがストレージレイヤのコンポーネントである。TiFlashは高速化のためのインメモリ型ストアである。この構成をとることによって、write/readの両方の処理を自動的にスケールさせることが可能になった。また、Kubernetes上で動作することで障害時にもノードは自動復旧するため可用性も高い(近年のNewSQLはTiDBに限らずKubernetesをプラットフォームとするものが多い)。第1回でも述べたように、TiDBはMySQL互換であるため、移行も容易だった。
これが1つのクラシックなNewSQLの使い方、すなわち「ハイパースケールRDB」である。TiDBは数百万QPSのスループットを実現することができる。しかし、この事例を見て、「ウチはそこまでのスケーラビリティは求めていないし、違う世界の話だな」と思った読者もいると思う。実際、日本では米国や中国、インドのように1億人超えのメガサービスというのは滅多にあるものではない。というか、現実問題ない。そこで、次にもう少し異なる角度からNewSQLの応用方法を見てみたい。
この記事は参考になりましたか?
- 新時代のデータベース「NewSQL」── TiDBに見るその魅力と可能性連載記事一覧
-
- 3つの先行事例から学ぶ、「TiDB」を上手く使いこなす術──「分散」と「統合」の振り子関係...
- NewSQLが急速に支持を拡大する理由は?──新定番「TiDB」がもつ“ユニークさ”から探...
- この記事の著者
-
ミック(ミック)
データベース分野におけるエンジニアとして20年以上のキャリアを持つ。特に大規模データを扱うBI/DWHでの開発経験が豊富で、性能設計やパフォーマンスチューニングを得意とする。2018年より3年間、米国シリコンバレーにて先進技術の調査に従事。2025年現在は、会社全体の技術戦略の策定に従事している。D...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
提供:PingCAP株式会社
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア