TiDB User Day 2024のアーカイブ動画を公開中!詳細を見る
PR_TiDB 6.1_3600x1200

TiDB 6.1が、2022年6月13日にリリースされたことをお知らせします。このリリースでは、従来のDevelopment Milestone Release(DMR)モードにLong Term Support(LTS)/ 長期サポートが正式に追加されたことを意味します。この2つの異なるリリースモードのTiDBを組み合わせることで、急速に変化する市場の要求とエンタープライズユーザーからの安定性の要求の両方を満たすことが可能になります。

このブログでは、LTSリリースとそれに対応する安定性アップデートを正式に紹介します。さらに、TiDBのHTAP機能の強化やエコシステムとの統合についても紹介します。

機能強化や修正の一覧は、TiDB 6.1 リリースノートをご覧ください。

Long Term Supportの導入 

DMRは、2ヶ月に一度のリリースサイクルのため、刻々と変化する市場の要求やトレンドに迅速に対応することができます。そのため、ユーザーの皆様から寄せられる新機能の要望に対して、長期間待たされることはありません。ただし、すべてのDMRリリースについて、長期的なメンテナンスが行われるわけではありません。そこで登場するのがLTSリリースです。6カ月ごとに、いずれかのDMRのバージョンがLTSリリースの対象として選択されます。サポート期間中、LTSバージョンは継続的にバグや問題の修正を行います。したがって、特定の機能要求がない場合は、常に最新のLTSバージョンをデプロイし、本番運用することが安全です。一方、DMRリリースから特定の機能要求がある場合、そのDMRバージョンをPoCトライアル用に選択し、対応するLTSバージョンがリリースされるまで待って、TiDBを安定した本番運用状態へアップグレードすることができます。

最初のLTSリリースとして、TiDB 6.1には以下の安定性アップデートが含まれています:

  • TiKVの高負荷シナリオにおけるメモリの安定性を改善
  • Raftログレプリケーションの過剰なトラフィックによって発生するメモリ不足(OOM)問題を解決
  • 高負荷シナリオでクラッシュ後にTiDBを再起動すると、長時間にわたってOOMエラーが繰り返し発生する不具合を解消
  • TiDBサーバのメモリ使用量の追跡統計を改善し、クエリメモリのクォータ制限機能を強化
  • 統計情報のメモリ使用量を最適化

また、既知の問題に対する修正も42件あります。詳しくはTiDB 6.1リリースノートをご覧ください。

HTAP 機能の強化 

TiDBのすべてのリリースにおいて、HTAPデータベースとしてのパフォーマンスを強化することが最優先事項です。TiDB 6.1には、以下のようなHTAPの強化が盛り込まれています:

  • 分析エンジンのパーティショニングGA(General Availability)機能
  • 超並列処理(MPP)におけるウインドウ関数のサポート 
  • 非トランザクション型データ操作言語(DML)
  • 書き込み性能向上のためのTiFlash最適化

分析エンジンのためのパーティショニングGA

リストパーティショニングとダイナミックプルーニングは、TiDB 5.1で実験的な機能として導入されました。

しかし、MPPモードでの静的プルーニングのパフォーマンス上の問題から、TiFlashはパーティショニング機能をフルサポートしませんでした。数ヶ月にわたる開発の結果、リストパーティショニング、ダイナミックパーティションプルーニング、およびMPP下でのパーティショニングサポートがGAとなったことをお知らせします。

行ベースのストレージとは異なり、列指向ストレージエンジンは粗い粒度(coarse-grained)のインデックスしかサポートしません。これでは、特に分析シナリオにおいて、データフィルタリングの要件を満たすことができません。列指向ストレージで最も効率的なデータフィルタリング手法であるパーティショニングは、分析シナリオにおいて非常に高い優先度を持っています。

例えば、受注管理のシナリオを考えてみましょう。注文データを分割する一般的な方法は、作成日付によって1ヶ月のデータを30のパーティションに分けます。しかし、ユーザーが行う分析クエリは、過去3~7日以内のデータにより焦点を当てることが多いです。分析エンジンでパーティショニングがサポートされていない場合、TiDBはフルテーブルスキャンしか行えませんでした。日付フィールドのフィルタリングは、ストレージの帯域幅とCPU使用率を浪費します。TiDB 6.1では、ベンチマークテストによると、このシナリオのクエリは数倍速くなる可能性があります。TiDBにおけるパーティショニングの詳細については、パーティショニングのドキュメントをご覧ください。

ウィンドウ関数でより効率的なクエリ実行

