重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

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実行エンジン
    • Chunkアーキテクチャを使用してすべての演算子をリファクタリングし、分析クエリの実行パフォーマンスを向上させ、メモリ使用量を削減します。 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バイナリを追加して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は別のバージョン番号を使用します。現在のTiSparkバージョンは1.0GAです。 TiSpark 1.0のコンポーネントは、ApacheSparkを使用したTiDBデータの分散コンピューティングを提供します。

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