TiDB 3.0.0-rc.1 リリースノート

リリース日:2019年5月10日

TiDB バージョン: 3.0.0-rc.1

TiDB Ansible バージョン: 3.0.0-rc.1

概要

2019 年 5 月 10 日に、TiDB 3.0.0-rc.1 がリリースされました。対応する TiDB Ansible バージョンは 3.0.0-rc.1 です。TiDB 3.0.0-beta.1 と比較して、このリリースでは、安定性、使いやすさ、機能、SQL オプティマイザー、統計、実行エンジンが大幅に改善されています。

ティビ

  • SQL オプティマイザー

    • 列間の順序相関を使用してコスト見積りの精度を向上させます。相関を見積りに直接使用できない場合に、インデックススキャンの優先順位を制御するヒューリスティックパラメータtidb_opt_correlation_exp_factorを導入します#9839
    • フィルタ#10053に関連する列がある場合、複合インデックスのアクセス条件を抽出するときに、インデックスのプレフィックス列をさらに一致させます。
    • 結合に参加するテーブルの数がtidb_opt_join_reorder_threshold未満の場合は、動的プログラミングアルゴリズムを使用して結合操作の実行順序を指定します#8816
    • アクセス条件として複合インデックスを使用する場合、インデックス結合を構築する内部テーブル内のインデックスのプレフィックス列をさらに一致させる#8471
    • NULL値を持つ単一列インデックスの行数推定の精度を向上#9474
    • 論理最適化フェーズ中に集計関数を削除するときに、誤った実行を防ぐためにGROUP_CONCAT特別に処理します#9967
    • フィルタが定数#9848の場合、結合演算子の子ノードにフィルタを適切にプッシュダウンします。
    • MySQL #10064との非互換性を防ぐために、論理最適化フェーズ中に列をプルーニングするときにRAND()などのいくつかの関数を特別に処理します。
    • FAST ANALYZEサポートします。これは、領域全体をスキャンするのではなく、領域をサンプリングすることで統計収集を高速化します。この機能は、変数tidb_enable_fast_analyzeによって制御されます#10258
    • SQL ステートメントの実行プラン バインディングを実行することで実行の安定性を確保する SQL プラン管理をサポートします。この機能は現在ベータ版であり、SELECT ステートメントのバインドされた実行プランのみをサポートします。実本番環境での使用は推奨されません#10284
  • 実行エンジン

    • 3つの演算子TableReader IndexLookupReaderでメモリ使用量の追跡と制御IndexReaderサポートします#10003
    • コプロセッサのタスク数、実行時間/待機時間の平均/最長/90%、実行時間または待機時間が最も長い TiKV のアドレスなど、コプロセッサ タスクに関する詳細情報をスロー ログに表示できるようになりました#10165
    • プレースホルダーなしの準備済みDDL文をサポートする#10144
  • サーバ

    • TiDB の起動時に DDL 所有者のみがブートストラップを実行できるようにする#10029
    • トランザクション分離レベルをSERIALIZABLE #10065に設定するときにTiDBがエラーを報告しないようにするために変数tidb_skip_isolation_level_checkを追加します。
    • 暗黙のコミット時間とSQL実行時間をスローログ#10294にマージする
      • SQL ロールのサポート (RBAC権限管理)
      • サポートSHOW GRANT #10016
      • サポートSET DEFAULT ROLE #9949
    • サポートGRANT ROLE #9721
    • TiDB を終了させるwhitelistプラグインからのConnectionEventエラーを修正#9889
    • トランザクション履歴に読み取り専用ステートメントが誤って追加される問題を修正#9723
    • killステートメントを改善して SQL 実行を停止し、リソースをより迅速に解放する#9844
    • 設定ファイル#9855の有効性をチェックするための起動オプションconfig-checkを追加する
    • 厳密なSQLモードが無効になっている場合にNULLフィールドを挿入する際の有効性チェックを修正#10161
  • DDL

    • CREATE TABLEステートメントにpre_split_regionsオプションを追加します。このオプションは、テーブルの作成時にテーブルリージョンを事前に分割して、テーブルの作成後に大量の書き込みによって発生する書き込みホットスポットを回避することをサポートします#10138
    • 一部のDDL文の実行パフォーマンスを最適化する#10170
    • FULLTEXT KEY #9821ではフルテキストインデックスがサポートされていないという警告を追加します。
    • TiDB #9820の古いバージョンにおけるUTF8およびUTF8MB4文字セットの互換性の問題を修正
    • #9868shard_row_id_bitsの潜在的なバグを修正
    • テーブルの文字セットを変更しても列の文字セットが変更されないバグを修正#9790
    • 列のデフォルト値としてBINARY / BIT使用する場合のSHOW COLUMNの潜在的なバグを修正#9897
    • SHOW FULL COLUMNS#10007CHARSET COLLATION説明を表示する際の互換性の問題を修正
    • SHOW COLLATIONSステートメントが TiDB #10186でサポートされている照合順序のみをリストする問題を修正しました。

