はじめに
TiDBアドベントカレンダー2025の1日目として、ここ1年のTiDBの進化を振り返って見ようと思います。主にTiDのDBコア(我々はカーネルと呼んでいます)の観点でリリースや機能向上について更新を見ていきましょう。
この1年はTiDBの歴史の中でも変革が大きかった一年ではないでしょうか。特に、従来のSpannerを参考に作られたShared NothingのアーキテクチャであるTiDBとは異なる、Shared Everything型のTiDB XがTiDB Cloudでリリースされたのが大きな出来事です。
(こちらについては、別の記事「TiDB Cloudのこの一年を振り返る」で紹介します)
この一年の流れを見ていきましょう。
TiDB v8.5 リリース
TiDBのLTSの最新版である v8.5が2024年の12月にリリースされました。このリリースは最近のTiDBリリースの中でも極めて重要なリリースで、性能面や安定性など、複数の開発チームがそれぞれ努力してきた成果が統合されたものでした。
主要な機能向上を列挙するだけでも
- 更新が多い場合にMVCCの最新断面をメモリに保持する IME(In Memory Engine) 機能
- PDのメタ情報問合せを負荷分散するActive PD followers機能
- なおこの機能はPDのマイクロサービス化と合わせて実装されています
- パーティション横断のインデックスを実現するGlobal Index
- TiProxyで複数のロードバランスアルゴリズムのサポート
など、アーキテクチャ上の重要な更新が含まれています。特にIMEとGlobal Indexは性能向上にダイレクトに効果のある機能です。
またTiProxyの負荷分散機能も、既存アプリケーションの分散DB対応という意味では重要な意味を持ちます。分散DBでノードを増加させたとき、増加したノードにコネクションが分散しなければ負荷分散にならないのですが、コネクションプーリングなどでコネクションを使い回すと、追加されたノードにコネクションが張られないという事象が発生します。
TiProxyはこのような場合でも、TiProxyとTiDB間の接続を適切に分散させ、新しいノードを利用できるようにします。
従来のアプリケーションをスムーズに利用できることはTiDBのゴールですが、それを実現しやすくしています。
サポートポリシーの変更
TiDBは無停止でのバージョンアップをサポートしていますが、特に不具合がない限り同じバージョンのデータベースを利用したいという声は多いです。
TiDBは従来原則としてリリース後3年のサポートポリシーを持っていました。v8.5のリリースとともに、v8.5の有償版(エンタープライズ版)については、5年のサポートを提供するようになりました。
より長期に渡ってサポートが提供できるようになったとともに、v8.5.x はそれだけ自信のあるリリースということができるかと思いいます。
周辺コンポーネントのアーキテクチャ刷新
TiDB本体だけではなく、周辺ツールのアーキテクチャも刷新されています。
CDCツールであるTiCDCは、時間ベース(定期的に更新を取得し、下流に流す)から、イベントベースのアーキテクチャとなりました。性能と安定性の向上が図られています。
また、TiDBのクラスタサイズの向上にともない、メトリクスの監視についても性能向上が求められるようになりました。このためにPrometheusに代えて、VictoriaMetricsを採用しました。
今年はこのようにTiDBのエコシステム全体で性能と安定性に非常に力を入れた1年ということができると思います。v8.5.4 までマイナーバージョンも進んでいます。また、従来ですと平均年2回あったLTSリリースも、今年はありませんでした。v8.5をそれだけ重視していたということができると思います。
TiDBの書籍刊行
TiDBのデータベースとしての認知度も向上しました。2025年には2冊のTiDB関連書籍が刊行されました。
技術評論社から「TiDB実践入門」
そして翔泳社から、「わかばちゃんとつくって、壊して、直して学ぶ NewSQL入門」です。
DBの最初の選択肢として名前が出てくるようになってくると良いなと思います!
おわりに
TiDBのこの1年は、特に日本法人の私から見ると認知の向上とそれに答える製品の性能・安定性の向上が噛み合った年だったように思います。まだ使ってみていない方はTiUPで簡単にローカル環境で実行できますので、是非試してみてください!