TiDB2.0リリースノート

2018年4月27日、TiDB 2.0 GAがリリースされました!このリリースでは、TiDB 1.0と比較して、MySQLの互換性、SQLオプティマイザー、エグゼキューター、および安定性が大幅に向上しています。

TiDB

  • SQLオプティマイザー
    • よりコンパクトなデータ構造を使用して、統計情報のメモリ使用量を削減します
    • tidb-serverプロセスを開始するときの統計情報のロードを高速化
    • 統計情報の動的更新をサポート[実験的]
    • コストモデルを最適化して、より正確なクエリコスト評価を提供します
    • Count-Min Sketchを使用して、ポイントクエリのコストをより正確に見積もります
    • より複雑な条件の分析をサポートして、インデックスを最大限に活用します
    • STRAIGHT_JOIN構文を使用してJoinの順序を手動で指定することをサポート
    • パフォーマンスを向上させるために、 GROUP BY句が空の場合は集計演算子を使用します
    • MAX/MIN関数のインデックスの使用をサポート
    • 相関サブクエリの処理アルゴリズムを最適化して、より多くのタイプの相関サブクエリの非相関化をサポートし、それらをLeft Outer Joinに変換します。
    • インデックスプレフィックスの照合に使用される拡張IndexLookupJoin
  • SQL実行エンジン
    • チャンクアーキテクチャを使用してすべての演算子をリファクタリングし、分析クエリの実行パフォーマンスを向上させ、メモリ使用量を削減します。 TPC-Hベンチマークの結果に大幅な改善が見られます。
    • ストリーミング集計オペレーターのプッシュダウンをサポートする
    • Insert Into Ignoreのステートメントを最適化して、パフォーマンスを10倍以上向上させます
    • Insert On Duplicate Key Updateのステートメントを最適化して、パフォーマンスを10倍以上向上させます
    • Load Dataを最適化して、パフォーマンスを10倍以上向上させます
    • より多くのデータ型と関数をTiKVにプッシュダウンします
    • 物理オペレーターのメモリー使用量の計算をサポートし、メモリー使用量がしきい値を超えた場合の構成ファイルとシステム変数での処理動作の指定をサポートします
    • OOMのリスクを軽減するために、単一のSQLステートメントによるメモリ使用量の制限をサポート
    • CRUD操作での暗黙的なRowIDの使用のサポート
    • ポイントクエリのパフォーマンスを向上させる
  • サーバ
    • プロキシプロトコルをサポートする
    • 監視メトリックをさらに追加し、ログを改善します
    • 構成ファイルの検証をサポート
    • HTTPAPIを介した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リーダーを同じノードにまとめて、書き込みパフォーマンスを向上させます
    • リージョンハートビートのパフォーマンスを最適化する

TiKV

  • 特徴
    • 重要な構成を誤った変更から保護する
    • サポートRegion Merge [実験的]
    • Raw DeleteRangeのAPIを追加します
    • GetMetricのAPIを追加します
    • Raw Batch PutRaw Batch Delete Raw Batch Scan Raw Batch Get
    • RawKV APIの列ファミリーオプションを追加し、特定の列ファミリーでの操作の実行をサポートします
    • コプロセッサーでのストリーミングとストリーミング集計のサポート
    • コプロセッサーの要求タイムアウトの構成をサポート
    • リージョンハートビートでタイムスタンプを運ぶ
    • block-cache-sizeなどの一部のRocksDBパラメーターのオンライン変更をサポート
    • 警告またはエラーが発生した場合のコプロセッサーの動作の構成をサポート
    • データインポートプロセス中の書き込み増幅を減らすために、データインポートモードでの開始をサポート
    • リージョンを手動で半分に分割することをサポート
    • データ回復ツールの改善tikv-ctl
    • コプロセッサーでより多くの統計を返し、TiDBの動作をガイドします
    • SSTファイルをインポートするためのImportSSTをサポート[実験的]
    • TiKVImporterバイナリを追加してTiDBLightningと統合し、データをすばやくインポートします[実験的]
  • パフォーマンス
    • ReadPoolを使用して読み取りパフォーマンスを最適化し、 raw_get/get/batch_getを30%増やします
    • メトリックのパフォーマンスを向上させる
    • Raftスナップショットプロセスが完了したらすぐにPDに通知して、バランシングを高速化します
    • RocksDBフラッシングによって引き起こされるパフォーマンスジッターを解決します
    • データを削除した後、スペース再利用メカニズムを最適化する
    • サーバーの起動中にガベージクリーニングを高速化する
    • DeleteFilesInRangesを使用して、レプリカ移行中のI/Oオーバーヘッドを削減します。
  • 安定
    • PDリーダーが切り替わったときにgRPC呼び出しが返されない問題を修正します
    • スナップショットが原因でノードのオフライン化が遅くなる問題を修正します
    • レプリカの移行によって消費される一時的なスペース使用量を制限する
    • 長い間リーダーを選出できない地域を報告する
    • 圧縮イベントに応じて、リージョンサイズ情報を時間内に更新します
    • リクエストのタイムアウトを回避するためにスキャンロックのサイズを制限する
    • OOMを回避するために、スナップショットを受信するときのメモリ使用量を制限します
    • CIテストの速度を上げる
    • スナップショットが多すぎるために発生するOOMの問題を修正します
    • gRPCのkeepaliveを構成します
    • リージョン番号の増加によって引き起こされるOOMの問題を修正します

TiSpark

TiSparkは別のバージョン番号を使用します。現在のTiSparkバージョンは1.0GAです。 TiSpark 1.0のコンポーネントは、ApacheSparkを使用したTiDBデータの分散コンピューティングを提供します。

  • TiKVからデータを読み取るためのgRPC通信フレームワークを提供する
  • TiKVコンポーネントデータと通信プロトコルのエンコードとデコードを提供します
  • 以下を含む計算プッシュダウンを提供します。
    • 集約プッシュダウン
    • 述語プッシュダウン
    • TopNプッシュダウン
    • プッシュダウンを制限する
  • インデックス関連のサポートを提供する
    • 述語をリージョンキー範囲またはセカンダリインデックスに変換します
    • Index Onlyのクエリを最適化-リージョンごとにインデックススキャンをテーブルスキャンに適応的にダウングレードします
  • コストベースの最適化を提供する
    • サポート統計
    • インデックスを選択
    • ブロードキャストテーブルのコストを見積もる
  • 複数のSparkインターフェースのサポートを提供する
    • SparkShellをサポートする
    • ThriftServer/JDBCをサポートする
    • SparkとSQLの相互作用をサポートする
    • PySparkシェルをサポートする
    • SparkRをサポートする

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

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