PD

  • ETCD #1452のアップグレード
    • etcdとPDサーバーのログフォーマットを統一する
    • 事前投票によるLeader選出に失敗する問題を修正
    • 後続のリクエストをブロックしないように、失敗する可能性のある「提案」および「読み取り」リクエストを迅速にドロップすることをサポートします。
    • リースのデッドロック問題を修正
  • ホットストアがキー#1487の統計を不正確にする問題を修正
  • 単一のPDノードからPDクラスターを強制的に再構築するサポート#1485
  • regionScatterer無効なOperatorStep #1482を生成する可能性がある問題を修正
  • MergeRegionオペレータ#1495の短すぎるタイムアウト問題を修正
  • ホットリージョンのスケジュールに高い優先度を与えるサポート#1492
  • PDサーバー側でTSOリクエストの処理時間を記録するためのメトリックを追加する#1502
  • 対応するストアIDと住所をストア#1506に関連する指標に追加します。
  • GetOperatorサービス#1477サポートする
  • ストアが見つからないため、ハートビートストリームでエラーを送信できない問題を修正#1521

ティクヴ

  • エンジン

    • 読み取りトラフィックの統計情報が不正確になる可能性がある問題を修正#4436
    • 範囲#4503を削除するときにプレフィックス抽出プログラムがpanicになる可能性がある問題を修正しました
    • メモリ管理を最適化してメモリ割り当てとコピーを削減するIterator Key Bound Option #4537
    • 学習者のログギャップを考慮しないと、場合によってはpanicが発生する可能性がある問題を修正#4559
    • 異なるcolumn families #4612間でのblock cache共有をサポート
  • サーバ

    • コンテキストスイッチのオーバーヘッドを削減batch commands #4473
    • シークイテレータステータス#4470の有効性をチェックする
  • ラフトストア

    • 設定可能なサポートproperties index distance #4517
  • コプロセッサー

    • バッチインデックススキャンエグゼキュータ#4419を追加
    • ベクトル化された評価フレームワーク#4322を追加
    • バッチエグゼキュータ#4433の実行サマリーフレームワークを追加
    • RPN 式を構築するときに最大列をチェックして、評価panicを引き起こす可能性のある無効な列オフセットを回避します#4481
    • BatchLimitExecutor #4469を追加
    • ReadPool の元のfutures-cpupool tokio-threadpoolに置き換えてコンテキストスイッチ#4486を削減します。
    • バッチ集計フレームワーク#4533を追加
    • BatchSelectionExecutor #4562を追加
    • バッチ攻撃機能を追加AVG #4570
    • RPN関数を追加LogicalAnd #4575
  • その他

    • メモリアロケータ#4370としてtcmallocサポート

ツール

  • TiDBBinlog

    • unsigned int 型の主キー列のbinlogデータが負の#573の場合のレプリケーション中止の問題を修正しました。
    • ダウンストリームがpb場合は圧縮オプションを提供しません。ダウンストリーム名をpbからfile #559に変更します。
    • ローカルstorage#509での非同期フラッシュを可能にするstorage.sync-log構成項目をPumpに追加します。
    • PumpとDrainer#495間の通信のトラフィック圧縮をサポート
    • 異なるSQLモードでのDDLクエリの解析をサポートするために、 Drainerにsyncer.sql-mode構成項目を追加します#511
    • レプリケーションを必要としないテーブルを除外するための構成項目syncer.ignore-tableを追加します#520
  • 稲妻

    • 行IDまたはデフォルトの列値を使用して、ダンプファイル#170で欠落している列データを入力します。
    • SST の一部がインポートに失敗した場合でも、インポート成功が返される可能性があるインポーターのバグを修正#4566
    • SST を TiKV #4412にアップロードする際のインポーターの速度制限をサポート
    • 大きなテーブルに対するチェックサムと分析によるクラスターへの影響を軽減し、チェックサムと分析#156の成功率を向上させるために、サイズによるテーブルインポートをサポートします。
    • データソースファイルをTiDBのtypes.Datumとして直接解析し、KVエンコーダ#145からの余分な解析オーバーヘッドを節約することで、LightningのSQLエンコードパフォーマンスを50%向上
    • ログ形式を統合ログ形式 #162に変更
    • 設定ファイルが見つからない場合に使用するコマンドラインオプションをいくつか追加します#157
  • 同期差分インスペクター

    • チェックポイントをサポートし、検証ステータスを記録し、再起動後に最後に保存したポイントから検証を続行します#224
    • チェックサム#215を計算してデータの整合性をチェックするための構成項目only-use-checksumを追加します。

TiDB アンシブル

  • より多くの TiKV 監視パネルをサポートし、Ansible、Grafana、Prometheus #727のバージョンを更新しました。
    • クラスターのステータスを表示するサマリーダッシュボード
    • 問題のトラブルシューティングのためのtroubleshootingダッシュボード
    • 開発者が問題を分析するための詳細ダッシュボード
  • Kafka バージョン#730の TiDB Binlogのダウンロードに失敗するバグを修正しました
  • CentOS 7.0以降、Red Hat 7.0以降などのサポート対象オペレーティングシステムのバージョン制限を変更します#733
  • ローリングアップデート中のバージョン検出モードをマルチ同時#736に変更
  • README #740のドキュメントリンクを更新
  • 冗長な TiKV 監視メトリックを削除し、トラブルシューティング用の新しいメトリックを追加します#735
  • table-regions.pyスクリプトを最適化して、表#739でリーダーの分布を表示します。
  • Drainer #745の設定ファイルを更新
  • SQL カテゴリ別にレイテンシを表示する新しいパネルを使用して TiDB 監視を最適化#747
  • Lightning設定ファイルを更新し、 tidb_lightning_ctlスクリプト#1e946f8を追加します。

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