TiDB 2.0 リリースノート
2018 年 4 月 27 日に、TiDB 2.0 GA がリリースされました。TiDB 1.0 と比較して、このリリースでは、MySQL 互換性、SQL オプティマイザー、エグゼキューター、安定性が大幅に向上しています。
ティビ
- SQL オプティマイザー
- よりコンパクトなデータ構造を使用して、統計情報のメモリ使用量を削減します。
- tidb-server プロセスの開始時に統計情報の読み込みを高速化します。
- 統計情報の動的な更新をサポート [実験的]
- コストモデルを最適化して、より正確なクエリコスト評価を提供します
Count-Min Sketch
使用してポイントクエリのコストをより正確に見積もる- インデックスを最大限に活用するために、より複雑な条件の分析をサポート
STRAIGHT_JOIN
構文を使用してJoin
オーダーを手動で指定することをサポートしますGROUP BY
節が空の場合は、パフォーマンスを向上させるためにストリーム集計演算子を使用します。MAX/MIN
関数のインデックスの使用をサポート- 相関サブクエリの処理アルゴリズムを最適化し、より多くの種類の相関サブクエリの非相関化をサポートし、それらを
Left Outer Join
に変換します。 - インデックスプレフィックスのマッチングに使用する拡張
IndexLookupJoin
- SQL実行エンジン
- Chunkアーキテクチャを使用してすべての演算子をリファクタリングし、分析クエリの実行パフォーマンスを向上させ、メモリ使用量を削減します。TPC-H ベンチマーク結果が大幅に改善されています。
- ストリーミング集計演算子のプッシュダウンをサポート
Insert Into Ignore
ステートメントを最適化すると、パフォーマンスが10倍以上向上します。Insert On Duplicate Key Update
ステートメントを最適化すると、パフォーマンスが10倍以上向上します。Load Data
最適化してパフォーマンスを10倍以上向上- より多くのデータ型と関数をTiKV にプッシュダウンする
- 物理演算子のメモリ使用量を計算し、メモリ使用量がしきい値を超えた場合の処理動作を構成ファイルとシステム変数で指定する機能をサポートします。
- OOMのリスクを軽減するために、単一のSQL文によるメモリ使用量の制限をサポートします。
- CRUD操作で暗黙的なRowIDの使用をサポート
- ポイントクエリのパフォーマンスを向上
- サーバ
- プロキシプロトコルをサポートする
- 監視メトリックを追加し、ログを改良する
- 設定ファイルの検証をサポート
- HTTP API 経由で TiDB パラメータの情報を取得する機能をサポート
- バッチモードでロックを解決してガベージコレクションを高速化する
- マルチスレッドガベージコレクションをサポート
- TLSをサポート
- 互換性
- より多くのMySQL構文をサポート
- OGGデータレプリケーションツールをサポートするために、構成ファイル内の
lower_case_table_names
システム変数を変更することをサポートします。 - Navicat管理ツールとの互換性を向上
- テーブル作成時間を
Information_Schema
で表示できるようになりました - 一部の関数/式の戻り値の型がMySQLと異なる問題を修正
- JDBCとの互換性を向上
- より多くのSQLモードをサポート
- DDL
Add Index
操作を最適化して、いくつかのシナリオで実行速度を大幅に向上します。Add Index
操作の優先度を下げて、オンラインビジネスへの影響を軽減します。- DDLジョブのより詳細なステータス情報を
Admin Show DDL Jobs
で出力します Admin Show DDL Job Queries JobID
使用して現在実行中のDDLジョブの元のステートメントを照会する機能をサポート- 災害復旧のために
Admin Recover Index
使用してインデックスデータの復旧をサポート Alter
ステートメントを使用してテーブル オプションを変更することをサポートします
PD
- サポート
Region Merge
、データを削除した後に空の領域を結合する [実験的] - サポート
Raft Learner
[実験的] - スケジューラを最適化する
- スケジューラをさまざまなリージョンサイズに適応させる
- TiKV 停止時のデータ復元の優先度と速度を向上
- TiKVノードを削除するときにデータ転送を高速化します
- TiKVノードのスペースが不足しているときにディスクがいっぱいにならないようにスケジューリングポリシーを最適化します。
- バランスリーダースケジューラのスケジューリング効率を向上
- バランス領域スケジューラのスケジューリングオーバーヘッドを削減する
- ホットリージョンスケジューラの実行効率を最適化する
- 操作インターフェースと構成
- TLSをサポート
- PDリーダーの優先順位付けをサポート
- ラベルに基づいたスケジュールポリシーの構成をサポート
- 特定のラベルを持つストアがRaftリーダーをスケジュールしないように構成することをサポートします。
- 単一のリージョン内のホットスポットを処理するためにリージョンを手動で分割することをサポートします
- 場合によっては、指定されたリージョンを分散して手動でリージョン分布を調整できるようにサポートします。
- 構成パラメータのチェックルールを追加し、構成項目の有効性チェックを改善します。
- デバッグインターフェース
Drop Region
デバッグインターフェースを追加する- 各PDのヘルスステータスを列挙するためのインターフェースを追加します
- 統計
- 異常な地域に関する統計を追加する
- リージョン分離レベルに関する統計情報を追加する
- スケジュール関連の指標を追加する
- パフォーマンス
- 書き込みパフォーマンスを向上させるために、PDリーダーとetcdリーダーを同じノードにまとめます。
- リージョンハートビートのパフォーマンスを最適化する
ティクヴ
- 特徴
- 重要な構成を誤った変更から保護する
- サポート
Region Merge
[実験的] Raw DeleteRange
APIを追加するGetMetric
APIを追加するRaw Batch Put
Raw Batch Delete
Raw Batch Scan
Raw Batch Get
- RawKV API のカラムファミリ オプションを追加し、特定のカラムファミリでの操作の実行をサポートします。
- コプロセッサーでのストリーミングとストリーミング集計をサポート
- コプロセッサーのリクエストタイムアウトの設定をサポート
- リージョンハートビートでタイムスタンプを伝送する
block-cache-size
などのRocksDBパラメータのオンライン変更をサポート- 警告やエラーが発生した場合のコプロセッサーの動作の設定をサポートします。
- データインポートプロセス中の書き込み増幅を減らすために、データインポートモードでの起動をサポートします。
- 手動でリージョンを半分に分割する機能をサポート
- データ復旧ツール
tikv-ctl
の改善 - TiDBの動作をガイドするためにコプロセッサーでより多くの統計を返す
- SST ファイルをインポートするための
ImportSST
API をサポートします [実験的] - TiKV インポーター バイナリを追加してTiDB Lightningと統合し、データをすばやくインポートします [実験的]
- パフォーマンス
ReadPool
使用して読み取りパフォーマンスを最適化し、raw_get/get/batch_get
を30%増加させます- メトリクスのパフォーマンスを向上させる
- バランス調整を高速化するために、 Raftスナップショットプロセスが完了したらすぐにPDに通知します。
- RocksDB フラッシュによって発生するパフォーマンスのジッターを解決する
- データを削除した後のスペース回収メカニズムを最適化する
- サーバーの起動中にガベージクリーンアップを高速化
DeleteFilesInRanges
使用してレプリカ移行中のI/Oオーバーヘッドを削減する
- 安定性
- PDリーダーが切り替わったときにgRPC呼び出しが返されない問題を修正しました
- スナップショットによってノードがオフラインになる速度が遅くなる問題を修正
- レプリカの移行によって消費される一時スペースの使用を制限する
- 長い間リーダーを選出できない地域を報告する
- 圧縮イベントに応じてリージョンサイズ情報を随時更新します
- リクエストのタイムアウトを回避するためにスキャンロックのサイズを制限する
- OOMを回避するためにスナップショットを受信するときにメモリ使用量を制限する
- CIテストの速度を上げる
- スナップショットが多すぎることによるOOM問題を修正
- gRPCの
keepalive
設定する - リージョン数の増加によって発生するOOM問題を修正
ティスパーク
TiSpark は別のバージョン番号を使用します。現在の TiSpark バージョンは 1.0 GA です。TiSpark 1.0 のコンポーネントは、Apache Spark を使用して TiDB データの分散コンピューティングを提供します。
- TiKVからデータを読み取るためのgRPC通信フレームワークを提供する
- TiKVコンポーネントデータと通信プロトコルのエンコードとデコードを提供する
- 以下を含む計算プッシュダウンを提供します:
- 集計プッシュダウン
- 述語プッシュダウン
- TopNプッシュダウン
- リミットプッシュダウン
- インデックス関連のサポートを提供する
- 述語をリージョンキー範囲またはセカンダリインデックスに変換する
Index Only
クエリを最適化 -リージョンごとにインデックス スキャンをテーブル スキャンに適応的にダウングレードします
- コストベースの最適化を提供する
- サポート統計
- インデックスを選択
- 放送テーブル費用の見積もり
- 複数のSparkインターフェースのサポートを提供する
- Spark Shell をサポート
- ThriftServer/JDBC をサポート
- Spark-SQLインタラクションをサポート
- PySpark シェルをサポート
- SparkRをサポートする