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をサポートする

このページは役に立ちましたか?

Playground
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Dedicated
TiDB Serverless
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.