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

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

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

TiDB アンシブル バージョン: 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 オプティマイザー、統計、および実行エンジンが大幅に改善されています。

TiDB

  • 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
  • 実行エンジン

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

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

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

PD

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

TiKV

  • エンジン

    • 読み取りトラフィックの統計が正しくない可能性がある問題を修正します#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を追加
    • バッチ executor #4433の実行概要フレームワークを追加します。
    • 評価panicを引き起こす可能性のある無効な列オフセットを回避するために、RPN 式を作成するときに最大列を確認してください#4481
    • BatchLimitExecutor #4469を追加
    • ReadPool の元のfutures-cpupooltokio-threadpoolに置き換えて、コンテキスト スイッチ#4486を減らします。
    • バッチ集計フレームワーク#4533を追加する
    • BatchSelectionExecutor #4562を追加
    • 一括攻撃機能追加AVG #4570
    • RPN機能追加LogicalAnd #4575
  • その他

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

ツール

  • Binlog

    • unsigned int 型の主キー列の binlog データが負の#573の場合、レプリケーションが中止される問題を修正します。
    • ダウンストリームがpbの場合、圧縮オプションを提供しません。下流の名前をpbからfile #559に変更します
    • ローカル ストレージ#509での非同期フラッシュを可能にするstorage.sync-logの構成項目をPumpに追加します。
    • PumpとDrainer #495間の通信のトラフィック圧縮をサポート
    • 異なる sql-mode #511での DDL クエリの解析をサポートするために、 Drainerにsyncer.sql-modeの構成項目を追加します。
    • syncer.ignore-tableの構成項目を追加して、レプリケーションを必要としないテーブルの除外をサポートします#520
    • 行 ID またはデフォルトの列値を使用して、ダンプ ファイルに含まれていない列データを入力します#170
    • SST の一部のインポートに失敗した場合でも、インポートの成功が返される可能性があるというインポーターのバグを修正します#4566
    • SST を TiKV #4412にアップロードする際の Importer での速度制限のサポート
    • サイズごとのテーブルのインポートをサポートして、大きなテーブルのチェックサムと分析によってもたらされるクラスターへの影響を軽減し、チェックサムと分析#156の成功率を向上させます
    • データ ソース ファイルをタイプとして直接解析することで、Lightning の SQL エンコーディングのパフォーマンスを 50% 向上させ#145
    • ログ形式を統合ログ形式 #162に変更
    • 構成ファイルが見つからない場合に使用するコマンド ライン オプションをいくつか追加し#157
  • 同期差分インスペクター

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

TiDB アンシブル

  • より多くの TiKV 監視パネルをサポートし、Ansible、Grafana、Prometheus #727のバージョンを更新
    • クラスターのステータスを表示するための概要ダッシュボード
    • 問題をトラブルシューティングするための trouble_shooting ダッシュボード
    • 開発者が問題を分析するための詳細ダッシュボード
  • 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を追加します。
エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.