TiDB 2.1 ベータ リリース ノート

2018 年 6 月 29 日、TiDB 2.1 Beta がリリースされました! TiDB 2.0 と比較して、このリリースでは、安定性、SQL オプティマイザー、統計情報、および実行エンジンが大幅に改善されています。

TiDB

  • SQL オプティマイザー
    • Index Joinの選択範囲を最適化して実行性能を向上
    • 相関サブクエリを最適化し、 Filterを押し下げ、インデックス範囲を拡張して、一部のクエリの効率を桁違いに改善します
    • UPDATEDELETEのステートメントでIndex HintJoin Hintをサポートする
    • 利用可能なインデックスが存在しない場合にヒントTIDM_SMJを検証する
    • ABSCEILFLOORIS TRUE 、およびIS FALSE関数のプッシュダウンをサポート
    • 特に一定の折り畳みプロセスでIFIFNULLの関数を処理します
  • SQL 実行エンジン
    • 並列Hash Aggregate演算子を実装し、一部のシナリオでHash Aggregateの計算パフォーマンスを 350% 向上させる
    • 並列Project演算子を実装すると、一部のシナリオでパフォーマンスが 74% 向上します
    • InnerテーブルとOuterテーブル オブHash Joinのデータを同時に読み取り、実行パフォーマンスを向上させる
    • 一部のシナリオでのINSERT … ON DUPLICATE KEY UPDATE …の誤った結果を修正
    • CONCAT_WSFLOORCEIL 、およびDIV組み込み関数の誤った結果を修正
  • サーバ
    • HTTP API を追加して、TiKV クラスター内のテーブル リージョンの分散を分散させます
    • 自動Analyzeのしきい値を制御するauto_analyze_ratioシステム変数を追加します。
    • 一般ログを開くかどうかを制御する HTTP API を追加します。
    • HTTP API を追加して、ログ レベルをオンラインで変更します。
    • 一般ログとスロー クエリ ログにユーザー情報を追加します。
    • サーバー側カーソルをサポート
  • 互換性
    • より多くの MySQL 構文をサポート
    • bit集計関数がALLパラメータをサポートするようにする
    • SHOW PRIVILEGESステートメントをサポート
  • DML
    • INSERT INTO SELECTステートメントのメモリ使用量を減らします
    • PlanCacheのパフォーマンスの問題を修正
    • tidb_retry_limitシステム変数を追加して、トランザクションの自動再試行回数を制御します
    • tidb_disable_txn_auto_retryシステム変数を追加して、トランザクションが自動的に試行されるかどうかを制御します
    • time型の書き込みデータの精度の問題を修正
    • ローカルで競合するトランザクションのキューをサポートして、競合するトランザクションのパフォーマンスを最適化します
    • UPDATEのステートメントのうちAffected Rowsを修正
    • insert ignore on duplicate key updateのステートメントのパフォーマンスを最適化する
  • DDL
    • CreateTableステートメントの実行速度を最適化する
    • ADD INDEXの実行速度を最適化し、一部のシナリオで大幅に改善
    • 追加された列の数がAlter table add columnで表の列の数の制限を超える問題を修正します
    • DDL ジョブの再試行により、異常な状態で TiKV への圧力が高まるという問題を修正します
    • TiDB が異常な状態でスキーマ情報を継続的にリロードする問題を修正します
    • SHOW CREATE TABLEの結果にFOREIGN KEYの関連情報を出力しない
    • TiDB がDDL Ownerであるかどうかの判断を容易にするselect tidb_is_ddl_owner()のステートメントをサポートする
    • 一部のシナリオでYearタイプでインデックスが削除される問題を修正
    • 同時実行シナリオでの名前変更テーブルの問題を修正
    • AlterTableForce構文をサポート
    • FromKeyToKeyAlterTableRenameIndex構文をサポートする
    • admin show ddl jobsの出力情報にテーブル名とデータベース名を追記

PD

  • PD ノード間のRaft PreVote を有効にして、ネットワーク分離後にネットワークが回復したときにリーダーの再選択を回避します
  • Balance Scheduler が小さなリージョンを頻繁にスケジュールする問題を最適化します
  • ホットスポット スケジューラを最適化して、トラフィック統計情報のジッタへの適応性を向上させます
  • スケジューリング時に行数の多いリージョンをスキップするregion merge
  • デフォルトでraft learnerを有効にして、スケジューリング中のマシン障害によってデータが使用できなくなるリスクを軽減します
  • pd-recoverからmax-replicaを削除
  • 指標をFilter追加
  • tikv-ctl unsafe リカバリ後にリージョン情報が更新されない問題を修正
  • 一部のシナリオで、レプリカの移行によって TiKV ディスク容量が使い果たされる問題を修正
  • 互換性に関する注意事項
    • 新しいバージョンのストレージ エンジンの更新により、v2.0.x 以前へのロールバックはサポートされません
    • 新しいバージョンの PD では、デフォルトでraft learnerを有効にします。クラスターを 1.x から 2.1 にアップグレードする場合は、マシンを停止してからアップグレードするか、ローリング アップデートを最初に TiKV に適用してから PD に適用する必要があります。

TiKV

  • Rust をnightly-2018-06-14バージョンにアップグレードする
  • Raft PreVoteを有効にして、ネットワークの分離後にネットワークが回復したときに生成されるリーダーの再選択を回避します
  • RocksDB の各レイヤーにファイル数とingestの関連情報を表示するメトリックを追加します
  • GC が機能する場合、バージョンが多すぎるkeyを出力します
  • マルチラベル メトリックのパフォーマンスを最適化するにはstatic metricを使用します (YCSB raw getは 3% 改善されます)。
  • 複数のモジュールのうちboxを削除し、パターンを使用して動作パフォーマンスを向上させます(YCSB raw getは3%改善されます)
  • ログ書き込みのパフォーマンスを向上させるにはasynchronous logを使用します
  • スレッドのステータスを収集するメトリックを追加します
  • アプリケーションで使用されるboxを減らしてメモリ コピー時間を短縮し、パフォーマンスを向上させます。
エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.