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

TiDB2.1ベータリリースノート

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

TiDB

  • SQLオプティマイザー
    • 選択範囲Index Joinを最適化して、実行パフォーマンスを向上させます
    • 相関サブクエリを最適化し、 Filterを押し下げ、インデックス範囲を拡張して、一部のクエリの効率を桁違いに向上させます
    • UPDATEおよびDELETEステートメントでIndex HintおよびJoin Hintをサポート
    • 使用可能なインデックスが存在しない場合は、ヒントTIDM_SMJを検証します
    • ABS 、およびFLOOR関数のIS TRUEダウンをIS FALSECEIL
    • 特に定数畳み込みプロセスでIFIFNULLの関数を処理します
  • SQL実行エンジン
    • 一部のシナリオでは、並列Hash Aggregate演算子を実装し、 Hash Aggregateのコンピューティングパフォーマンスを350%向上させます。
    • 並列Project演算子を実装し、一部のシナリオでパフォーマンスを74%向上させます
    • Hash JoinInnerテーブルとOuterテーブルのデータを同時に読み取り、実行パフォーマンスを向上させます。
    • 一部のシナリオでINSERT … ON DUPLICATE KEY UPDATE …の誤った結果を修正
    • CONCAT_WS 、およびCEILDIV関数の誤った結果を修正しFLOOR
  • サーバ
    • HTTP APIを追加して、TiKVクラスタのテーブルリージョンの分布を分散させます
    • auto_analyze_ratioのシステム変数を追加して、自動Analyzeのしきい値を制御します。
    • 一般ログを開くかどうかを制御するHTTPAPIを追加します
    • 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を有効にします
  • BalanceSchedulerが小さなリージョンを頻繁にスケジュールする問題を最適化します
  • ホットスポットスケジューラを最適化して、トラフィック統計情報のジッターへの適応性を向上させます
  • region mergeをスケジュールするときに、行数が多いリージョンをスキップします
  • デフォルトでraft learnerを有効にすると、スケジューリング中のマシン障害によってデータが利用できなくなるリスクが低くなります。
  • pd-recoverからmax-replicaを削除します
  • Filterのメトリックを追加します
  • tikv-ctlの安全でないリカバリ後にリージョン情報が更新されない問題を修正します
  • 一部のシナリオでレプリカの移行が原因で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を減らしてメモリのコピー時間を減らし、パフォーマンスを向上させます
このページの内容