TiDB 6.1では、分析シナリオに役立つもう一つの機能強化として、ウィンドウ関数のサポートがあります。本バージョンでは、MPP実行時にウィンドウ関数をサポートするフレームワークを実装し、最もよく使われる3つの関数、rank、dense_rank、row_numberをサポートしています。分散アーキテクチャにより、ウィンドウ関数のメモリ消費量が軽減され、性能が大幅に向上しました。100GBのデータセットを用いたサンプルテストでは、1つのノードでMPPモードのクエリを実行した場合、ウィンドウ関数の計算速度が282%向上しています。複数ノードで利用することで、さらに計算効率を高めることができます。今後のリリースでは、より多くのウィンドウ関数に順次対応していく予定です。

非トランザクション型DMLによるバッチ処理の高速化

さらに、TiDB 6.1では、大規模なバッチでデータ変更を処理するための非トランザクションDMLステートメントを導入しています。非トランザクション型DMLステートメントは、共通のDMLを複数のSQL実行に分割し、バッチ処理シナリオにおけるパフォーマンスと使いやすさを向上させます。この強化は、トランザクションのアトミック性と分離性を犠牲にして機能することにご注意ください。このリリースでは、TiDBは非トランザクションのDELETE操作のみをサポートしています。たとえば、次のステートメントを使用して、トランザクションサイズの制限を気にすることなく、期限切れのデータを排除することができます。

BATCH ON id LIMIT 2 DELETE FROM orders where create_date < '2022-05-01';

このステートメントは、1つの操作のメモリ使用量を制御するために、DELETE操作を2つのバッチで実行します。

エコシステムとのより良い統合と接続 

データベースは決して単独で使用するものではなく、TiDBも例外ではありません。オープンソースの分散型NewSQLデータベースとして、TiDBはより広範囲のエコシステムとの接続を継続的に改善してきました。この新しいバージョンでは、TiDBはユーザーレベルのロックを導入し、PingCAPの変更データ取得ツールであるTiCDCの下でAvro形式のKafkaにデータを同期するためのサポートを提供します。

ユーザーレベルロック 

ユーザーレベルロックは、MySQL組み込み関数が提供するユーザー名ロック管理システムです。これらは、SQLステートメントがSQL関数を受け入れる場所で使用することができます。SELECTやUPDATEなどのSQLステートメントで、GROUPやWHEREなどのクロースを異なるコードポイントでブロックすることができます。ユーザーレベルロックは、Rails、Elixir、Ectoなどのオブジェクトリレーショナルマッピング(ORM)フレームワークで広く使用されています。TiDB 6.1では、GET_LOCK、RELEASE_LOCK、RELEASE_ALL_LOCKSといったMySQL互換のロック管理関数が導入されています。今後のリリースでさらに追加される予定です。

Avroの採用

TiDBにとって、TiCDCはクラスタデータのリアルタイム変更のエクスポートハブです。そのため、より効率的なコンシューマ・パージングとシンプルな開発のために、一般的に使用されるデータフォーマットをサポートすることが不可欠です。Avroは、多くのデータ分析およびデータ統合製品でサポートされているデータシリアライゼーションシステムです。圧縮されたバイナリ形式、高い転送速度、豊富なデータ形式が特徴です。TiCDCは、TiDBのインクリメンタルデータをKafkaに送信する前にAvro形式に変換することができます。これにより、TiDBはKafka、Snowflake、SQL Serverなど、エコシステム内の他の多くのプラットフォームやツールと統合されます。TiDB 6.1では、リアルタイムでのデータ統合やサブスクリプションをトリガーとした操作の変更など、TiDBのデータ変更が他のシステムとリアルタイムに同期することがAvro形式により容易になりました。

今すぐTiDB 6.1を使い始めよう 

TiDB 6.1は、上記のような機能強化が行われた最初の公式LTSバージョンであり、TiDB 6.0に機能要望を持っていたすべてのユーザにとって理想的な選択肢となります。すでにTiDB 6.0をお使いの方も、これから検討される方も、TiDB 6.1から直接始めるか、TiUP経由で6.1へアップグレードすることをお勧めします。

私たちはTiDBコミュニティと共に、LTSバージョンに期待されるパワフルな機能と安定した使用感を継続的にご提供します。

TiDB 6.1は近日中にTiDB Cloudで利用可能になります。お楽しみに。

PingCAPについて

PingCAPは、エンタープライズ向けのソフトウェアサービスプロバイダーとして2015年に設立され、オープンソースでクラウドネイティブなワンストップのデータベースソリューションを提供することにコミットしています。PingCAPの社名は、ネットワークの疎通を確認するために使用されるコマンド「Ping」とCAP定理の「CAP」の2つの単語を組み合わせています。3つのうち2つを選ばなければならないとされるCAP定理のC (Consistency – 一貫性)、A (Availability – 可用性)、P (Partition Tolerance – ネットワーク分断への耐性) ですが、この3つの全てに接続したい (Ping) という思いが込められています。PingCAPの詳細については https://pingcap.co.jp をご覧ください。

本件に関するお問合わせ先 

PingCAP株式会社 広報部 

Email:pingcapjp@pingcap.com