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クラスタのテーブルリージョンの分布を分散させます
    • 自動Analyzeのしきい値を制御するには、 auto_analyze_ratioのシステム変数を追加します
    • 一般ログを開くかどうかを制御する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ノード間でRaftPreVoteを有効にします
  • 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を減らしてメモリのコピー時間を減らし、パフォーマンスを向上させます

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

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