📣
TiDB Cloud Essential はパブリックプレビュー中です。このページは自動翻訳されたものです。原文はこちらからご覧ください。

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



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

TiDB

  • SQLオプティマイザー
    • 実行パフォーマンスを向上させるために、選択範囲Index Joinを最適化します。
    • 相関サブクエリを最適化し、 Filterプッシュダウンし、インデックス範囲を拡張して、一部のクエリの効率を桁違いに向上させます。
    • UPDATEDELETEステートメントのIndex HintJoin Hintを支持する
    • 利用可能なインデックスが存在しない場合にヒントTIDM_SMJ検証する
    • ABS CEIL IS TRUE FLOORダウンIS FALSE関数
    • 特に定数の折り畳み処理でIFIFNULL関数を処理する
  • SQL実行エンジン
    • 並列Hash Aggregate演算子を実装し、いくつかのシナリオでHash Aggregateの計算パフォーマンスを350%向上させます。
    • 並列Project演算子を実装し、いくつかのシナリオでパフォーマンスを74%向上
    • 実行パフォーマンスを向上させるために、 Hash JoinのテーブルのうちInnerのテーブルとOuterテーブルを同時に読み取ります。
    • いくつかのシナリオでINSERT … ON DUPLICATE KEY UPDATE …の誤った結果を修正しました
    • 組み込み関数CONCAT_WSFLOORCEILDIVの誤った結果を修正しました
  • サーバ
    • 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構文をサポートする
    • AlterTableRenameIndex構文をFromKeyToKeyでサポートする
    • admin show ddl jobsの出力情報にテーブル名とデータベース名を追加します

PD

  • ネットワーク分離後にネットワークが回復したときにリーダーの再選出を回避するために、PDノード間でRaft PreVoteを有効にする
  • Balance Scheduler が小さなリージョンを頻繁にスケジュールする問題を最適化します。
  • ホットスポットスケジューラを最適化し、トラフィック統計情報のジッタに対する適応性を向上させます。
  • スケジュールregion mergeときに行数の多い領域をスキップする
  • スケジュール中にマシン障害によってデータが利用できなくなるリスクを軽減するために、デフォルトでraft learner有効にします。
  • pd-recoverからmax-replica取り除く
  • Filter指標を追加
  • tikv-ctl unsafe リカバリ後にリージョン情報が更新されない問題を修正しました
  • 一部のシナリオでレプリカの移行によって TiKV ディスク領域が使い果たされる問題を修正しました
  • 互換性に関する注意事項
    • 新しいバージョンのstorageエンジンの更新により、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を減らすことでメモリコピー回数を減らし、パフォーマンスを向上させます

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